USB Treiber für ALDI LED Stripes

  • Nabend.


    So eben fertiggestellt, noch ganz warm aus dem Compiler. ;)


    Eines vorweg: Ich verstehe das nicht als schlüsselfertiges Rundumsorglosglücklichpaket. Es ist gedacht als solide Bastelgrundlage für eigene Experimente.


    Zutaten, man nehme:
    - ALDI LED Stripes mit TM1829 Controller Chip.
    - ATmega32U4 Breakout Board+ von Adafruit. Hierzulande erhältlich z.B. bei Watterott.
    - Die AVR USB Bibliothek LUFA.


    Das Datensignal der LED Stripes ist an Pin PB2 / MOSI zu klemmen.
    Da es nix extra gekostet hat spuckt das Programm die Daten auch noch auf dem USART im SPI Modus aus. Man kann also z.B. auch einen WS2801 anklemmen. (CLK von WS2801 an PD5 / XCK1 und Data von WS2801 an PD3 / TXD).


    LUFA auspacken.
    In das Verzeichnis LUFA-130303/Projects/USBtoSerial wechseln und darin die Dateien aus dem Anhang abladen. Dabei die Dateiendung .txt entfernen. Die Forensoftware ist zu blöd das anders zu fressen...
    Kompilieren, wie üblich: make
    AVR programmieren: make up
    Steuerprogramm für den Rechner kompilieren: make host
    Test laufen lassen: ./host_ctrl /dev/ttyU1
    (Name des Device Node anpassen...)


    Das host_ctrl Programm ist unter NetBSD geschrieben. Es sollte halbwegs schmerzfrei unter Linux laufen. Vielleicht sogar unter MäcOS.


    Das "Protokoll" ist primitiv: Der AVR meldet sich als USB CDC Gerät, also als serielle Schnitte / Modem. Der AVR hat intern einen 512 Byte großen Puffer. (a la DMX) Dieser Puffer wird zurückgesetzt und gelöscht, wenn man die Baudrate ändert oder ein serielles "Break" sendet. Danach muss man einfach Blöcke von 512 Byte an den AVR senden. Alle 512 Byte gibt er die Daten an den LED Stripe aus.


    Nachtrag:
    Farbfolge WS2801: rot, grün, blau
    Farbfolge TM1829: blau, rot, grün

  • In Anhang noch eine gepimpte Version des Steuerprogramms für den PeeCee. Ich hab eine primitive HSV-Farbraumkonversion eingebaut und einge Kommandozeilenoptionen hinzugefügt. Damit kann man den ganzen Streifen einfach auf einen HSV-Farbwert setzen. Die HSV-Werte werden in Fixkommadarstellung gegeben. H 0..360 Grad entsprechend 0..36000, S bzw. V 0%..100%. An sonsten läuft eine kleine Farb-Waber-Animation. An der Erzeugung dieser sieht man schön wie man mit einigen verschachtelten Schleifen mit Divisonen und Modulooperationen im HSV-Farbraum Effekte erzeugen kann.