Big Button Audio Player

I was recently contacted by an artist who really liked The Big Button and wanted to use it for an art installation. After some discussion it turned out they really didn’t need a USB controller but needed something to trigger an audio player. When I asked what they were going to use for an audio player they said they didn’t know, so I suggested building the whole thing to ensure it would all work together. And it did.

The control box (which is the “audio player” in the simplest terms) allows the button to plug into it using a 3.5mm TRS cable. This allows the customer to swap out to a longer or shorter cable if needed. 3.5mm TRS stereo cables are everywhere and pretty cheap. Since we only need three wires there’s no need for a more complex connection. (Though if you need an RJ-45 solution, we’ve got that covered.)

The control box also has a 3.5mm jack for audio out. This is to connect to external powered speakers or a PA system. (Or headphones!) And in the center of the front panel is a Mini USB jack for powering the unit via a Mini USB cable and a 5 volt wall wart.

There’s a hole on the side of the unit for access to the Micro SD card in the audio player. Just in case sounds ever need to be changed, or if the card fails, etc. Without this hole it would be very difficult to get to the card. (Just like the Game Show Buzzer System I covered the hole with tape before shipping.)

Here’s a look inside the unit. There’s an Arduino Nano with the audio player, and the 3.5mm jack and… some wires! And a few wire connectors taped together just to prevent them from rattling. This was a quick build but it came together fairly easily. I did a good amount of testing with this one, and luckily it all went well. (I should really build a permanent testing station again, as it’s becoming of a need lately.)

So hey, if you need some weird electronic device that does something… let me know!


Syncing a Behringer RD-6 to a Pocket Operator via a Pi Pico

The full title of this should be Syncing a Behringer RD-6 Analog Drum Machine to a Pocket Operator PO-14 Sub with a Raspberry Pi Pico Microcontroller. That’s a bit long, but it’s also descriptive. The RD-6 can be synced via MIDI, but the Pocket Operators do not do MIDI. The RD-6 does have an analog sync in which will trigger at over 2.5 volts, but the Pocket Operators output about 1 volt when they sync with each other.

I’d seen a few ideas and potential solutions online. One involved a DC boost converter, so I tried one but it didn’t work. Another involved using an overdrive guitar pedal, but I don’t have one…

What I do have are a bunch of Arduino boards of various types. I originally grabbed an Arduino Nano with the idea that I could capture the PO-14 output at 1 volt with an analog pin and then output a pulse on a digital pin as a trigger. The Arduino outputs at 5 volts though, and while I don’t mind making a voltage divider, I also had a Teensy LC on my desk, so I tested with that since it runs on 3 volts. And then, since my desk is fairly large, I grabbed a Raspberry Pi Pico microcontroller which also runs on 3 volts. I used the same Arduino code on the Pico as the Teensy (thanks to the work of Earle F. Philhower, III).

This is literally all there is to the code. I added an LED which blinks when a pulse is read, and then I just connected the signal wire to the same pin as the LED (and the other to ground) and plugged those into the sync in of the RD-6.

I’m new to all this syncing of musical devices, and this may be the wrong way to do it, but it worked for me. I did try to set the RD-6 as the master device and sync the PO-14 to it, but it didn’t seem to work quite right. The voltage may be a bit too high causing erratic behavior on the Pocket Operator.

Since this works, I’ll probably stick with it unless someone tells me it’s a terrible idea or tells me a better way to do it that is cheap, easy, or involves things I already have.

Enjoy the demo video below!


Game Show Buzzer System

I recently completed a build for a client that I’m calling a “Game Show Buzzer System” because, well… that’s what they asked for. The requirements were a system with two buzzers, green and red, that when pressed each played a different sound. They also wanted a light controlled, as they were going to build this all into a podium for some game show broadcast on the Internet.

At first they asked for colored light strips, so I was going to use NeoPixels, but then they switched to wanting to control a DMX light. I didn’t have a DMX light handy so I got the cheapest one on Amazon to start doing development with. Meanwhile they shipped me a very nice professional DMX light. I got the code working on my cheap light, but once moved over to the good light it didn’t work without some tweaking. Different DMX lights operate differently, duly noted.

The electronics live in a 3D printed enclosure. This probably took more time than the code. (But since code is often reused, that’s not surprising.) This project came together pretty quickly, but if I hadn’t I probably would have spent more time on the enclosure. It’s not bad, it just has a few things that annoy me about it. Everything is labeled, which is good, because it is possible to plug the 3.5mm plugs into the wrong place.

The top features a knob and small display which are used to set the reset time for the unit after a button is pressed. The client thought that 30 seconds for the reset might be good, but while discussing it there was concern that might be too long, so I suggested a way to adjust it.

The large buttons use 3.5mm jacks and cables to connect. Since TRS cables have three connections, they’re perfect for items with GND, a button, and an LED. This also allows for the client to easily swap cables if these are too long or too short.

The client provided the sounds. (Well, links to YouTube videos with the sounds.) If they ever want to replace the sounds, or the SD card fails, it can be easily accessed. I didn’t have time to make a door or panel for this, so I covered it with gaff tape before I shipped it.

A peek at the inside. It’s a little tight, but there’s a lot going on in there. I ended up making my own “shield” to connect everything because, this was a rush project, but it all works, even if it’s not the prettiest thing I’ve built. I did about 4 days of testing before shipping it out. It all works, and it was a fun and challenging build. Neat!


Omni Wheel Robot (LEGO Build)

I’ve always found omni wheel robots fascinating. I even tried to design my own omni wheel (which did not turn out great.) But over at Brown Dog Gadgets I thought we should give it a try and build an Omni Wheel Robot. (And there’s a full guide and code available.)

This is a perfect use of LEGO parts. It is completely possible to fabricate all the parts needed to build this, either using digital fabrication (laser cutter, 3D printer, etc.) or by hand, if you’re the handy kind. But honestly, the LEGO aspect made the build super-simple, and the guide links to all the parts on BrickOwl (which are all pretty cheap.)

The other magic of this build is using 4 servos instead of stepper motors. While you do lose precision, this makes things much less complex and just simplifies everything. We’ve also got an Arduino and a battery pack. That’s it. Yeah, the goal was simplicity.

This is a beginner project in many ways, but it can also serve as a platform for code exploration. We provided the basic code for movement, but there’s room to expand on that, add sensors, etc.

And since it’s LEGO, it is by definition a platform you can build upon and add to. (We’ve even got 3D printed LEGO compatible parts for you.)

Check out the guide to this Omni Wheel Robot if you want to learn more.


Fun with WS2812 LED Sticks

Back when I used to build museum exhibits we put WS2812 LEDs (also known as “NeoPixels”) into things. Lots of things. Sometimes inside cabinet walls or tubes or pipes for glow effects, and sometimes as feedback devices for interactivity. I’ve also built a few signs before, so I’m not new to NeoPixels/WS2812 LEDs…

But I never seem to have any laying around wired up to just mess around with. So I fixed that. I mean, I’ve got tons of strips lying around in a box in my office, but I wanted something smaller and easier to deal with. I found these poorly named Comidox 5PCS WS2812 5050 RGB 8 LEDs Light Strip Driver Board 8 Channel Built-in Full Color-Driven Development Board Black for Arduino which is 5 sticks with each having 8 LEDs, for a total of 40 NeoPixels. (And yeah, it was less than $8 for 5 sticks! That’s 20 cents per NeoPixel.)

What I didn’t know when ordering is that they came all together as one that you are meant to snap apart. Why bother!?! I just soldered them up to make an LED matrix! (Terrible soldering, but it does work.)

Now I feel like I have something handy, on my desk, that I can easily use to prototype NeoPixel development. I started out with the Adafruit_NeoPixel which I’ve used in the past, but now I’m using the FastLED library, which so far seems pretty awesome. There are also some matrix libraries I’ll need to investigate. I’m running these from an Arduino Pro Micro with the Leonardo firmware on it, which seems totally up to the task.

By the way… I recently realized it’s been over 10 years of “screwing around” with Arduino boards, and in that time I’ve been a Technical Editor for two Arduino books, taught Physical Computing (“Arduino for Artists”) in a university, taught classes at a makerspace and a museum, and written plenty of guides about Arduino projects. It’s been an interesting ride!