First Prototype Boards for Tiny JTAG Programmer

I placed an order for 10 boards from Seeed Studio on April 15th, and they arrived May 4th.  I didn’t actually get my hands on them until a few days later, as they were sent Registered Mail.  The post office requires a signature, and I know my USPS branch well enough that trying to leave the signed slip for redelivery would be an exercise in frustration, so I had to visit the branch in person when I was able to during business hours.  Total time from ordering to when they first attempted delivery was 15 business days, about what I expected. IMG_6474

I panelized two designs onto one board to save cost.  Normally I wouldn’t have done this at Seeed Studio’s cost of $10 for 10 boards, but I ordered 2mm thick PCBs so the USB board connector would have a better fit, and there’s a $50 setup fee per order for the 2mm boards.  It appears from the mark on the side of all the PCBs that they were 100% electrically tested, not just 50% like I paid for, cool!


I used a box cutter and metal ruler to score the line between the two designs on both sides of the board many times, and with the small board there wasn’t enough leverage to break it by hand.  Rather than keep cutting, I resorted to using two sets of pliers to get enough leverage to break the boards, with some rubber from a bicycle tube between the pliars and the board to protect the board.  They separated easily.


The PCB is much smaller than I had expected it to be, having only the Eagle CAD design on my monitor for reference.  Some of the silkscreen text which seemed fine in the CAD was unreadable or didn’t even show up on the board.

I plugged the bare board into a USB jack and was disappointed to find it was fairly loose, I’d say unacceptably loose.  2mm seems to be the thickest PCB available, at least from Seeed and another house I looked at before ordering.  I remember someone saying that adding some solder to the pads for the USB connector helps, and indeed, after adding a fairly thick layer of solder I’m pretty happy with how it fits in a USB jack.


I soldered up the board, leaving the reset circuit unpopulated as I hadn’t tested that with the handmade prototype and wanted to leave that for later.  With the close spacing and my cheap soldering iron it was a little difficult to solder a few parts, but everything fit.  The short ends on the 2x5 0.1” male header for the JTAG connector were too long, I had to push the housing down to shorten them a bit to fit the connector on the edge of the board.  I’ll have to give a little more room on the next rev of the PCB for that part.

I connected the populated board to my PC to provide power, and connected an SPI programmer to a 2x3 0.1” male header, and slid that on to the 6-pad feature I put on the edge of the board.  I expected to need to solder the connector on, but with slightly bent pins on the header, it made contact with all 6 pads and I was able to program the boot loader and fuses and easily remove the header when done.


The boot loader enumerated with the PC, and I used a modified version of AVRDUDE to load the tinyJTAG firmware onto the board.  I connected it via a ribbon cable to the AVR Butterfly running at 3.3V I’ve been using for testing, and was able to read the signature, program, and read flash on the Butterfly’s ATmega169.  Success!

Programmer Connected to Target

There’s still plenty I learned from this prototype, and changes I want to make before the next revision:

  • Make silkscreen readable for the text that matters, and remove silkscreen for the component labels that don’t have enough room
  • Give a little more clearance on the USB connector for computers with USB jacks that extend out further (e.g. Macbook)
  • Give more clearance on the JTAG connector so the header can be fully seated before soldering
  • Think about how board should be programmed with the boot loader and fuses in production – 2x3 pads on edge seem ok for low volume
  • Add Embedded Creations logo and product rev in silkscreen
  • Consider covering electronics with heat shrink
  • Add LED for USB power?
  • Add LED for Programming Status (using reset line or something else)?
  • Test reset circuit
  • Get Design for Manufacturing (DFM) feedback from a manufacturer, or another expert, and make changes to keep manufacturing costs down and yields high
  • Add option for supplying power to target? (connect Vusb with Vtarg through jumper - would probably want to fuse-protect Vusb in this case)