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.
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 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?
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.
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.
You know what’s cool? Using your engineering knowledge to solve problems that you have while building something. This is exactly what [Reinis] did when his 3D printer’s endstop wasn’t working.
Many of us automatically go to a microcontroller when we run into a problem with a sensor, but often a simple analog filter will do the trick. The endstop in [Reinis’s] RepRap style 3D printer was giving off an unusual amount of noise when closed. When he hooked the endstop up to his oscilloscope, he was shocked to see how much noise there really was. In comes the low-pass filter. Unhappy with the response time of his low-pass filter, [Reinis] solved the problem using a pullup resistor. Two resistors and a capacitor was all that he needed to fix the problem. A great solution!
How have you used analog filters in your projects? Send us a tip and let us know!
Don’t get us wrong, we love our Raspberry Pi. But if you’re merely running a Linux image without adding a hardware hack into the mix you’re missing out on part of the power for which the platform was developed. This project is a great example of how to embrace the Raspberry Pi’s ability to deliver both low-level hardware access, and solid embedded Linux performance. [Dan Ankers] and [Threeme3] have developed a program which turns the RPi in to a WSPR transmitter. The GitHub readme shares many of the details on how it was done. But you’ll also want to dig through the .c file to see how they’re making use of the GPIO header pins.
[William Meara] sent in the tip for this. He’s been featured on Hackaday previously for his work with WSPR (Weak Signal Propagation Report). It’s an amateur radio protocol which lets you communicate over very long distances using relatively weak transmitters. The trick is to use computing power to find the signal hidden in all the noise. Be warned that you do need a HAM license to try this out, but otherwise all you need to connect to the board is a low-pass filter and an antennae.
Microcontrollers are digital devices at heart. They can do fancy things like convert analog signals into a digital value but going the other direction is a bit tougher. Pulse-Width Modulation is used to approximate an analog output but what you’re actually doing is turning the operating voltage on and off very quickly to achieve an average value somewhere in between. This is the method most commonly used to dim an LED. But generating a smooth voltage in this way takes just a few more parts.
[Scott Daniels] spent some time discussing the process of smoothing a PWM output by using a low pass filter. This is a compilation of digital and analog circuitry to produce a smoother signal than PWM can achieve on its own. As you can see above, the low pass filter is made up of one resistor and one capacitor. The theory is not hard to understand, and with [Scott’s] help you’ll become much more comfortable with choosing the component values for you own filters. His examples center around an Arduino using the analogWrite() function but the techniques can be applied universally.