Debounce Code – One Post To Rule Them All

Last month we asked you to send in your debounce code. You didn’t disappoint and it’s time to share the code received. There were some guideline for sending in code so if you don’t see yours here, it probably didn’t follow the rules, sorry. We also tried to weed out code that using delay loops for debounce. These tend to be a poor way to handle inputs because they monopolize the processor.

We wanted to add upvote/downvote buttons to each set of code to give some idea of a group consensus on code quality but there’s no good system available for multiple up/down vote widgets on one wordpress page. This results in a huge code dump for any one person to go through. If you’ve got any ideas on how to better organize this let us know: debounce@hackaday.com.

We make no guarantees that this code is safe to use, or that it even works. Test it carefully before using for important tasks.

Join us after the break for a whirlwind of code examples.

Continue reading “Debounce Code – One Post To Rule Them All” →

Android On IPhone: New Treats

It seems that the iPhone 2g and 3g are the newest phones to get Android 2.2, codenamed Froyo. The process for installing Froyo if you have a jailbroken device seems to get even easier every time, with this revision being as simple as adding a repository, downloading Froyo, and pressing go. Follow the link for a wonderful step by step guide, complete with screenshots to take out all of the guess work. Android on iPhone sure has come a long way since the first time we covered it.

[via reddit]

AVR Controlled RGB LED Matrix Plays Tetris

[Stan] built this LED matrix using a 16×16 grid of RGB LEDs. He built the hardware and wrote some subroutines to randomize the colors. He’s not using PWM because frame buffering is not feasible for the 1k SRAM limit of the ATmega168 he used. Instead, shift registers drive the lights which can be mixed to achieve eight different colors (including off for black) reducing the framebuffer size to just 96 bytes. After he got done with the build he realized this is sized well for a game of Tetris. We’ve seen AVR tetris, PIC Tetris, and Tetris using composite video but it’s always a pleasure to see a new display build.

After the break we’ve embedded [Stan’s] demo video, several pictures, and a schematic. He’s using many of the same principles outlined in our How to Design an LED matrix tutorial.

Continue reading “AVR Controlled RGB LED Matrix Plays Tetris” →

Home Automation Without Pulling Wires

Here’s a bit of simple home automation using hacks with which we’re become pretty familiar. [Mrx23] combined OpenWRT, a microcontroller, and a set of RF controlled outlet switches to add automation to his plug-in devices. An RF remote that controls the switched outlets has been connected to an Arduino. The router communicates with the Arduino via a serial connection. And the router is controlled by a web interface which means you can use a smartphone or other web device to control the outlets.

The best thing about this system is the power that the router wields. Since it has an underlying Linux kernel you have the option of setting CRON jobs to turn lighting on and off, and group settings can be established to set up a room’s lighting level for watching movies, hosting guests, etc. Combine this with the fact that OpenWRT can use port forwarding for Internet control and the possibilities really start to open up.

[Thanks Arpad]

Machine Your Own Ring Light

[Alan] acquired a stereo microscope from eBay, and decided to save some more money by designing, machining, and assembling his own arc reactor ring light to go along. After finding an LED driver board sitting around as well as ordering some surface mount LEDs, he set about using a lathe to cut away a block of lexan, making sure to include slots for the lights as well as the microscope mount point. Follow the link to see the detailed build photos, as well as some comparison shots with and without the ring light.

A month or two earlier though, and [Alan] would have had a fantastic start to an Iron Man costume.

Swapping Speedometer Needle For LEDs

[Ah2002] didn’t like the shaky needle in his car’s speedometer so he replaced it with a ring of LEDs. The old speedometer had a cable which rotated along with the gearbox for mechanical speed measurement. By connecting the stepper motor from a printer instead of this cable, a voltage is generated that fluctuates with the speed of the car. The fluctuation is linear so a given voltage measurement can be directly associated with one particular speed. By using a trimpot to calibrate the input voltage, [Ah2002] connected the signal to an LM3914 dot/bar display driver. These can be chained together, lighting a string of outputs based on the single voltage input. The result is the board seen above, which was covered with a printed paper graph in the final assembly.

Judging from the video after the break, we’d bet there was some distracted driving during the calibration process. The driver appears to be holding the video recorder, and since a cellphone GPS was used during calibration we wonder if [Ah2002] was adjusting the trimpot, looking at the GPS, and driving all at once. It’s a fairly awesome hack, but do be careful when you’re working on something like this.

Continue reading “Swapping Speedometer Needle For LEDs” →

Build A Confetti Cannon For Your Next Party

[Scott] built a confetti canon to spice up the party. It’s pneumatic and re-purposes a fire extinguisher as the air tank. He had a refillable extinguisher that used water instead of chemical retardant. After emptying the water and ensuring all of the pressure had been release he swapped the hose and nozzle for a sprinkler solenoid valve. Securing the extinguisher’s actuator lever with a pipe clamp holds the internal valve open, leaving the solenoid to control the pressure release. This way the canon can be fired electronically, or manually.

This type of solenoid valve is a popular choice with pneumatic canons. We suppose you could even adapt this for use as a T-shirt cannon.

[Thanks BoBeR182]