Usblinky: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „== What == '''usblinky''' * is a small usb stick with 4 wires on on end * controls up to 150 addressable RGB lights (for example WS2812B) * can run stand alo…“ |
|||
Zeile 44: | Zeile 44: | ||
===Pitfalls and lessons learned === | ===Pitfalls and lessons learned === | ||
Adafruit trinket | ===Adafruit trinket=== | ||
Adafruit built another bootloader that uses a similar trick than micronucleus. | |||
They speak USB over vUSB but enumerate the device as a usbtiny programmer. | |||
The arduino sees a programmer and progremms the ATTINY85 as a target, when it actually overwrites its own FLASH with the user program. | |||
I liked that nifty approach and used the Trinket bootloader when i started this project. | |||
But then i read that adafruit does not wnt you to use their USB ID in a product that you sell. | |||
I contacted them but got no meaningful reply, only a standardized answer that i should come back once my product launched. | |||
Later on i found out that the bootloader on the trinket is fragile. | |||
Under some special circumstances it can happen that the bootloader falsy triggers and the FLASH on the MCU is damaged and it can not be programmed any more over USB. | |||
That was the point that i took a closer look at the micronucleus bootloader. | |||
This bootloader is significantly smaller (2k versus 3.5k) and the code is much more straight forward than the trinket bootloader. | |||
The drawback is that you need to modify the arduino environment, but there are packages available for that. | |||
When I used the usblinky as a BUTTON for the selfiebooth setup i realized that the pinout is inversed on the trinket. | |||
D+ and D- are switched on the MCU side. | |||
In theory not a big deal, but a lot of libraries that are available for the digispark project (for example the USB keyboard emulation) has this pinout hardcoded and I needed to modify the .cpp files in the Arduino environment to make that work. | |||
Future versions of USBlinky have the pins swapped as on the original digispark design. | |||
== Alternate usecases == | == Alternate usecases == |