Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten.
Druckvorgang starten.
Zur Standardansicht zurückkehren.
Firmware
Firmware ist die Bezeichung für Software, die auf eingebetteten Systemen wie
dem ESP32 und anderen Mikroprozessoren läuft, und dort für die Funktionalität
der Hardware verantwortlich ist. Beim OpenBikeSensor ist dies also ein Programm
das wir selbst schreiben, mit dem der ESP32 bespielt wird, und das sich um die
Aufzeichnung der zu messenden Daten, die Anzeige im Display und die ganze
Konfigurationsoberfläche kümmert.
Die Firmware wird, wie alle Softwareteile, unter Open Source Lizenz auf GitHub
entwickelt: https://github.com/openbikesensor/OpenBikeSensorFirmware. Für die
Weiterentwicklung sind alle eingeladen, die sich für
Mikroprozessorprogrammierung interessieren.
Featurewünsche oder Fehlerberichte sammeln wir im Issue
Tracker auf
GitHub.
Installation / Flashen
Ein etwas komplizierter Schritt beim Aufbau des Sensors, den alle Bastler:innen
mindestens einmal mit ihrem neuen Gerät durchlaufen müssen, ist die initiale
Installation der Firmware auf dem ESP32. Dies wird auch als “Flashen” (engl.
to flash) bezeichnet.
Hierfür muss das Mikroprozessor-Board aus dem OpenBikeSensor ausgebaut und mit
einem USB-Kabel an einen Computer angeschlossen werden. Die Anleitungen für das
Übertragen der Firmware auf den Mikroprozessor unterscheidet sich stark nach
Betriebssystem des Computers, daher haben wir sie hier getrennt aufgeführt:
Versionsupgrade
Eine neue Version der Firmware kann direkt über die Bedienoberfläche
eingespielt werden. Hierfür gibt es entsprechende Menüpunkte im Hauptmenü. Ein
Auseinanderbauen des Geräts und der Anschluss an einen Computer sind dafür
nicht mehr nötig.
Bauen und Flashen der Firmware aus dem gihub-Repository
Zunächst VS Code und darin die Erweiterung PlatformIO
installieren.
Danach den gewünschten Stand der OBS-Firmware aus dem github-Repository klonen und das Verzeichnis in VS Code öffnen. Dann mit dem Upload-Befehl (Pfeil nach rechts in der Fußzeile von VS Code) oder per pio run -t upload
in der PlatformIO CLI auf den ESP32 flashen.
1 - Flashen unter Linux
Vorbereitung
Lade das neueste Release-Archiv
der OBS-Firmware von GitHub herunter.
Du benötigst die ZIP-Datei mit dem Namen obs-v9.9.9.9999-initial-flash.zip
(v9.9.9.9999
steht für die Versionsnummer).
Entpacke die Dateien in einem temporären Verzeichnis, sie heißen 0x??????.bin
. Die Zahlen sind die Basisadresse, an die
die Daten geflasht werden sollen.
Installation
Installiere das Programm esptool
, falls es noch nicht installiert ist. Es ist in den
meisten Linux-Distributionen verfügbar.
Debian GNU/Linux, Ubuntu
und davon abgeleitete Distributionen, wie z. B. Linux Mint
Fedora
Alternative Installation
Sollte Deine Linux Distribution dieses Paket nicht enthalten, dann kannst du versuchen es so zu installieren.
- lege ein Verzeichnis an, in dem das Tool installiert werden soll, und wechsle in dieses Verzeichnis
mkdir ~/esptool
cd ~/esptool
- für die Installation gib nacheinander folgende Befehle ein
python3 -m venv venv
. venv/bin/activate
pip install esptool
- nun lass dir die Version anzeigen
- war die Installation erfolgreich, dann wird die Versionsnummer angezeigt (diese kann bei dir abweichend sein)
Gerätenamen herausfinden
Stelle sicher, dass du den Gerätenamen für das USB-Gerät kennst. Sehr wahrscheinlich wird es /dev/ttyUSB0
sein –
dieser Name wird auch im weiteren Beispiel verwendet.
Herausfinden kannst du den Namen mit folgenden Schritten:
- den OpenBikeSensor noch nicht mit dem Computer verbinden
- in einem Terminal eingeben und ausführen
- wenn kein solches USB-Gerät an deinem Computer angeschlossen ist, wird ein Fehler angezeigt, anderenfalls eine Liste
der vorhandenen
/dev/ttyUSB
Geräte, z. B.
/dev/ttyUSB0
/dev/ttyUSB1
- nun den OpenBikeSensor anschließen, einige Sekunden warten und nochmal im Terminal eingeben und ausführen
- nun sollte in der Liste der Geräte ein Eintrag dazugekommen sein, dies ist der Gerätename für deinen OpenBikeSensor
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2 <-- neu hinzugekommen
Flashen
Führe im selben Verzeichnis, in das du die ZIP-Datei entpackt hast, folgenden Befehl aus:
Achtung
Ersetze /dev/ttyUSB0
mit dem Gerätenamen den du im vorherigen Schritt ermittelt hast.esptool \
--chip esp32 \
--port /dev/ttyUSB0 \
--baud 921600 \
--before default_reset \
--after hard_reset \
write_flash -z \
--flash_mode dio \
--flash_freq 40m \
--flash_size detect \
0x1000 0x01000.bin \
0x8000 0x08000.bin \
0xe000 0x0e000.bin \
0x10000 0x10000.bin
Achtung
Hast du die alternative Installationsanleitung verwendet, dann musst du eventuell zuvor noch folgende Schritte ausführen.cd ~/esptool
. venv/bin/activate
Und das Kommando esptool
durch esptool.py
ersetzen.
Achtung
Erscheint eine Fehlermldung (sinngemäß) bash: esptool: command not found
, dann ersetze im obigen Kommando esptool
durch esptool.py
.
Hilft das nicht, dann versuche einen der folgenden Aufrufe.python3 esptool.py ...
python esptool.py ...
python3 /absoluter/pfad/zu/esptool.py ...
(Pfad beim Paketmanager recherchieren)python /absoluter/pfad/zu/esptool.py ...
(s. o.)python3 -m esptool ...
python -m esptool ...
Führt auch keiner dieser Aufrufe zum Erfolg, melde dich im Forum (https://forum.openbikesensor.org), wir finden gemeinsam eine Lösung.
Versionsupdates
Versionsupdates können in weiterer Folge über die Weboberfläche des OpenBikeSensors erfolgen und nicht mehr durch den oben angeführten, doch recht komplizierten Vorgang.
Jetzt ist dein OpenBikeSensor einsatzbereit und du kannst mit der Konfiguration fortfahren!
Bei Problemen
Wenn du keine Schreibberechtigung hast, kannst du den Dateimodus des Geräts ändern (oder das Kommando als root ausführen):
sudo chmod 0x666 /dev/ttyUSB0
Wenn du öfter mit dem ESP32 arbeitest, installiere dir entsprechende udev-Regeln.
Sollte alles fehlschlagen, und du noch Fragen haben oder weitere Infos suchen, findest
du in der Community immer Hilfe.
2 - Flashen unter Windows
So flasht du eine neue Firmware auf deinen ESP32, wenn du einen
Windows-Computer benutzt.
Firmware herunterladen
Lade das neueste
Release-Archiv
der OBS-Firmware von GitHub herunter.
Du benötigst die größere ZIP-Datei mit dem Namen
obs-v9.9.9.9999-initial-flash.zip
. Entpacke die Dateien in einen temporären
Ordner, sie heißen 0x??????.bin
. Die Zahlen sind die Basisadresse, an die die
Daten geflasht werden sollen. Mach dir keine Gedanken darüber, was das bedeutet,
dies wird in den nächsten Schritten Sinn ergeben.
Lade die “Flash Download Tools” für
ESP32 (und einige
verwandte Chips) vom Hersteller ESPRESSIF herunter und extrahieren das Archiv
in einen speziellen temporären Ordner.
Es erfolgt keine Installation, vielmehr wird das Tool direkt aus dem Ordner
heraus gestartet.
Treiber installieren
Du musst wahrscheinlich einen sogenannten USB-to-UART (seriellen) Treiber
installieren, damit Windows mit dem Chip auf dem ESP-Entwicklungsboard
kommunizieren kann. Da es sich um einen generischen Treiber handelt, hast du
diesen möglicherweise bereits schon bei anderen Projekten installiert? Im
Zweifelsfall lade und installiere sicherheitshalber den Treiber von der
Herstellerseite, Silicon Labs. Eventuell kann es sich auch lohnen, auf die
neueste Version zu aktualisieren. Der Treiber ist im Paket für die CP210x-Chips
enthalten. Du findest ihn auf dieser
Seite, er
heißt “CP210x Universal Windows Driver”. Folge den dort gegebenen Anweisungen.
Sollte der Link nicht mehr funktionieren, verwende Google, um eine
aktualisierte Version zu erhalten, aber achte wie gewohnt darauf, dass du auf
einer vertrauenswürdigen Seite landest.
Trenne alle USB-Geräte vom Computer, die du gerade nicht benötigst. Der
Anschluss könnte ansonsten bei der Auswahl des richtigen (zu flashenden)
Gerätes verwechselt werden.
Verbinde nun das ESP32 Board über USB-Kabel. Du kannst das Entwicklungsboard
hierfür aus dem OpenBikeSensor ausbauen, oder nur die Stromzufuhr der Batterie
mit dem Schalter trennen (normal ausschalten) und das USB-Kabel durch die
Öffnung hinter der GPS-Antenne führen und in das eingebauten Board einstecken.
Windows sollte bestätigen, dass ein neues Gerät erkannt wurde. Manche Kabel
funktionieren nicht, wenn dein Gerät nicht erkannt wird, probiere es mit einem
anderen.
Starte die ausführbare Datei flash_download_tool_3.X.X.exe
im Ordner des
Flash Download Tools. Das dauert ein wenig – nur Geduld. Es öffnet zuerst ein
Konsolenfenster und schließlich eine einfache Benutzeroberfläche.
Wähle Entwicklermodus - ESP32 DownloadTool in der Benutzeroberfläche (der
Factory-Modus kann verwendet werden, wenn mehrere ESPs gleichzeitig geflasht
werden sollen – in diesem Fall kann man auch mehrere ESPs gleichzeitig
verbinden).

Eine korrekte Konfiguration der ESP32 Flash Download Tools (klicken zum Vergrößern)
Jetzt musst du dem Tool mitteilen, was geflasht werden soll. Oben im Dialog
gibt es mehrere Zeilen, beginnend mit Kontrollkästchen, einem Textbereich,
einen Knopf mit drei Punkten, einem @
-Zeichen und einem weiteren Textbereich.
Wähle für jede der 4 Dateien, die wir flashen müssen, die drei Punkte aus, die
eine Dateiauswahl ermöglichen, in der du jeweils eine der 4 *.bin
-Dateien der
Firmware auswählst. Die Reihenfolge ist nicht wichtig, aber du musst die
Adresse der Datei in das rechteste Textfeld eingeben. Die Adresse steht jeweils
im Dateinamen, z. B. 0x01000
. Die Kästchen wechselt auf grünen Hintergrund,
was eine positive Plausibilitätsprüfung des Flash-Tools bedeutet.
Aktivieren nun die Kontrollkästchen, die sich vor den soeben vorgenommenen Eingaben befinden.
Alle anderen Werte bleiben auf ihren Standardeinstellungen:
- SPI SPEED: 40MHz
- SPI MODE: DIO (ändert sich gleich automatisch)
- FLASH SIZE: 32Mbit
- SpiAutoSet: nicht ausgewählt
- DoNotChgBin: ausgewählt
Unten siehst du eine Dropdown-Box mit der Beschriftung COM. Hier musst du den
richtigen COM-Port für den Flash-Vorgang auswählen. Wenn du dir nicht sicher
bist, belasse den Standardwert und versuchen einen anderen Wert, wenn der
Vorgang fehlschlägt. Stelle sicher, dass keine anderen Geräte angeschlossen
sind!
Drücke nun Start. Danach solltest du etwa Folgendes sehen: „Flashing in Progress“
Wenn alles richtig läuft, erhältst du einen Fortschrittsbalken mit einer
abschließenden Erfolgsmeldung. Ziehe danach das USB-Kabel ab. Das ESP32 kann
dann in das OpenBikeSensor-Gehäuse eingebaut werden (falls noch nicht
geschehen).
Versionsupdates können in weiterer Folge über die Weboberfläche des
OpenBikeSensors erfolgen und nicht mehr durch den oben angeführten, doch recht
komplizierten Vorgang.
Jetzt ist dein OpenBikeSensor einsatzbereit und du kannst mit der
Konfiguration
fortfahren!
Bei Problemen
Wenn du eine rote Fehlermeldung erhältst, überprüfe ob die USB-Verbindung
korrekt ist und der richtige COM-Port ausgewählt wurde. Wenn alles fehlschlägt,
und du hast Fragen oder weitere Infos suchst, findest du in der Community immer Hilfe.
3 - Flashen unter macOS
Vorbereitung
Lade das neueste
Release-Archiv
der OBS-Firmware von GitHub herunter.
Du benötigst die größere ZIP-Datei mit dem Namen
obs-v9.9.9.9999-initial-flash.zip
. Entpacke die Dateien in einen temporären
Ordner, sie heißen 0x??????.bin
. Die Zahlen sind die Basisadresse, an die die
Daten geflasht werden sollen.
Installiere das Programm esptool
, falls es noch nicht installiert ist. Über
Homebrew kannst du es so bekommen:
Stelle sicher, dass du den Gerätenamen für das USB-Gerät kennst. Dies ist
normalerweise /dev/tty.usbserial-0001
– dies wird auch im Beispiel unten
angenommen. Auf macOS kannst du deine aktuellen USB-Geräte mit ioreg -p IOUSB -w0 -l
auflisten. Suche im Zweifelsfall nach einem USB-zu-UART-USB-Gerät.
Flashen
Führe im selben Verzeichnis, in das du die ZIP-Datei entpackt hast, folgenden Befehl aus:
esptool.py \
--chip esp32 \
--port /dev/ttyUSB0 \
--baud 921600 \
--before default_reset \
--after hard_reset \
write_flash -z \
--flash_mode dio \
--flash_freq 40m \
--flash_size detect \
0x1000 0x01000.bin \
0x8000 0x08000.bin \
0xe000 0x0e000.bin \
0x10000 0x10000.bin
Bei Problemen
Wenn du keine Schreibberechtigung hast, kannst du den Dateimodus des Geräts
ändern (oder das Kommando als root ausführen):
sudo chmod 0x777 /dev/ttyUSB0
Sollte alles fehlschlagen, und du noch Fragen haben oder weitere Infos suchen, findest
du in der Community immer Hilfe.