Arbitrary Wave Generator For The Raspberry Pi Pico

Once upon a time, if you wanted to generate some waveforms, you needed to buy an expensive off-the-shelf function generator or whip up a big pile of analog electronics. Not so today, when you can grab a fast microcontroller off the shelf and have it squirt out whatever fancy waves you might desire. That’s just what [rgco] did to build this nifty arbitrary wave generator.

The build improves on prior work by [rgco] with the Arduino Uno, with which they built a device that could output at 381 kilosamples per second, with each sample update taking 42 instruction cycles. Thanks to the Pi Pico’s faster clock speed and certain performance optimizations, they were able to up that to a mighty 125 megasamples per second, using the DMA and PIO subsystems to output a new sample every single clock cycle.

The result is a cheap function generator you can build with a Pi Pico and a handful of resistors, which will probably cost you the grand total of $12. It readily outperforms, at least in regards of speed, devices based on the AD9833 function generator chip, which only runs at 25 megasamples. Plus, that chip can only output sines, triangles, and squares!

Even a passable function generator can be a useful tool to have in the workshop, as we’ve seen before. Video after the break.

Continue reading “Arbitrary Wave Generator For The Raspberry Pi Pico”

Simple Badge Is Simple, But It’s Yours

Making conference badges, official or unofficial, has become an art form. It can get pretty serious. #badgelife.

But DEFCON-goers aren’t the only people making fancy personalized nametags. Hams often had callsign badges going back as far as I can remember. Most were made of engraved plastic, but, at some point, it became common to put something like a flashing LED on the top of the engraved antenna tower or maybe something blinking Morse code.

Going back to that simpler time, I wanted to see if I could make my own badge out of easily accessible modules. How easy can it be? Let’s find out. Along the way, we’ll talk about multicore programming, critical sections, namespaces, and jamming images into C++ code. I’ll also show you how to hijack the C preprocessor to create a little scripting language to make the badge easier to configure.

Bottom Line Up Front

The photo shows the Pico badge. It has an RP2040 CPU but not a proper Raspberry Pi Pico. The Waveshare RP2040-Plus clone has a battery connector and charger. It also has a reset button, and this one has 16 MB of flash, but you don’t need that much. The LCD is also a Waveshare product. (This just happened to work out. I bought all of this stuff, and I don’t even know anyone at Waveshare.) The only other thing you need is a USB C cable and a battery with an MX 1.25 connector on it with the correct polarity. Hardware done! Time for software.

Continue reading “Simple Badge Is Simple, But It’s Yours”

KaboomBox Is A Firecracker Of A Music Player

Ka-chunk. Let’s face it, 8-tracks were not that great. But the players, that’s another story. The Panasonic RQ-830S, aka the dynamite or TNT player is just one of many lovely designs that used to grace the shelves of electronics stores. Hackaday alum [Cameron Coward] came across a non-working model and used it to create the KaboomBox.

Just like before, all [Cameron] has to do is stick a tape in, and music starts playing. But now, instead of using rust on tape, the music is accessed via RFID and lives on an SD card inside the 8-track player.

Power it on, and a tiny LCD screen showing through the track number window first displays the KaboomBox logo, then shows a timer whenever it’s waiting for a tape. And just like before, pushing down on the plunger skips to the next track.

The new guts include a Raspberry Pi Pico and an RFID reader, plus a DF Player Mini to handle the digital-to-analog conversion and amplify the signal, and an SD card to store the music. Now, [Cameron] is only limited by the size of the SD card. Check out the demo video after the break.

We’ve seen all kinds of boomboxen around here, from the lit to the Bluetooth to the payphone variety.

Continue reading “KaboomBox Is A Firecracker Of A Music Player”

How Not To Build An RP2040 Board

We love that these days you can buy ready-made microcontroller boards that are very capable. But sometimes you need to — or just want to — do it yourself. Unfortunately, you really should design everything twice: once to figure out where all the problems are, and the second time to do it better. If you want to create your own board for the RP2040 then you are in luck. [Jeremy] has made the first (and second) iteration or an RP2040 board and shares with us what he would not do again.

In all fairness, he also has a blog post talking about what he did, so you might want to start there. However, we think his most valuable advice was his final word: Don’t fail to get started on your design. The longest journey, after all, begins with the first step.

His other advice is good, too. For example, don’t plug your new board into a computer because an error in the power supply could take the whole computer out. He also warns you not to do like he did and forget to order the $10 solder stencil with the PCBs.

Some of it is just good advice in general. For example — buy more small components than you think you need. There’s nothing worse than needing three resistors, having three resistors, and then watching one of the three fly across the room or stick to your soldering iron and melt into a pool of slag. Buy ten and you’ll save money in the long run.

In the end, the board did work and what he learned might help you if you decide to tackle a similar project yourself. [Jeremy’s] board is fairly large, but if you have an appetite for something smaller, check out the RPDot or the RP2040 Stamp.

A Pi Pico on a breakout board inside a Busch 2090 educational computer

Pi Pico Becomes SRAM For 1981 Educational Computer

Ever since the Raspberry Pi Pico was introduced in early 2021 we’ve seen the tiny Pi being used for an astonishing variety of applications. It has powered countless clocks, gadgets, games, and accessories for all kinds of computers old and new. [Michael Wessel] has recently added an interesting new application in the “old computer” category, by turning a Pico into a 2114 SRAM emulator for his Busch 2090, an educational computer system from 1981.

The pinout of the classic 2114 SRAM chip is quite simple: ten address lines, four data lines, Write Enable and Chip Select. Since the 3.3 V Pico is more or less 5V tolerant, you could directly connect these signals to its GPIO ports, but [Michael] considered it more reliable to use level shifters between the two voltage domains. He experimented with a few standard level shifter circuits, but quickly realized he had to take the 33 kΩ pulldown resistors on the Busch 2090’s address bus into account. By just adding a couple of resistors to the Pico’s ports he could make completely passive level shifters, which worked just fine since the system’s clock frequency is only 500 kHz.

[Michael] demonstrates his RAM replacement in the video below, with a neat set of blinkenlights showing the data being shuttled around in real time. He has plans to make a proper PCB for his project, as well as to enable all kinds of neat features by modifying the system’s RAM in real time. This is of course not limited to the Busch 2090: the 2114 chip was widely used in the 1980s, so the PicoRAM can probably be used in many other systems of the era. Code for the Pi is available on GitHub if you’re interested in trying this for yourself. If you’d like to find out what programming a Busch 2090 feels like, you can emulate one using an Arduino.

Continue reading “Pi Pico Becomes SRAM For 1981 Educational Computer”

Thin Keyboard Fits In Steam Deck Case

Although some of the first Android-powered smartphones had them and Blackberries were famous for them, physical keyboards on portable electronics like that quickly became a thing of the past. Presumably the cost to manufacture is too high and the margins too low regardless of consumer demand. Whatever the reason, if you want a small keyboard for your portable devices you’ll likely need to make one yourself like [Kārlis] did for the Steam Deck.

Unlike a more familiar mechanical keyboard build which prioritizes the feel and sound of the keyboard experience, this one sacrifices nearly every other design consideration in order to be thin enough to fit in the Steam Deck case. The PCB is designed to be flexible using copper tape cut to size with a vinyl cutter with all the traces running to a Raspberry Pi Pico which hosts the firmware and plugs into the Steam Deck’s USB port. The files for the PCB are available in KiCad and can be exported as SVG files for cutting.

In the end, [Kārlis] has a functioning keyboard that’s even a little more robust than was initially expected and which does fit alongside the Deck in its case. On the other hand, [Kārlis] describes the typing experience as “awful” due to its extreme thinness, but either way we applaud the amount of effort that went in to building a keyboard with this form factor. The Steam Deck itself is a platform which lends itself to all kinds of modifications as well, from the control sticks to the operating systems, and Valve will even show you how.

Finally, A Machine To Organize Resistors!

Perhaps it’s a side-effect of getting older, but it seems like reading the color bands on blue metal-film resistors is harder than it was on the old brown carbon ones. So often the multimeter has to come out to check, but it’s annoying. Thus we rather like [Mike]’s Resistorganizer, which automates the process of keeping track of the components.

At its heart is a fairly simple concept, with the microcontroller reading the value of a resistor by measuring the voltage from a potential divider. The Resistorganizer extends this using an array of analogue multiplexer chips, and is designed to plug into one side of a breadboard with the idea being that each line can have a resistor connected to earth through it. Of course it’s not quite as simple as that, because to maintain a readable range a set of resistors must be switched in and out to form the other half of the divider for different ranges. Thus another multiplexer chip performs that task.

Finally a set of digital multiplexers handles an LED to see which of the many resistors is currently selected through a pair of buttons, and a dot-matrix LCD display delivers the value. We want one already!