The finished USB Knob Box.
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.
An animated GIF of the front panel lamps chasing each other across the panel.
After reverse engineering parts of a Grass Valley Kalypso video switcher control panel and after making a YouTube video describing how I modified a Grass Valley Series 300 transition logic panel to be a USB peripheral, it was time to reverse engineer a Grass Valley Series 300 crosspoint bus switch panel. This panel is about 20 years older than the equivalent Kalypso crosspoint bus switch panel I reverse engineered in the earlier blog post. It’s also quite a bit simpler and uses 100% off-the-shelf logic ICs with no micros or FPGAs. Read on to find out more.
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.
The completed USB analog panel meters project.
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.
The finished wireless remote control for my Mopidy music server. Playback control and volume Icons by Icons by Darrin Loeliger (@MrNumma) and the Noun Project.
After wiring the house for a Dante digital audio network and building the Spotify and Pandora Wireless Remote Track / Artist / Album Display project, I decided the next thing needed to fix up my music listening experience was a quick way to change tracks, control playback, and adjust the volume without messing with a phone or web browser. The Wi-Fi connected Mopidy music server remote control was born!
The completed music server remote track/artist/album display.
I use Pandora and Spotify a lot–typically from 7 in the morning until 11 at night. I got frustrated with the Spotify and Pandora apps on my Pixel 2 and their inability to find and control my Chromecast Audio players reliably. I also wanted a quick way to identify new songs or artists I heard without having to find my phone and open an app.
To solve these problems, I moved my music playing ecosystem to Linux and installed a wired Dante digital audio network for audio distribution. Finally I built a retro 14-segment, scrolling, always-on LED display that I could quickly glance at to discover what song was playing without having to find my phone and open an app.
The completed RS-422 / RS-485 shield for the Automation Direct P1AM-100 open source PLC.
The RS-422 / RS-485 shield is an open source shield designed to add RS-422 and RS-485 communication capabilities to the ProductivityOpen family of open-source programmable logic controllers (PLC’s) from Automation Direct. It’s loosely based on the Arduino MKR RS-485 shield but updated to use an ADM2582E 3.3 V isolated RS-485 transceiver from Analog Devices. The completed shield fits inside the P1AM-PROTO prototyping enclosure.