The BBC Micro:bit, while not quite as popular in our community as other microcontroller development boards, has a few quirks that can make it a much more interesting piece of hardware to build a project around than an Arduino. [Turi] took note of these unique features and decided that it was the perfect platform to build a synthesizer on.
The Micro:bit includes two important elements that make this project work: the LED matrix and a gyro sensor. [Turi] built a 5×5 button matrix for inputs and paired each to one of the diodes, which eliminates the problem of false inputs. The gyro sensor is used for detuning, which varies the pitch of any generated sound by a set amount according to the orientation of the device. It also includes a passive low-pass filter to make the sound more pleasant to the ear, especially for younger players of the machine. He’s released the source code on his GitHub page for anyone interested in recreating it.
While this was a one-off project for [Turi], he notes that using MicroPython to program it instead of C led to a lot of unnecessary complications, and the greater control allowed by C would enable some extra features with less hassle. Still, it’s a fun project that really showcases the unique features of this board, much like this tiny Sumo robot we covered over the summer.
Audio synthesizers can range from vast racks of equipment with modules stitched together by a web of patch cords to a couple of 555s wired together in an Atari punk arrangement. This light-controlled synth comes in closer to the lower extreme of that range, but packs a sonic punch that belies its simplicity.
The project is the latest version of [lonesoulsurfer]’s “Moog Light Synthesizer,” which shares a lot of the circuitry found in his first version a couple of years ago. This one has a lot of bells and whistles, but it all starts with a PWM oscillator that contributes to the mean, growling quality of its sound. There’s also a low-pass filter that’s controlled by a couple of light-dependent resistors, which can be played by blocking them off with a fingertip. A couple of inverters form a drone oscillator that can be switched into the circuit, as well as a 555-based arpeggiator to chop things up a bit.
All those circuits, as well as support for a thirteen-key keyboard, live on one custom PCB. There’s also an off-the-shelf echo/reverb module that’s been significantly hacked to add to the richness of the sound. The custom wood and acrylic case make the whole thing look as good as it sounds.
We noted that [lonesoulsurfer]’s previous “Box of Beezz” drone synth seemed to evoke parts of the “THX Deep Note” at times; similarly, some of the sounds of this synth sound like they’d come from the soundtrack of a [Christopher Nolan] film — check it out in the video below.
Frequenters of arcades back in the golden age of video games will likely recall the mix of sounds coming from a properly full arcade, the kind where you stacked your quarters on a machine to stake your claim on being next in line to play. They were raucous places, filled with the simple but compelling sounds that accompanied the phosphor and silicon magic unfolding all around.
The days of such simple soundtracks may be gone, but they’re certainly not forgotten, with this chiptunes generator built into an RCA plug being both an homage to the genre and a wonderful example of optimization and miniaturization. It’s the work of [girst] and it came to life as an attempt to implement [Rob Miles]’ Bitshift Variations in C Minor algorithmically generated chiptunes composition in hardware. For the first attempt, [girst] chose an ATtiny4 as the microcontroller, put it and the SMD components needed for a low-pass filter on a flex PCB, and wrapped the whole thing around a button cell battery. Stuffed into the shell of an RCA plug, the generator detects when it has been inserted into an audio input jack and starts the 16-minute piece. [girst] built a second version, too, using the Padauk PSM150c “Three-Cent Microcontroller” chip.
Mind you, [Franco Molina]’s “DrumCube” doesn’t quite have the flash of a human drummer, but it does keep a steady beat and has a charm of its own. The drum machine is mostly mechanical, reminding us somewhat of the Wintergatan Marble Machine which is as captivating to watch as it is to hear. The DrumCube has a snare drum played by two servo-controlled sticks, a kick drum using foam waggled back and forth between two piezo transducers hooked to a low-pass filter, and a reverse-biased transistor white noise generator used for the hi-hat. Sadly, the large gear appears to be just for show. An Arduino runs everything and makes sure the mechanical drum hits are synced to the electronic cymbals, which was no mean feat.
The video below shows it in action accompanying [Franco] on his guitar, and it looks as good as it sounds. Prefer a more compact, all-electronic drum kit? Here’s one that fits in your pocket.
If you are in any way connected with radio, you will have encountered the low pass filter as a means to remove unwanted harmonics from the output of your transmitters. It’s a network of capacitors and inductors usually referred to as a pi-network after the rough resemblance of the schematic to a capital Greek letter Pi, and getting them right has traditionally been something of a Black Art. There are tables and formulae, but even after impressive feats of calculation the result can often not match the expectation.
The 30MHz low-pass filter, as QUCS delivered it.
Happily as with so many other fields, in recent decades the advent of affordable high-power computing has brought with it the ability to take the hard work out of filter design, Simply tell some software what the characteristics of your desired filter are, and it will do the rest. The results are good, and anyone can become a filter designer, but as is so often the case there remains a snag. The software calculates ideal inductances and capacitances for the desired cut-off and impedance, and in selecting the closest preferred values we modify the characteristics of the result and possibly even ruin our final filter. So it’s worth taking a look at the process here, and examining the effect of tweaking component values in this way.
The idealised graph produced by QUCS for our filter.
The filter we’re designing is simple enough, a 5th-order Bessel filter, and the software is the easy-to-use QUCS package on an Ubuntu Linux machine. Plug in the required figures and it spits out a circuit diagram, which we can then simulate to show a nice curve with a 3dB point right on 30MHz. It’s an extremely idealised graph, and experience has taught me that real-world filters using these designs have a lower-frequency cut-off point, but for our purposes here it’s a good enough start.
As previously mentioned, the component values are not preferred ones from a commercially available series, so I can’t buy them off the shelf. I can wind my own inductors, but therein lies a whole world of pain of its own and I’d rather not go there. RS, Mouser, Digikey, Farnell et al exist to save me from such pits of electronic doom, why on earth would I do anything else but buy ready-made?
My revised filter circuit with off-the-shelf component values.
So each of the components in the above schematic needs moving up or down a little way to a preferred value. What effect will that have on the performance of my filter? Changing each value and re-running the simulation shows us the graph changing subtly each time, and it can sometimes be a challenge to adjust them without destroying the filter entirely. Particularly with the higher-order filters with more components in the network you can observe the effect of individual components on the gradient at different parts of the graph, but as a rule of thumb making values higher reduces the cut-off frequency and making them lower increases it. In my case I always pick higher values for that reason: my nearest harmonic I wish to filter is at double the frequency so I have quite some headroom to play with.
The revised curve from the filter with preferred values.
Having replaced my component values with preferred ones I can run the simulation again, and I can see from the resulting graph that I’ve been quite fortunate in not damaging its characteristics too much. As expected the cut-off frequency has shifted up a little, but the same curve shape has been preserved without any ripples appearing or it being made shallower.
If I were using this filter with a real transmitter I would ensure that I designed it with a cut-off at least a quarter higher than the transmission frequency. In practice I find the cut-off to be sharper and lower than the simulation leads one to expect, and for example, were I to use this one with a 30 MHz transmitter I’d find it attenuated the carrier by more than I’d consider acceptable. It must also be admitted that changing the component values in this way will also change the impedance of the filter from the calculated 50 ohms, however in practice this does not seem to be significant enough to cause a problem as long as the value changes are modest.
We haven’t made this filter, but in the past we’ve featured another one I did make, and by coincidence it was in the same frequency range. When I wrote a feature on automating oscilloscope readings, the example I used was the characterisation of a 7th-order 30 MHz low-pass filter. It might even be one of the ones in the header image, pulled from my random bag of filter boards for the occasion.
Among its many tricks, the Raspberry Pi is capable of putting clock signals signal out on its GPIO pins, and that turns out to be just the thing for synthesizing RF signals in the amateur radio bands. What [Zoltan] realized, though, is that the resulting signals are pretty dirty, so he came up with a clever Pi shield for RF signal conditioning that turns a Pi into a quality low-power transmitter.
[Zoltan] stuffed a bandpass filter for broadband noise, a low-pass filter for harmonics, and a power amplifier to beef up the signal a bit into a tiny shield that is cleverly engineered to fit any version of the Pi. Even with the power amplifier, the resulting transmitter is still squarely in the realm of QRP, and the shield is optimized for use as a WSPR beacon on the 20-meter band. But there’s plenty of Pi software available to let hams try other modes, including CW, FM, SSB, and even SSTV, and other signal conditioning hardware for different bands.
Yes, these are commercially available products, but even if you’re not in the market for a shield like this, or if you want to roll your own, there’s a lot to learn from [Zoltan]’s presentation at the 2015 TAPR Digital Communications Conference (long video below). He discusses the difficulties encountered getting a low-profile shield to be compatible with every version of the Pi, and the design constraints that led to the decision to use SMT components.
Logic Noise is an exploration of building raw synthesizers with CMOS logic chips. This session, we continue to abuse the 4069UB as an amplifier. We’ll turn the simple unity-gain buffer of last session into a single-pole active lowpass filter with a single part. (Spoiler: it’s a capacitor.)
While totally useful, this simple filter is a bit boring and difficult to make dynamic. So we’ll look into an entirely different filter, the Twin-T notch filter, that turns out to be sharp enough to build a sine-wave oscillator on, and tweakable enough that we’ll make a damped-oscillator drum sound out of it.
Here’s a quick demo of where we’re heading. Read on to see how we get there.