Last time, I told you how to get started with the “Black Pill” STM32F411 board using the Mbed OS. The example program, admittedly, didn’t use many of the features of the OS, unless you count what the USB serial port driver uses behind the scenes. However, this time, we’ll make a practical toy that lets you adjust your PC’s volume level with a pot.
The Black Pill is a good choice for this application since it has analog inputs and can act as a USB keyboard. In fact, the Mbed OS has drivers for all kinds of USB devices. We’ve seen the serial port, but you can also look like a mass storage device or a mouse, for example. Just for practice, we’ll create two threads of execution. One will read the pot and send a message over to the other thread. That thread will communicate with the PC as a USB keyboard. Any computer that understands media keys on a keyboard should work with the device.
Creating threads is very simple. For many cases, you just define a void function that takes no arguments and use it with a Thread object:
Of course, the function shouldn’t return unless you want the thread to end. As I mentioned in the last post, you can sleep with the ThisThread::sleep_for call. There is also a yield call if you simply want to give up the time slice without sleeping for a specific amount of time.
Yet another Day of the Chocolate Bunnies has passed by, and what did you do to mark the occasion? You likely kicked back and relaxed, surrounded by whatever you gave up for Lent, but good for you if you mixed chocolate and electronics like [Repeated Failure] did. They created a completely edible chocolate Easter bunny that screams when bitten.
So obviously, the hardest part is figuring out something to build the circuit with that is both conductive and safe to eat. [Repeated Failure] spent a lot of time with carbon oleogel paste, which is made from natural oils and waxes. Not only was it less conductive than [Repeated Failure]’s skin, it came out pitch black and tasted like nothing, which kind of a bonus, when you think about it.
Then came the cake paint, which [Repeated Failure] laced with trace amounts of silver powder. While that worked somewhat better, a successful circuit would have likely required near-fatal amounts of the stuff. Yikes!
The winner turned out to be edible silver leaf, which is like gold leaf but cheaper. Ever had Goldschläger? Gold leaf is what’s suspended inside. The really nice thing about silver leaf is that it comes in thin sheets and can easily be cut into circuit traces with scissors and connected to I/O pins with copper tape. Be sure to check it out after the break, including [Repeated Failure]’s friend’s reaction to innocently biting the chocolate bunny’s ears off, as one tends to do first.
We’re used to seeing the Raspberry Pi crop up in a wide range of the projects we show you here, but it’s fair to say that they usually feature some sort of operating system. There’s another way to use a Pi, more akin to using a microcontroller such as the Arduino: by programming it directly, so-called bare-metal programming. MiniDexed is an example, and it copies a classic Yamaha professional synthesiser of the 1980s, by emulating the equivalent of eight of the company’s famous DX7 synthesisers in one unit. It takes almost any Pi, and with the addition of an audio board, a rotary encoder, and an LCD display, makes a ready-to-go unit. Below the break is a video of it in operation.
It’s fair to say that we’re not experts in Raspberry Pi bare metal programming, but it’s worth a diversion into the world of 1980s synthesisers to explore the DX7. This instrument was a staple of popular music throughout the 1980s and was a major commercial success for Yamaha as an affordable FM synthesiser. This was a process patented at Stanford University in the 1970s and subsequently licensed by the company, unlike other synths of the day it generated sound entirely digitally. It’s difficult to overestimate the influence of the DX7 as its sound can be heard everywhere, and it’s not impossible that you own a Yamaha FM synth even today if you have in your possession a sound card.
Curious about the DX7? Master chip-reverse-engineer [Ken Shirriff] exposed its secrets late last year.