# Paperduino ## Overview It's basically a single-sided Arduino Leonardo, in a small form factor (so __not__ compatible with Arduino shields, but I don't have any so that's no problem), with an Atmega32u4 for only micro-controller. Most informations can be found on the authors website: [[http://txapuzas.blogspot.fr/2009/12/paperduino-leonardo-clon-de-arduino.html|Paperduino]] (it's in Spanish, follow the pictures !). Here's the only picture you really need: {{:avr:m32u4:paperduino:all.png?direct&200|}} ## Board Actually, I wasn't supposed to do __anything__ on this project, except for giving some spare advices on SMD soldering. But this board (and the atmega) ended up quite screwed; so... I _had_ to try to make it work ! I also made some small changes on the original design: * Male breakable headers instead of swiss machine female headers * LEDs colors changed * Use 0805 capacitors instead of 1206 ones since we only had few 1206 * Use 22pf capacitors on the crystal since we only had 18pF in 1206 {{:avr:m32u4:paperduino:dsc_0215.jpg?direct&200|}} {{:avr:m32u4:paperduino:dsc_0217.jpg?direct&200|}} {{:avr:m32u4:paperduino:dsc_0216.jpg?direct&200|}} Once everythin was soldered, I hooked it up to my trusty custom LittleWire and ran avrdude -c usbtiny -p m32u4 I was really surprised, and happy too, because it worked first try ! It's a big success =D ## Bootloader I first started with the Arduino Leonardo bootloader (called Caterina), then moved to vanilla LUFA CDC Bootloader, and right now, it's a modified version (of the LUFA CDC) that behaves like the Halfkay bootloader (on the Teensy2.0) in some ways. * It uses the LUFA CDC USB Vendor/Product IDs * It uses 4kB of Flash * Board power-on directly jumps to User code. * Reset button jumps to Bootloader, with a ~10sec timeout. It then jumps to User code. * RX and TX LEDs are used as follows: * RX is show to show USB traffic * TX blinks to show the board is in bootloader mode I might do another page just for the Bootloader someday, since it might be used on other boards, and release it too. ## Testing I threw in a simple code, from an old Teensy Blink example; it blinks the Onboard LEDs and also enumerates as USB RawHID for usb\_debug. Code can be downloaded here: {{avr:m32u4:paperduino:ppdblink.tar.gz|ppdBlink.tar.gz}} I haven't adapted the Makefile to include the "program" target so it has to be done in shell, with __avrdude__: avrdude -c avr109 -p m32u4 -P /dev/ttyACM0 -U flash:w:Tsy.hex:i