The complete DIP switch USB stick plugged into my Surface Pro tablet.
Tired of editing XML and JSON files to store configuration settings for your hardware or software? What if we could go back to using DIP switches for configuration settings? Well, with the DIP switch USB stick, you can! No more telling relatives how to fire up vim or emacs and edit a file during those late-night family tech support calls. Yeah, just flip the red switch!
I first saw a Scramblepad on the door of an office building I worked at while in high school in the late ’80s. I always wanted to own one or to make my own based on seven-segment LED displays but had trouble finding a suitable, transparent touchpad I could use for the buttons. I eventually gave up on building my own.
Luckily I found a few Scramblepads up for sale recently and decided to buy one to see if I could do anything useful with it. With a bit of work, I reverse engineered the communication protocol and can now use my Scramblepad with my own simplified homebrew door controller. Read on to learn more about the hardware, the communications protocol, and building a homebrew Scramblepad compatible door controller.
In this project, I build what is quite possibly the world’s simplest (and least intelligent) door access controller to let me open and close my garage door using my mountain bike helmet. We’ll take a look at my motivation for the project, review some available RFID readers, pick a reader, then design and program the simple access controller. The simple access controller will receive the card ID from the RFID reader, compare the ID against a list of authorized cards, and make the decision to activate the garage door opener or not. Afterwards, we’ll briefly talk about the security of the system and include some ideas on how to improve the project.
I have a Blackmagic Designs Micro Studio Camera I wanted to use as a webcam for video conferences. Even with a 16mm sensor, it has better quality than any small sensor webcam. The only issue is all the exposure and focus controls are manual. When connected to one of their ATEM video switchers, this isn’t a problem as the ATEM provides control of all connected cameras using data sent back to the camera embedded in the HD-SDI return video feed.
If you want to use the camera without an ATEM swtich, however, there’s no way to control the exposure without using the small awkward buttons on the front of the camera and no way to control the focus without reaching up and turning the lens’s focus ring. Being an engineer, hacker, and maker, there had to be a better way! And there was. Read on to find out more about my solution for controlling the camera. Also, it’s 100% open source and licensed under the permissive MIT license if you want to build your own.
The USB analog panel meters controlled by a Windows 10 C# .NET app developed in Visual Studio 2019.
In the first part of this project, I acquired four round HUA SO-45 10 mA analog panel meters and built a board to control them over USB as a vendor-defined USB HID device. The next steps in this project are to build an enclosure for the meters and to develop a C# .NET graphical user interface to control them. Let’s take a look at designing the enclosure then we’ll take a look at building a simple Windows GUI to control them.
A Grass Valley Kalypso video switcher machine control panel (bottom) and crosspoint switch panel (upper right) after converting them into USB human interface devices using Silicon Labs EFM8UB2 USB microcontrollers.
In this project, I convert two panels from a vintage Grass Valley video switcher into general-purpose USB input and output devices without modifying the original panels. This project required both reverse engineering the hardware and deciphering the software protocols used to communicate with the panels. Because these panels required learning how to communicate with a microcontroller and a small FPGA, this project was significantly more challenging than the previous project where I converted a matrix button panel from the same mixer into a USB device.
In this write up, we’ll examine the two panels in detail and determine the hardware interface to the panels. Once the hardware interface is determined, we’ll build some boards to use to help decipher the protocols used to control the boards. Once the protocols are understood, we’ll build a second set of boards to control the panels using USB then develop the USB software and an example Linux application that controls the panels over USB. This project took about four months from start to completion.
The resurrected Grass Valley user definable switch panel.
In this project, I convert a set of illuminated push buttons from a vintage Grass Valley video mixer into a custom vendor-defined USB HID peripheral. Like the USB analog panel meters project, this project uses a Silicon Labs EFM8UB1 microcontroller for USB connectivity. Unlike the panel meters project which only received data from the USB host, this project needs to send data back to the USB host too.
In this write up, we’ll reverse engineer the button panel, decide on a strategy for reading the keys and controlling the LEDs, build a board, then write both embedded and Linux software to interface with the button panel. If you want to build your own device like this but don’t have this specific switch panel, don’t worry–the ideas presented here are applicable to any generic 3×4/4×3/4×4 matrix keypad with or without LEDs.
I’ve always liked the way these little HUA SO-45 analog panel meters looked, but, given the long lead times from China, I’ve never ordered a set. This fall, I changed my mind and finally decided to order a set. While they were in transit to the United States, I designed a small board to control them over USB using a Silicon Labs EFM8UB1 Universal Bee 8051-baeed microcontroller.
An animated GIF of the single USB RGB LED cycling through red, green, and blue.
This project is a single RGB LED that is controlled over USB using a command line interface from a serial terminal window. A PIC16F1459 microcontroller implements the USB communications device class (CDC), processes the commands received from the user, and controls a single APA106-F8 8mm round RGB LED.
The USB CDC causes the PIC to appear as a serial port to the host computer. At this point, any terminal emulator software can be opened to access the CLI, and send commands to control the color and brightness of the LED. The APA106 addressable LED protocol is identical to the Neopixel / WS2812b protocol.