If you’ve ever turned a rotary encoder or pushed a cursor button and had it skip a step or two, you’ve suffered directly from button bounce. My old car stereo and my current in-car GPS navigator both have this problem, and it drives me nuts. One button press should be one button press. How hard is that to get right?
In the last session of Embed with Elliot, we looked into exactly how hard it is to get right and concluded that it wasn’t actually all that bad, as long as you’re willing to throw some circuitry at the problem, or accept some sluggishness in software. But engineers cut corners on hardware designs, and parts age and get dirty. Making something as “simple” as a button work with ultra-fast microcontrollers ends up being non-trivial.
And unsurprisingly, for a problem this ubiquitous, there are a myriad of solutions. Some are good, some are bad, and others just have trade-offs. In this installment, we’re going to look at something special: a debouncer that uses minimal resources and is reasonably straightforward in its operation, yet which can debounce along with the best of ’em.
In short, I’ll introduce you to what I think is The Ultimate Debouncer(tm)! And if you don’t agree by the end of this article, I’ll give you your money back.
Continue reading “Embed with Elliot: Debounce your Noisy Buttons, Part II”
How often is your microcontroller actually doing something? You can find out by measuring idle time, but how exactly do you do this? [Jack Ganssle] shows that simple embedded applications can toggle a pin when idle, which can then be measured. More complex applications like those using a Real Time Operation System can do the same by making use of the idle hook. But what can you do to make this toggling pin feedback actually mean something?
His solution is to repurpose an analog multimeter. The meter is interface with the toggle pin and a trimpot calibrates the needle. This way the needle jumps when the processor is busy and returns to zero when idle. What a great tip for getting a little more feedback about what’s going on inside of that black plastic IC package. It’s not surprising to find such a clever hack from one of the Hackaday Prize judges.
While you’re in the analog multimeter aisle you might want to pick up a couple of extras for more alternate data displays.
Continue reading “Cheap Multimeter Gauges Embedded Idle Time”
This week we’re getting to know The Hackaday Prize Judge [Jack Ganssle] a little better. His depth of experience with embedded systems is formidable, and recently I was very interested to learn about his mission to improve the quality of the product in the embedded code universe. We’ll get to that in a little bit, but I wanted to start off with [Jack’s] answer to my final question.
Is there anything else you’d like our audience to know about you?
My entry into this field was when the first 8 bit processor (the 8008) came out, and still find it endlessly fascinating. I write a lot about embedded topics, and give talks and seminars, on all of the continents except Antarctica (so far!). We live in heavily-wooded Finksburg, MD, which is just stunning this time of year, and, since my office is in the house, the commute is pretty tolerable. Other passions include sailing; I wrote an on-line book (www.ganssle.com/jack) about racing alone across the Atlantic. Great trip, other than losing the boat.
Continue reading “Judge Spotlight: Jack Ganssle”