JoyToKey with USB Buttons

As you might know (or might not) I build custom USB (and MIDI) controllers. You can find them on Etsy.

Anyway, a (potential) customer got in touch with me and asked if we could make a button work with JoyToKey which is a Windows application that can map joystick input to key commands. It’s been a while since I programmed a joystick but it was fairly simple, and I had it all working in no time.

So add that to the list for future development if you ever need a button to emulate a joystick so it can send key commands. (Hey, we do what people ask!)

Here’s what JoyToKey looks like. The line highlighted in yellow is what happens when the button is pressed.When released it goes back to not being highlighted. Cheers!


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!


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 it 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!


Development with Resistance

As you may know, I sell a variety of USB controllers (on Etsy and my own shop) and I accept custom orders where I work with the customer to build (and program) what they want or need. So last year someone got in touch with me and said “Your Dual Button looks great! I need it with a 2.5mm stereo jack though, and it’s going to control some [REDACTED] equipment.”

So this was not a USB controller, but they liked the form factor of my product. Well, no problem. I do custom. I got as much detail as I could about the device they had (which was not working anymore) and asked for photos. There was a resistor wired into one of the buttons, so I asked the customer to check it with a meter to get the value. He couldn’t quite figure it out, but we made some guesses based on the color bands in the photo and I came up with a solution.

With the 2.5mm stereo jack we determined which of the TSR (Tip, Ring, Sleeve) parts were ground, and each of the buttons, and which button had the resistor on it. One button supplied full voltage and the other a lower voltage. I didn’t find out too much about the extremely expensive equipment it was connecting to, but I didn’t need to.

I came up with an easy way for the customer to swap the resistor, and even sent spares of various values in case we didn’t guess correctly. I think it worked fine with our “guess” resistor, so maybe the equipment just looks for full voltage versus a lower voltage. Who knows? I don’t work in the [REDACTED] field.

I often find these projects fun and a little challenging. I probably don’t always cover the time I put into them, but often they’re a good learning opportunity and sometimes turn into a product or repeat business.


8K Controller for Ubuntu & Blender

A new request came in for the 8K Controller along the lines of “I’m using Blender on Ubuntu and would like these eight key commands programmed to make life easier.” So yeah, that’s what we’ve got.

While the 8K Controller (and all the USB devices we create) should work fine on macOS, Windows, Linux (and even Android and iOS) I still wanted to do the testing on Ubuntu. Luckily I’ve still got a Linux laptop lying around, even if it’s not running the latest version. (It worked great!)

There was also a request for specific colors, which we were able to do. (Note: I’m debating if I should add button color choice to the ordering process or make it a “get in touch” sort of thing. This is the first order that has specifically asked for certain colors.)

As for Blender, it’s been years since I tried to use it, though people have told me it’s gotten a lot easier to use. I know a few die-hard users who just love it.

Reminder: The 8K Controller is a USB controller. By default, it’s programmed for function keys F13 through F20 (which are not found on most keyboard) but can be customized for any key or key combo. You can get one at the 2XL Networks Shop.