Monday, April 9, 2012

ApProg430

I would like to win one of the elusive free PCB coupons from Dangerous Prototypes. Finish one, get another! How can you beat that deal? Haven't won yet, but it is only a matter of time.

I have to admit, I was one of the people who requested the opportunity to buy PCBs from the PCB drawer. When I saw Ian's breakdown of first year sales of the Bus Pirate, I felt twinges of guilt because I had not yet purchased. I plunked down my $10 and received two DIY Bus Pirates PCBs. I sent in a Mouser order for the parts (plus extra SMD resistors because they are easy to lose).

All told, the PCBs, components, plus shipping/handling came out to about $50 for the two Bus Pirates. Considering Seeed Studio will sell you one for $27, assembled, programmed, and shipped, this was starting to look like a losing proposition. Did I mention the twinges of guilt driving the purchase?

I soldered up the boards in an evening. This was my first time assembling SMD parts but after watching the HOWTO videos on Dangerous Prototypes, it wasn't so bad. Patience, flux, and desoldering braid.


When I plugged in a USB cable, the PWR LED came on and the computer recognized the FT232 chips. So far so good. Now I needed to program the PIC24 chips but I don't have a PIC programmer. I didn't want buy a PicKit because that would really make for a losing proposition. I saw that Jozef had devised a way to program the devices using a AVR microcontroller. He was kind enough to share source, precompiled binaries, and firmware. Great! But I don't have a AVR programmer. Talk about bootstrapping problems!

I do have a MSP430 Launchpad and I figured I could have the MSP430 emulate the AVR. I modified the firmware code to run on a MSP430G2553. I picked this part because it has a built in UART. You can probably modify the code to run on MSP430s with software UART but I am not going there.

Here is a picture of the programmer hooked up. PGC is on P2.0, PGD on P2.1 (through a 1K resistor), and MCLR on P2.2. The Launchpad runs at 3.6V but this is within the electrical specs for the PIC24 so I figured why not. Fortunately, it works just fine.


I programmed the v4.4 bootloader using ApProg using the Launchpad running the modified firmware. The firmware came next using the ds30 loader GUI. This is much faster than trying to program the combined bootloader/firmware using ApProg. The ApProg binary is available here.

And it works! I have two functional Bus Pirates. No more twinges of guilt. So the final cost for the two Bus Pirates (PCBs, parts, Launchpad) came out to almost exactly what I could have ordered from Seeed Studio. But mine have DIY silkscreened on the boards!

Here is the source code for the MSP430. It has been condensed into a single file. You can create a new project in code composer studio v5, copy and paste into main.c and compile. Some day, perhaps I will take the time to learn how to host files on github. Posted on github.