Itsy bitsy Teensy

I have a cold. In summer. Go figure.

Yesterday I received yet another set of AT90USBXXX based boards for my prototyping and experimenting pleasure, this one called the Teensy. Rather than try to coax my cheap digital camera to take a psudo-macro shot, I’ll just steal the official image instead:

Essentially, the Teensy board (made by Paul) is similar to the AVROpendous board covered previously, except in a smaller DIP form factor reminiscent of the BASIC Stamp of yore. Much better that the latter in fact, as it’s AVR powered and doesn’t have an astronomical price, only an equally teensy US$19 – on par with the AVROpendous’ ~US$20 price tag. At this point, the two boards really only differ in physical form factor (DIP vs. SIL), with the Teensy sporting an onboard LED while the AVROpendous sports a good Wiki knowledgebase.

One area where the Teensy differs is in the bootloader and reset configurations; while the AVROpendous current uses two separate pushbuttons for the HWB and RST functionalities (allowing the user to perform either a full reset, or a reset-to-bootloader), the Teensy uses a single pushbutton. When pressed, the tiny button performs the reset-to-bootloader sequence – idiot proof, but less flexible than the AVROpendous.

The interesting reset system has an intentional side effect – the bootloader can be written to assume a completely reset AVR state. This has led to the Teensy’s proprietary “HalfKay” bootloader, a (as the name implies) half-kilobyte bootloader based on a proprietary communication protocol that runs over a standard HID device class connection. With the AT90USB162 only sporting 16KB of FLASH memory, this extra space savings can make all the difference.

This is one area where the Teensy could open up a bit — it would be nice to see the communication protocol published so that others can create compatible bootloaders and host-side software (Correction: it turns out that while the bootloader source is proprietary, the Teensy website has the protocol fully documented). As it stands however, its a neat trick, one performed using (shudder) raw assembly.

By contrast, the AVROpendous uses either the stock Atmel bootloader, or the LUFA (formerly MyUSB) DFU/CDC class bootloaders. The LUFA bootloaders are much bigger – 4KB a piece – however may be jumped to from the user application (with the processor in any state) and use the LUFA library as a backend, rather than a smaller set of custom USB code.

But all’s not standing still in the AVROpendous camp – there’s a new design in town. The new smaller design uses onboard female connectors in lieu of the original SIL configuration, so that the board may be jumpered into circuits via wires, rather than “plugged in”. The new design seems to be on sale as an alternative to the old, so that both designs will remain for sale and open hardware/software.

The good news about all this is of course the fact that USB AVRs are *finally* making it into the hands of hobbyists. The USBKEY is a great (if expensive) board, but remained (remains?) largely ignored by most it seems, due to the unpopular non-standard sized headers and complexity of the USB bus. With LUFA and one of the growing number of cheap USB board designs, perhaps more developers will be encouraged to drop their USARTS, throw away their USB-to-Serial converters and go with native USB.

 

Comments: 1

Leave a reply »

 
 
 

Hi Dean. Glad you liked the Teensy. Just a quick comment to let you know the communication protocol is open and documented (even with example source code), though admittedly on a page deep within the website. Here is a direct link.

http://www.pjrc.com/teensy/loader_cli.html

Just scroll down to the “HalfKay Communication Protocol” section. It’s very simple, necessarily so to get the entire bootloader into only 512 bytes.

 

Leave a Reply

 
(will not be published)
 
 
Comment
 
 

 

Vital Stats

  • 35 Years Old
  • Australian
  • Lover of embedded systems
  • Firmware engineer
  • Self-Proclaimed Geek

Latest Blog Posts

RSS