# 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: Paperduino (it's in Spanish, follow the pictures !).
Here's the only picture you really need:
## 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
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: 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