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.

Firmware-Update unter Arch Linux durchführen

Um ein Firmware-Upgrade unter Arch Linux durchzuführen, kann das Werkzeug fwupdmgr genutzt werden. Dazu sollten im ersten Schritt die aktuellen Metadaten bezogen werden:

fwupdmgr refresh

Nachdem dies geschehen ist, können die aktuellen Updates bezogen werden:

fwupdmgr get-updates

Als letzter Schritt steht die Installation der Aktualisierungen über den Befehl:

fwupdmgr update

an. Je nach installierter Aktualisierung kann anschließend ein Neustart notwendig sein.

Command not found: compdef

Nach der Installation von Angular unter macOS erschient im Terminal beim Start folgende Meldung:

/dev/fd/12:18: command not found: compdef

Hintergrund ist das bei der Installation von Angular die Konfigurationsdatei .zshrc der Shell angepasst wurde:

# Load Angular CLI autocompletion.
source <(ng completion script)

Um das Problem zu lösen, kann die betreffende Änderung in der Konfigurationsdatei entfernt werden. Alternativ kann die generelle Autovervollständigung vor dem Laden der Angular-Autovervollständigung aktiviert werden:

# Init command-line completion
autoload -Uz compinit
compinit

Anschließend sollte die entsprechende Meldung nicht mehr auftreten.

Passwörter unter macOS mittels pwgen generieren

Für das Generieren von Passwörtern existieren eine Unzahl an Werkzeugen. Für das Terminal unter macOS kann hier unter anderem pwgen genutzt werden. Dazu muss dieses im ersten Schritt über Homebrew installiert werden:

brew install pwgen

Damit kann das Werkzeug genutzt werden:

pwgen

Wird pwgen ohne weitere Parameter aufgerufen, so werden eine Reihe von kurzen Passwörtern erzeugt. Zielführender ist es eine Reihe von Parametern zu nutzen:

pwgen -n 64 --capitalize --numerals --secure --symbols -1

Damit das Passwort nicht auf der Konsole ausgeben wird, kann es alternativ auch direkt in eine Datei geschrieben werden:

pwgen -n 64 --capitalize --numerals --secure --symbols -1 > password.txt

Die unterschiedlichen Parameter definieren hierbei zunächst die Länge und sorgen anschließend dafür das mindestens ein Großbuchstabe, eine Zahl und ein Sonderzeichen in dem Passwort vorhanden ist. Danach sorgt der Parameter -1 dafür, dass nur ein Passwort ausgegeben wird.

Mainboard-Informationen unter Linux ermitteln

Manchmal ist es notwendig im Terminal unter Linux einige Informationen über das verbaute Mainboard zu ermitteln. Hierfür dient der Befehl:

dmidecode -t 2

Diese liest die entsprechenden Daten auf dem sysfs und zeigt sie an:

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: ASUSTeK COMPUTER INC.
	Product Name: WS C246 DC
	Version: Rev 1.xx
	Serial Number: 190856070000221
	Asset Tag: Default string
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: Default string
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0