Step 12: Install and Run PonyProg 2000 to Test Everything Out

Step 13: Upload DiggX, Modified Firmware for the Digg Button

Now, we're to the very exciting part. Uploading the diggX firmware. You can find the .hex file attached to this step (see below) or download it from a...

The Digg Button from adafruit industries www.adafruit.com is a very simple DIY electronics kit suitable for beginners. It consists of a microprocessor, a 3-digit display, a button and some available i/o pins.

As it comes from adafruit, it's a counter that displays the number of times it's button has been pressed. The open i/o lines can be connected with jumpers (small pieces of wire) to produce a couple of different behaviors.

But, with a simple parallel interface connecting it to a computer, it can be a sturdy platform for experimenting with microprocessor programming.

The site, [www.ladyada.net], which has all the instructions and support forums for adafruit products, has instructions for some simple software hacks based on ponyprog 2000, a program for communicating with the microprocessor. The site also describes how to make a simple parallel port connector to connect the Digg Button to your computer. The description is very straight forward, but it requires soldering the connector to the Digg Button. This is not conducive to hacking your button then displaying your warez.

SO, since I like showing off what I do, I designed a simple clip-on connector that allows me to easily connect and disconnect my Digg Button for hacking. I also created a modded version of the Button firmware, which I'm calling diggX, that can be uploaded using this cable and can itself be hacked using ponyprog 2000.

Here's a video demo that shows the connector in use and describes the firmware hack:

Time Required:

Should be easy to finish this in an hour

Supplies:

(1) Right-angle break-away pin header strip with at least 6 pins spaced at .1" (Jameco #686111 -- this is a 6-position header, you might order several, or get a longer one in case you mess one up)

(1) Several feet of #24 stranded hook-up wire (Jameco #734405. Yellow. This is for a 100' roll which is a little overkill. RadioShack has #22 hook-up wire which would technically work, but will be a little bulkier.)

(6) Connector socket pins (optional. Jameco #496421, these are the cheap ones. You can get pricier versions with different metal, but these seem to work OK)

(1) 8" or so of 1/16" heat shrink tubing (only 3" needed if not using the socket pins. Jameco #419127, black)

(2) Small binder clips (from any office supply, the 3/4" ones are a good size)

The connector socket pins are used at one end of the cable wires so the cable can be easily hooked up to a parallel port or other interface if needed--and, removed later. If you want, you can solder the wires directly--in this case to the D-Sub connector--obviating the need for these. One advantage of using the socket pins is that if you later want to connect the cable to a serial programmer (works with my AVRDragon just fine), you can just move the wires to the serial connector without resoldering. But, it's up to you.

If you are going to connect the cable directly to your computer port, you'll probably need a male connector. On the other hand, that isn't very convenient. You're always having to look around behind your computer to see what's going on with the Button. For a few dollars, you can buy a "straight-through" parallel cable that plugs into your computer port on one side and the interface cable you're building on the other. That's what I use. It has male connectors on both ends. In that case, you should get a "female" D-Sub connector so it'll plug into the cable.

Make sure to use stranded wire, solid wire would be too stiff and difficult to handle (though it *would* technically work)

Tools (some of which you'll probably have if you built the Digg Button to begin with):

Wire cutters

Small pliers (I actually use small jewelry pliers I got from a craft store)

Good point. Thanks for bringing it up! I was trying to not mod the original board, but the connection would definitely be easier if there was a female header to receive the cable pins. Maybe a surface mount one so you wouldn't have to drill holes?

Congratulations! Glad it's working ... and that's the really important part :-) BTW, I upgraded WinAVR recently and discovered that a couple of deprecated items in the code were no longer compiling correctly. And, in the process of debugging the problem, I found some dead code that I took out to leave a little more room for experimentation. SO, I updated the source and reposted as Firmware V1.1 which should work OK.