Hackaday regular [befinitiv] wrote into the tip line to let us know about a hack you might enjoy, wireless UART output from a bare STM32 microcontroller. Desiring the full printf debugging experience, but constrained both by available space and expense, [befinitiv] was inspired to improvise by a similar hack that used the STM32 to send Morse code over standard FM frequencies.
In this case, [befinitiv]’s solution is both more useful and slightly more legal, as the software uses the 27 MHz ISM band to blast out ASK modulated serial data through a simple wire antenna attached to one of the microcontroller’s pins. The broadcast can then be picked up by an RTL-SDR receiver and interpreted back into a stream of data by GNU Radio.
The software for the STM32 and the GNU Radio Companion graph are both available on Bitbucket. The blog post goes into some detail explaining how the transmitter works and what all the GNU Radio components are doing to claw the serial data back from the ether.
This project of [Nathan]’s certainly has a playful straightforwardness about it. His Skype ‘Kiss’ Interface has a simple job: to try to create a more intuitive way to express affection within the limits of using Skype. It all came about from a long distance relationship for which the chat program was the main means of communicating. Seeking a more intuitive and personal means of expressing some basic affection, [Nathan] created a capacitive touch sensor that, when touched with the lips, sends the key combination for either a kissy face emoji or the red lips emoji, depending on the duration.
Capacitive touch sensing allows for triggering the sensor without actually physically touching one’s lips to the electrodes, which [Nathan] did by putting a clear plastic layer over the PCB traces. His board uses an STM32 microcontroller with software handling the USB HID and STM’s TSC (Touch Sensing Controller) functionality. As a result, the board has few components and a simple interface, which was in keeping with the goal of rejecting feature creep and focusing on a simple task.
Clearly the unit works; but how well does it actually fulfill its intended purpose? We don’t know that yet, but we do know that [Nathan] seems to have everything he needs in order to find out. Either way, it’s a fun project that definitely fits the spirit of the Human-Computer Interface Challenge of The Hackaday Prize.
The microcontroller running the watch is an STM32, chosen for its easy programmability. It’s running the LEDs in an emulation of the dial of an analog clock, hence the high part count. Naturally, it’s no simple task to cram 73 LEDs and all the necessary connections into the confines of a watch-sized PCB. [Kevin] goes into great detail about the challenges involved, from routing the traces to a tricky power draw problem caused by some odd blue LEDs.
The CAN bus is a rich vein to mine for a hacker: allowing the electronic elements of most current vehicles to be re-purposed and controlled with ease. [MikrocontrollerProjekte] has reverse engineered a CAN bus media and navigation controller and connected it to an STM32F746G-Discovery board. The STM32 is in turn connected to an Android phone, and allows the media controller to trigger a large number of functions on the phone, including music playback, maps, and general Android navigation.
When reverse engineering the controller, [MikrocontrollerProjekte] employed a variety of approaches. A small amount of information was found online, some fuzzing was done with random CAN bus IDs and messages, as well as some data logging with the device inside the car to identify message data to the relevant IDs on the bus.
The STM32F746G-Discovery board acts as a Human Interface Device (HID), emulating a mouse and keyboard connected to the Android phone via USB OTG. The LCD screen shows the output of the keystrokes and touchpad area. We’re not sure how useful the mouse-emulation would be, given that the phone has a touchscreen, but the media functions work really well, and would also make a really snazzy music controller for a PC.
It’s difficult to convey in an era when a UNIX-like operating system sits in your pocket, how there was once a time when the mere word was enough to convey an aura of immense computing power. If you ran UNIX, your computer probably filled a room, and you used it for Serious Stuff rather than just checking your Twitter feed. UNIX machines may still perform high-end tasks, but Moore’s Law has in the intervening years delivered upon its promise, and your phone with its UNIX-like OS is far more powerful than that room-sized minicomputer of the 1970s. A single chip for a few cents can do that job, which begs the question: just how little do we need to run UNIX today? It’s something [Joerg Wolfram] could advise you upon, because he’s got a functional UNIX running on a microcontroller.
Of course, the UNIX in question is not exactly the same as the one you’d find on a supercomputer, either in the 1970s or now. Mini UNIX is a minimalist version of the operating system developed by [Heinz Lycklama] at Bell Labs four decades ago. It gives you a complete UNIX V6 system for the DEC PDP-11, but which needs only 56K of RAM, and no MMU. Emulating a PDP-11 on an STM32 microcontroller allows it to run happily, and while it’s not the most minimalist of microcontrollers it’s still a pretty cheap part upon which to run UNIX.
It’s doubtful whether a 1970s version of an operating system on a commodity microcontroller will take the world by storm, but that’s hardly the point of such a neat hack. It’s certainly not the first time we’ve seen similar work, though this PIC32 offering has a little more in the way of resources to offer.
A combination of cheap USB HID capable microcontrollers, the ability to buy individual mechanical keys online, and 3D printing has opened up a whole new world of purpose-built input devices. Occasionally these take the form of full keyboards, but more often than not they are small boards with six or so keys that are dedicated to specific tasks or occasionally a particular game or program. An easy and cheap project with tangible benefits to anyone who spends a decent amount of time sitting in front of the computer certainly sounds like a win to us.
But this build by [r0ckR2] takes the concept one step farther. Rather than just being a simple 3×3 keypad, his includes a small screen that shows the current assignments for each key. Not only does this look really cool on the desk (always important), but it also allows assigning multiple functions to each key. The screen enables the user to switch between different pages of key assignments, potentially allowing a different set of hot keys or macros for every piece of software they use.
The case is entirely 3D printed, as are the key caps. To keep things simple, [r0ckR2] didn’t bother to design a full enclosure, leaving all the electronics exposed on the back. Some might think it’s a little messy, but we appreciate the fact that it gives you easy access to the internals if you need to fix anything. Rubber feet were added to the bottom so it doesn’t slide around while in use, but otherwise the case is a pretty straightforward affair.
As for the electronics, [r0ckR2] went with an STM32 “Blue Pill” board, simply because it’s what he had on hand. The screen is a ST7735 1.44 inch SPI TFT, and the keys themselves are Cherry MX Red clones he got off of eBay. All in all, most of the gear came from his parts bins or else was only a couple bucks online.
[Aidan Lawrence] likes classic synthesized video game music in the same way that other people “like” breathing and eating. He spent a good deal of 2017 working on a line of devices based on the Yamaha YM2612 used in the Sega Genesis to get his feet wet in the world of gaming synths, and is now ready to take the wraps off his latest and most refined creation.
The YM2151 Arcade Classic is an open source hardware player for Video Game Music (VGM) files. It uses no emulation, the files are played on the device’s YM2151 chip in the same way they would have been on a real arcade cabinet at the time of their release. Interestingly, as some arcade machines were exceedingly rare or even scrapped before release, [Aidan] believes that his player may be the first time some of these songs have ever been played (at least in public) on real hardware.
The YM2151 synthesizer is powered by a STM32 “Blue Pill” board, which was selected as much for its capabilities as it was its low cost. The STM32 loads the VGM files from an SD card, and puts track information for the currently playing song on the 128×32 OLED display. A few tactile switches under the screen allow for shuffling through the songs stored on the card, and a slide switch for mute rounds out the simplistic but functional user interface.
In the GitHub repository, [Aidan] has provided the source code, schematics, Bill of Materials, and KiCad-generated Gerber files; everything you need to create your own version of his player. After listening to it rock out for a few minutes in the video after the break, we’re tempted to take him up on that offer.