Rubber Duck Debugging the Digital Way

Anyone who slings code for a living knows the feeling all too well: your code is running fine and dandy one minute, and the next minute is throwing exceptions. You’d swear on a stack of O’Reilly books that you didn’t change anything, but your program stubbornly refuses to agree. Stumped, you turn to the only one who understands you and pour your heart out to a little yellow rubber duck.

When it comes to debugging tools, this digital replacement for the duck on your desk might be even more helpful. Rubber duck decoding, where actually explaining aloud to an inanimate object how you think the code should run, really works. It’s basically a way to get you to see the mistake you made by explaining it to yourself; the duck or whatever – personally, I use a stuffed pig– is just along for the ride. [platisd] took the idea a step further and made his debugging buddy, which he dubs the “Dialectic Ball,” in the form of a Magic 8-Ball fortune teller. A 3D-printed shell has an ATtiny84, an accelerometer, and an LCD screen. To use it, you state your problem, shake it, and read the random suggestion that pops up. The list has some obvious suggestions, like adding diagnostic print statements or refactoring. Some tips are more personal, like talking to your local guru or getting a cup of coffee to get things going again. The list can be customized for your way of thinking. If nothing else, it’ll be a conversation piece on your desk.

If you’re more interested in prognostication than debugging, we have no shortage of Magic 8-Ball builds to choose from. Here’s one in a heart, one that fits in a business card, and even one that drops F-bombs.

Continue reading “Rubber Duck Debugging the Digital Way”

Art Deco Radio Gets FM Reception

Taking a vintage radio and cramming it full of modern, Internet-connected, guts has long been a staple of the hacking and making scene. While some might see it as a crime to take what’s arguably a legitimate piece of history and turn it into nothing more than a slipshod case for the Raspberry Pi, we have to admit there’s a certain appeal to the idea. Taking the beauty of classic design and pairing it with more modern capabilities is getting the best of both worlds.

But this project by [Nick Koumaris] is a somewhat unique take on the concept. Rather than sacrificing a real vintage piece of hardware to house the electronics, he’s designed a 3D printable case that looks like a classic 1936 AWA Radiolette. But what’s really interesting to us is that he then puts a basic FM radio inside of it.

That’s right, no Internet radio streaming or smartphone Bluetooth compatibility here. It’s just a regular FM radio, not entirely unlike the kind of hardware you’d expect to be inside of a classic radio. Of course, it’s much more modern, and [Nick] actually built it himself from a TEA5767 FM radio module and an Arduino Pro Mini.

While functionally it might not be terribly exciting, we do appreciate that he went through the trouble to make a vintage-looking user interface for the radio. While physical buttons would arguably have been more appropriate given the era, the art deco inspired font and graphics that show on the device’s Nokia 5110 LCD do look really slick.

Purists will surely be happy to see another project where a piece of vintage piece of audio equipment wasn’t sacrificed at the Altar of Hack, but we’ve also played host to many projects which weren’t nearly as concerned with historical preservation.

Continue reading “Art Deco Radio Gets FM Reception”

It Keeps on Going and… Arduino Edition

How long can you keep an Arduino circuit running on three AA batteries? With careful design, [educ8s] built a temperature sensor that lasts well over a year on a single charge of three 2250 mAH rechargeable cells (or, at least, should last that long).

Like most long-life designs, this temperature sensor spends most of its time sleeping. The design uses a DS18B20 temperature sensor and a Nokia 5110 LCD display. It also uses a photoresistor to shut off the LCD display in the dark for further power savings.

During sleep, the device only draws 260 microamps with the display on and 70 microamps with the display off. Every two minutes, the processor wakes up and reads the temperature, drawing about 12 milliamps for a very short time.

Along with the code, [educ8s] has a spreadsheet that computes the battery life based on the different measured parameters and the battery vendor’s claimed self discharge rate.

Of course, with a bigger battery pack, you could get even more service from a charge. If you need a refresher on battery selection, we covered that not long ago. Or you can check out a ridiculously complete battery comparison site if you want to improve your battery selection.

Continue reading “It Keeps on Going and… Arduino Edition”

Android-based Reflow Brings Solder Profiles to Your Lab

[Andy Brown] is a prolific hacker and ends up building a lot of hardware. About a year back, he built a reflow oven controller. The board he designed used a large number of surface mount parts. This made it seem like a chicken or egg first problem. So he designed a new, easy to build, Android based reflow controller. The new version uses just one, easy to solder surface mount part. By putting in a cheap bluetooth module on the controller, he was able to write an app which could control the oven using any bluetooth enabled Android phone or tablet.

The single PCB is divided into the high voltage, mains powered section separated from the low power control electronics with cutout slots to take care of creepage issues. A BTA312-600B triac is used to switch the oven (load) on and off. The triac is controlled by a MOC3020M optically isolated triac driver, which in turn is driven by a micro controller via a transistor. The beefy 12Amp T0220 package triac is expected to get hot when switching the 1300W load, and [Andy] works through the math to show how he arrived at the heat sink selection. To ensure safety, he uses an isolated, fully encased step down transformer to provide power to the low voltage, control section. One of his requirements was to detect the zero cross over of the mains waveform. Using this signal allows him to turn on the triac for specific angle which can be varied by the micro controller depending on how much current the load requires. The rectified, but unfiltered ac signal is fed to the base of a transistor, which switches every time its base-emitter voltage threshold is reached.

For temperature measurement, [Andy] was using a type-k thermocouple and a Maxim MAX31855 thermocouple to digital converter. This part caused him quite some grief due to a bad production batch, and he found that out via the eevblog forum – eventually sorted out by ordering a replacement. Bluetooth functions are handled by the popular, and cheap, HC-06 module, which allows easy, automatic pairing. He prototyped the code on an ATmega328P, and then transferred it to an ATmega8 after optimising and whittling it down to under 7.5kb using the gcc optimiser. In order to make the board stand-alone, he also added a header for a cheap, Nokia 5110 display and a rotary encoder selector with switch. This allows local control without requiring an Android device.

Gerbers (zip file) for the board are available from his blog, and the ATmega code and Android app from his Github repo. The BoM list on his blog makes it easy to order out all the parts. In the hour long video after the break, [Andy] walks you through solder tip selection, tips for soldering SMD parts, the whole assembly process for the board and a demo. He then wraps it up by connecting the board to his oven, and showing it in action. He still needs to polish his PID tuning and algorithm, so add in your tips in the comments below.

Continue reading “Android-based Reflow Brings Solder Profiles to Your Lab”

Temperature, Altitude, Pressure Display

During a recent trip to Bhutan, [electronut] wished for a device that would show the temperature and altitude at the various places he visited in the Kingdom. Back home after his trip, he built this simple Temperature, Altitude and Pressure Display Device using a few off the shelf parts.

Following a brief search, he zeroed in on the BMP 180 sensor which can measure temperature and pressure, and which is available in a break-out board format from many sources. He calculates altitude based on pressure. The main parts are an Arduino Pro Mini clone, a BMP180 sensor and a Nokia 5110 LCD module. A standard 9V battery supplies juice to the device. A push button interface allows him to read the current parameters when pressed, thus conserving battery life.

Standard libraries allow him to interface the LCD and sensor easily to the Arduino. He wrapped it all up by enclosing the hardware in a custom laser cut acrylic box. The result is bigger than he would like it to be, so maybe the next iteration would use a custom PCB and a LiPo battery to shrink it in size. While at it, we think it would be nice to add a RTC and some sort of logging capability to the device so it can store data for future analysis. The schematic, code and enclosure drawing are available via his Github repository.