WLED auf einen ESP8622 flashen

Seit einigen Jahren existieren LED-Strips mit einzeln adressierbaren LEDs. Diese können für unterschiedlichste Projekte genutzt werden und z.B. über einen Arduino angesteuert werden. Auch über einen ESP8622 kann eine solche Ansteuerung vorgenommen werden. Wer die nicht von Hand tun möchte und mehr eine Lösung aus einem Guss benötigt, der sollte sich WLED ansehen.

Der ESP8266 auf einem Entwicklungsboard

Bei WLED handelt es sich um ein Open-Source-Projekt, welches speziell für die Steuerung von adressierbaren LED-Streifen entwickelt wurde. Es ermöglicht LED-Streifen einfach zu konfigurieren und zu steuern, um Lichteffekte zu erzeugen. WLED kann auf hierbei auf dem ESP8266 und ESP32 installiert werden.

Um WLED auf einem ESP8266 zu installieren, muss im ersten Schritt das esptool installiert werden (in diesem Fall mittels Homebrew unter macOS):

brew install esptool

Nachdem das entsprechende WLED-Binary heruntergeladen wurde, kann mit dem Flash-Vorgang begonnen werden:

esptool.py write_flash 0x0 ./WLED_0.15.0-b4_ESP8266.bin 
esptool.py v4.7.0
Found 3 serial ports
Serial port /dev/cu.wlan-debug
Connecting......................................
/dev/cu.wlan-debug failed to connect: Failed to connect to Espressif device: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
Serial port /dev/cu.usbserial-21420
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 60:01:94:2d:8b:e7
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x000d9fff...
Compressed 890480 bytes to 641849...
Wrote 890480 bytes (641849 compressed) at 0x00000000 in 62.1 seconds (effective 114.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Ist der Flashvorgang erfolgreich vonstattengegangen, so startet die Firmware und öffnet einen WLAN-AP mit dem Namen WLED-AP. Über das initiale Passwort wled1234 kann nun die Konfiguration vorgenommen werden.

FRITZ!Box auf Werkszustand zurücksetzen

Wenn eine FRITZ!Box auf die Werkseinstellungen zurückgesetzt werden soll, so funktioniert dies über unterschiedliche Wege. So kann ein spezieller Code über ein angeschlossenes Telefon (sehr anachronistisch) eingegeben werden oder die FRITZ!Box über die Weboberfläche zurückgesetzt werden. Daneben gibt es noch eine Notfall-IP mit der die Weboberfläche unter Umständen auch dann noch erreicht werden kann, wenn die FRITZ!Box kaputt konfiguriert wurde. Hilft dies alles nichts mehr, gibt es noch das Wiederherstellungsprogramm vom Hersteller AVM.

Das Wiederherstellungsprogramm für die FRITZ!Box

Diese kann unter ftp.avm.de/fritzbox/ bezogen werden. Wichtig ist hierbei, dass das entsprechende Wiederherstellungsprogramm für das eigene Modell gewählt wird. Das Tool selbst ist leider nur unter Windows lauffähig. Hier sollten sämtliche Netzwerkverbindung wie WLAN deaktiviert werden, in dem Sinne das die Verbindung zu bestehenden WLAN-Verbindungen getrennt wird, und das Tool anschließend mit administrativen Rechten gestartet werden. Anschließend führt ein der Assistent durch den Vorgang und teilt einem mit wann die FRITZ!Box angeschlossen werden muss. Ist die Suche nach der FRITZ!Box innerhalb des Vorganges erfolgreich, wird die entsprechende Firmware neu auf das Gerät geflasht. Damit ist die FRITZ!Box auf die Werkeinstellungen zurückgesetzt.

Image unter Mac OS X auf eine SD Karte spielen

Möchte man unter Mac OS X eine Imagedatei auf eine SD-Karte zu spielen, benötigt man „dd“ und „diskutil“. Um her­aus­zu­fin­den, wel­ches Volume geflasht wer­den muss, kann man sich auf dem Ter­mi­nal unter Mac OS X mit­tels „df -h“ anschauen wel­ches Gerät beim Anstecken der SD-Karte dazu­kommt. Eine andere Mög­lich­keit ist es die Karte über den Namen zu iden­ti­fi­zie­ren, wel­cher bei neuen Kar­ten meist „NO NAME“ oder „Untit­led“ sein sollte. Wenn das pas­sende Gerät iden­ti­fi­ziert wurde, sollte die gemoun­tete Par­tion mittels:

diskutil unmount /dev/disk2s1

wie­der frei­ge­ge­ben wer­den. Nun wech­selt man im Ter­mi­nal in den Ord­ner in wel­chem die Image­da­tei liegt und gibt dabei fol­gen­des ein:

sudo dd bs=1m if=filename.img of=/dev/rdisk2

Zu beach­ten ist dabei das aus „disk2s1“ -> „rdisk2“ wird, womit das Gerät direkt ange­spro­chen wird. Theo­re­tisch würde auch „disk2“ funk­tio­nie­ren, aller­dings geht die Über­tra­gungs­ge­schwin­digk­eit hier­bei dras­tisch in den Kel­ler. Nach dem Flas­hen der Karte wird das Gerät mittels:

diskutil eject /dev/rdisk2

aus­ge­wor­fen und kann nun für den gewünschten Zweck genutzt werden.

Motorola Milestone unter Windows flashen

Man nehme ein Motorola Milestone mit einem Bootloader Fehler, welches nicht mehr bootet. Im ersten Schritt sollte man sich die USB Treiber von Motorola downloaden und installieren. Danach sollte sich dann RSDLite (oder hier) installieren und danach als Administrator ausführen. Danach kann das Gerät angesteckt werden.

Nun noch das passende Image (oder hier) herunterladen und danach kann man dieses in RSD Lite angeben und auf Start drücken. Danach heißt es warten bis das Tool fertig ist (das Gerät sollte dabei gegen Ende des Prozesses neustarten und das System booten). Wichtig ist dabei, das man während des Vorganges die Finger vom Gerät lässt und nur mit einem vollen Akku flasht.

Weitere Informationen gibt es unter:
http://forum.xda-developers.com/showthread.php?t=1348587
http://and-developers.com/sbf:milestone
http://www.androidpit.de/de/android/wiki/view/Motorola_Milestone_Flashen

Flashen des Freerunners

Die Entwicklung der Openmoko-Umgebung hört nicht einfach mit dem Erscheinen des Gerätes auf, wie es bei anderen Geräten leider der Fall ist. Das System wird ständig weiterentwickelt. Openmoko bringt täglich neue Versionen des Root Dateisystems, des Kernels und des U-Boot Bootloaders heraus. Damit man diese neuen in sein Freerunner bekommt, muss man das ganze flashen. Im Gegensatz zu anderen Geräten ist das Umwandeln des Freerunners in einen modischen Türstopper fast ein Ding der Unmöglichkeit. Also keine Angst beim flashen :)

Zum Flashen benötigt man erst einmal sein Freerunner sowie das mitgelieferte USB-Kabel, mit deren Hilfe man das Freerunner mit dem PC verbindet. Zum Verbinden muss man den U-Boot aktivieren. Dies erreicht man indem man beim Einschalten des Freerunners die AUX Taste (befindet sich links oben) gedrückt hält. Danach kann man den Freerunner mit dem USB Kabel verbinden.

Als nächstes benötigt man dann ein Image zum flashen. Dieses Image findet man unter http://downloads.openmoko.org/releases/Freerunner/. Eine Übersicht der verfügbaren Images ist unter http://www.neo1973-germany.de/wiki/FirmwareImages zu finden.

Die Anwendung um das Freerunner zu flashen kann unter http://downloads.openmoko.org/releases/Freerunner/dfu-util bezogen werden. Oder einfach für die Kommandozeile:

wget http://downloads.openmoko.org/releases/Freerunner/dfu-util

Für andere Systeme als x86 muss man die Anwendungen selber kompilieren. Weitere Informationen dazu unter: http://wiki.openmoko.org/wiki/Dfu-util.

Um das Freerunner dann mit dem heruntergeladenen Image zu flashen gibt man folgendes auf der Kommandozeile ein:

./dfu-util -a (Partionsname) -R -D (Name des Images)

Auf den Imageseiten gibt es zwei Dateien zum downloaden. Eine Datei mit der Endung .bin und eine Datei mit der Endung .jffs2. Bei der Datei mit der Endung .bin handelt es sich um den Kernel, bei der Datei mit der Endung .jffs2 handelt es sich um das Rootdateisystem. Um nun den Kernel und das Rootdateisystem zu flashen muss in der Console (auf dem PC^^) folgendes eingegeben werden:

./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin
./dfu-util -a rootfs -R -D Openmoko-Freerunner-20080424-om-gta02.rootfs.jffs2

Mit ersten Anweisung wird der Kernel geflasht und mit der zweiten das Rootdateisystem. Nicht wundern das ganze kann einen Moment dauern bis es fertig ist. Wenn das ganze Erfolgreich ausgeführt wurde steht in Anschluss auf der Konsole:

status(0) = No error condition is present
Done!

Sollte dfu-util das Neo nicht finden so sollte man noch den Parameter -d 0x1457:0x5119 ranhängen so das das ganze dann so aussieht:

./dfu-util -a kernel -R -D -d 0x1457:0x5119 uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin
./dfu-util -a rootfs -R -D -d 0x1457:0x5119 Openmoko-Freerunner-20080424-om-gta02.rootfs.jffs2

Weitere Informationen gibt es unter:
http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunner
http://wiki.openmoko.org/wiki/Flashing_Openmoko.