Sometimes you just need a single photo to know that the ensuing project is going to be worth keeping tabs on.
With Glen Akins on my Twitter feed, I've been treated to more than a few photos of some very interesting looking work in the area of creating custom, USB-HID control interfaces, and well... just look at the all the fun stuff waiting to go below!
When you know where to look, there are some glorious control interfaces to be found, full to the brim with high quality, and interesting format parts, like key switches that can be illuminated — or even featuring tiny integrated LCD displays.
There's micro LED dot matrix displays, motorized linear potentiometers, and some panel manufacturers even share supplier chain links with The Empire — is that what looks like a prototype control panel for the Death Star main weapon pictured below...?
These panels can be found with resellers and liquidators, the demise of the previous generation of hardware often used in places like professional video production, or other high-value studio based work, where quality of service is one of the spec sheet selling points offered by the equipment manufacturers.
To this end, these assemblies are often filled with high-spec components, well engineered circuitry, and once commanded a suitably eye-watering price tag. You know the stuff, you've got to book a meeting with the sales rep to even be told a ballpark figure...
But — times are always changing, and technology is always being upgraded and replaced — the old kit has to end up somewhere. We're thankful to see it here being repurposed by Akins, rather than at worst, just being sent to the landfill, or somewhat better, hopefully sent to a waste reclamation process.
With this lot having little value beyond scrap — save for a small market of spare part procurment — you can certainly reap the benefits of obsolescence for once, and grab yourself a treasure trove of high quality parts for song in some cases!
Akins is no stranger to obscure USB peripherals. We've featured a number of his USB gadgets previously, and it's no surprise to see a similar level of well thought out engineering being displayed here in these builds.
While each of these bits of kit featuring a range of vastly different components, and no data sheets to hand, your debugging skills are quickly put into practice — if you are looking to use these components in place, that is.
Sure, the individual parts can be referenced against manufacturer data sheets, but untangling the web of circuitry that they are embedded into takes a bit more of a careful eye on things.
What's more, what do you do when faced with the unknown internal operation of something like an FPGA, or CPLD, where you have little chance of finding a reference?
Starting out with a known good system allows Akins to use the trusty Logic16 to first have a sniff about, and investigate the sorts of signals being slung at the HMI panel from the controller.
With high end equipment like this often featuring self-test functionality, you can use something like a logic analyzer to capture the control signals to invoke a known response from the hardware.
If you are looking to hack a working system, this sort of preliminary investigation will surely give you something to refer to when you inevitably brick the hardware later on!
Clearly documenting your findings is important also! We all hate documentation, but getting your lab book — or napkin notes — into a stable reference is also great practice, and we're sure Akins was thanking himself more than a few times for putting the effort into this schematic!
Having a clear handle on the hardware you are about to debug is a grounding you learn to put in place early on in the project, and even a simple breakout board like the one shown below further solidifies that base, reducing those sneaky intermittent hardware errors that can have us chasing ghosts in the machine!
With some captures of the traffic and signals generated for some known conditions, a short while thereafter, Akins has managed to get a handle on how to wrangle the board into doing his bidding.
Double checking things by spinning up a quick PoC in hardware is always good to catch any unforeseen edge cases that might throw a spanner in the works when it comes to designing your own hardware!
This can be as simple as a standalone dev board and some (ok, a few) jumper wires, shown above, but it's a good sanity check to make sure you can move on to the next stage, and not worry about any surprises in store.
With the information in hand to define the hardware connections, along with the signalling protocol to speak to the HMI board, Akins turns to his MCU platform of choice, the EFM8 range of USB-enabled, 8-bit MCU from Silicon Labs, specifically the EFM8UB2 series.
Proving that not every design needs that 32-bit Arm core, these MCUs offer a cost-effective way of spinning a product that features native USB, while offering the peripherals that we'd expect from modern silicon. With a clock speed of 48MHz, a decent 64kB of flash, a range of timers communication peripherals, it's got the goods, without the bloat.
One of the things I've always liked about the EFM parts, is that even the 8-bit range offers the same pin mapping functionality as the more advanced EFM32 range. Not only can you remap UART pin assignments (You know, for when you swap Tx for Rx...), etc. but you're free to sling the analog functions onto the pins that best match your layout. That's handy!
Pulling all of this together, Akins has produced an application specific board, seen below, not only handles the translation between the front panel hardware and USB, but also handles the voltage level shifting and power and clock inputs required by the front panel.
Again, we see some good practice in the schematic drawing, with well labeled nets, and additional information where required for the panel connector. A good schematic can replace a pile of datasheets in a quite a few simple cases of debugging!
It's easy enough to follow layout of the board, as it very closely matches the layout of the schematic. While this isn't always practical, it makes relating the two documents much easier.
It's a clean layout, and includes all the bits needed to coax the front panels into life. The level shifting is taken care of with a pair of SN74LVC8T245 buffers, and there's a 20MHz oscillator to handle the clock input required by the panel circuitry — sometimes it's easier to just place a dedicated part for a critical task!
With the understanding of the typical sorts of signals being put to use in driving these front panels, extending this work to other fun bits of HMI hardware becomes a lot easier for Akins! We can see a few different boards that he's developed in order to drive the various bits of equipment he's working with!
While the details are slightly different in terms of circuit specifics, or layout, we can see that similar approaches taken with each design — even with a different MCU as seen above, or weather it's a form-factor adjustment on the layout, the circuit is recognizable if you've seen the schematic above.
With a lot of the equipment that Akins is working with having been designed and produced by the same manufacturer, this work is a solid foundation form which he can coax the rest of the kit into doing his bidding!
We can see he's expressing his feelings on this below — check out those awesome NKK integrated LCD key switches along the middle row!
So, while this truly is a great bit of reverse engineering, and subsequent, solid hardware design, we can hear some of you asking the question — why?!
Well, if you're wanting to try your hand at interactive installations, with people free to poke, prod, slide, and actuate as they see fit, it makes a good amount of sense to start with some high-grade, well-built bits of HMI hardware.
The G3 at the bottom of the left-hand side rack was no small tower unit.
With two 19" racks to fill with sliders, buttons, actuators and displays, we can see that Akins has a bit of room left to fill on these racks, but having see the rate at which he's progressed this build so far, I'd be surprised if empty racks were left empty for much longer!
We've taken an objective look at the work Akins has done so far, and while this is a work in progress for him, it's clear to see he's already accomplished some significant milestones in this project.
We're told that a full blog post is coming from Akins in due time, and we'll be sure to promote that when it drops — I myself can't wait to see these racks fully populated, with arrays of panels blinking and maybe even beeping as they engage with the attention of many a prospective user.
As always, for the more real-time story, you can keep tabs with Akins over on his Twitter feed: @bikerglen.