FabISP

FabISPkey V1.0 (current revision is V2.1, after V1.1 and V2.0)

This week our assignment was to fabricate a FabISP. I've been playing recently with some tiny USB key designs using V-USB and was inspired to re-work the FabISP design.

The geneology of the FabISP design is interesting in its own right; Neil's FabISP is based on David Mellis's FabISP which is based on Limor's USBTinyISP which is based on Dick Streefland's USBTiny.

FabISPkey

I decided I could make a few tweaks to the design, electrically and mechanically. First, I tried out my mechanical modifications before I dove too deeply into electrical modification. First , I redrew David's schematic in EagleCAD. I replaced the USB connector with a board edge USB connector from the SparkFun library. I also replaced the crystal with one that I had on hand, which ended up being a mistake because I decided to use the one in the Fab inventory, which is smaller.

In general, I made the total footprint a little smaller (as small as possible in 1206 parts) and replaced the mini-USB connector with a board connector. In a second design, I added a level shifter to acomidate programming of low voltage (1.8V) targets.

Some notes: I use a ground pour, because I figure if I'm going to have extra copper on my board, I'd like to know what it's connected to. The pour has 0.020 spacing, so slightly more than one pass with a 0.015 endmill cuts it out. Also, because of the connector, the design requires complete copper removal (-1 contours flag). Also, the board connector is a little wiggily, so, it's sometimes helpful to glue a small (0.010") shim on the underside of the connector.

Version 2.1 FabISPkey

If you'd like to play along at home, you can grab fabbable PNGs above and you can get the design files with a simple git checkout

git clone git://bardagjy.com/fabisp

Since my design is electrically similar to Neil and David's, programming is very similar. Solder the reset jumper (the one closest to the processor), power the board (using a USB port, or USB charger), program it with another programmer (make hex, make fuse, make program), unplug and desolder the jumper.

FabISPlokey

One of the main motivations of the board re-design was to incorperate a level shifter to allow the programming of 1.8V targets. This is a particularly important feature (especially for this class) because it allows the use of a single cell to power designs.

The Lokey dispenses with the 3.3V zeners and adds a 3.3V regulator (in the Fab inventory). The microcontroller now runs on 3.3V, no need for the zeners to make it USB compliant.

Having a 3.3V Vcc is required to use the level shifter I selected, the Texas Instruments TXB0104. The TX0104 is available in a 14 SOIC package (which is easily fabricatable on the Modella), and if you ask nicely, TI will happily sample a few parts to you.

Version 2.1 FabISPkey

This design has not been built yet, nor do I have any 1.8V targets to try it on. Check back in a few days for updates. Nevertheless, if you'd like to try it out yourself, you can grab the PNGs above or from my public git repo (it's in the same project as the Key).