micro-wire
This is an attempt at the smallest possible USB compliant device with V-USB. It uses an ATtiny10
to control a single WS2812 LED via USB.
The source started out as an amalganation of micronucleus and littlewire. All excess functionality was cut away.
Update 2014-01-07:
- It actually works on a ATtiny 10 now, yay! It still suffers from AVR-GCCs inability to generate proper 16 bit STS/LDS. Ticket to Atmel was submitted, let's see if they fix it.
Update 2014-03-19:
- I published a more detailed write-up of the project here.
- Custom PCB design is finished and ordered.
Features
- Enumeration.
- Only SETUP-request can be received.
- Responses are limited to strings from flash memory or zero sized replies.
- All SETUP packets that are not system request are forwarded to a WS2812 RGB LED on PB0.
Memory usage
- 1020 bytes Flash - Now down to 988 bytes with STS/LDS workaround.
- Leaves 36 bytes of flash for addtional functionality!
- SRAM:
- 28 bytes static variables
- 2 bytes return stack
- 2 bytes free
- Uses only regs R16-R31
License
This design is open source hardware shared under GPL V3.
Parts of this design are derived from http://www.littlewire.cc and V-USB.
Please honour the license by publishing the design files of derived designs and attributing the original work by linking back to the original repository.
Test set up