Last Updated on 11. September 2021 by sfambach
Das RTOS SDK is die Espressif eigenen Programmierumgebung für den ESP8266.
Fakten
Auch das Arduino SDK kapselt die Funktionalitäten dieses SDKs. Jetzt könnte man sich fragen warum für ESP8266 spezialisierten Code schreiben indem man direkt das SDK verwendet. Die Anwort ist nicht ganz einfach aber hier ein paar Argumente:
- Das Framework bietet erweiterte Funktionalitäten die in der Arduino IDE nicht gekapselt sind
- Es gibt bestehende Programme für IOT die auf dem Framework basieren
- Es war in der Vergangenheit immer aktueller als die Arduino IDE ( wird nicht weiter entwickelt)
- Fehler werden erst hier beseitigt
- Das Espressif AT Framework basiert auf ihm
Voraussetzungen
- Genügend Speicher auf der Festplatte > 2GB
- Funktionierende Python Umgebung
- Wissen über die Windows Console (CMD)
Anwendungsbereiche
- AT-Firmware
- Hardware nahe Programmierung
- Nutzung der RTOS eigenen BS Funktionen
Installation
Windows
Aktueller Stand funktioniert nicht richtig bei mir!!!
Toolchain installieren
WICHTIG Verwendet keine Pfade mit Leerzeichen, das führt nur zu Problemen.
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/v3.4/get-started/windows-setup.html
Zur Installation der Hilfsprogramme (Toolchain) das Geamtpaket herunterladen unter:
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip
Ich entpacke das Paket nach C:/Devel:
RTOS Framework installieren
Nun wird noch das Programmierframework benötigt, dieses gibt über git:
git clone -b v3.4 --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
IDF pfad setzen. Ich mache das manuell weil ich auch noch die IDF für den ESP32 installiert haben.
set IDF_PATH=C:\Devel\ESP8266_RTOS_SDK
Python Pakete installieren
pip install --user -r $IDF_PATH/requirements.txt
Das sollte es erstmal gewesen sein und wenn später bei der Programmierung keine Fehler auftreten hat es auch vollständig funktioniert ;). Bei mir bemängelt er aktuell noch ein paar Sourcen die ich nicht auflösen kann. Es gibt auch noch die Möglichkeit die Installation in der MINGW Umgebung vorzunehmen, was mir wegen der begrenzten Console aber auf die Nerven ging. Deshalb habe ich mich entschieden das Framework auf einem Raspberry Pi zu installieren habe. Dies ging ohne grössere Komplikationen von sich, siehe das folgede Kapitel.
Linux (auf PI)
Verzeichnis esp unter Benutzer PI erstellen:
cd ~/
mkdir ./esp
cd esp
In diesem Verzeichnis spielt sich alles ab.
Benötigten Pakete installieren
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial
Für 64-bit Linux: https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz Für 32-bit Linux: https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz Für den PI https://https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz
Toolchain installieren
Downloaden der Toolchain mit:
wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz
Toolchain entpacken:
tar -xzf ./xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz
Set path im Editor deiner Wahl die Datei ~/.profile öffnen und die folgende Zeile ans Ende eintragen. (Nur wenns auch nach dem Neustart der Console wieder Vorhanden sein soll)
export PATH="$PATH:$HOME/esp/xtensa-lx106-elf/bin"
Entweder aus- und wieder einloggen oder die Zeile einfach nochmal auf der Console ausführen.
RTOS Framework
Dieses kann mit git geholt werden, die Release v2.2.0.0 ist die letzte die den ESP8266 unterstützt
git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
Pfad ebenfalls in die Datei ~/.profile eintragen (nur wenns auch nach dem Neustart der Console wieder Vorhanden sein soll)
IDF_PATH setzen export IDF_PATH="$HOME/esp/ESP8266_RTOS_SDK"
Python module installieren
python -m pip install --user -r $IDF_PATH/requirements.txt
Wenn pip fehlt:
sudo apt-get install python-pip
Phyton Programmverzeichnis noch dem Pfad hinzufügen:
export PATH="$PATH:/home/pi/.local/bin"
Programmierung
Beispielprogramm kopieren und compilieren:
cp -r $IDF_PATH/examples/get-started/hello_world
cd hello_world
make menuconfig
make
make flash
Mit menuconfig alle Einstellungen vornehmen hier waren es bei mir genau 0. Mit make die Binärdatei erstellen und mit flash die Datei auf den ESP schreiben. Mit dem verwendeten ESP8266 Modul hat da flashen, was unter Windows ohne Probleme möglich ist, leider nicht funktioniert :(.
Probleme
Angaben auf der Espressif Seite stimmen nicht
Die Angaben auf der Espressif Seite sind mit Vorsicht zu verwenden. Manche Angaben stimmen nicht mehr andere sind für einer Windows Umgebung nicht geeignet. Auch sind die Angaben nicht sehr Versionsstabil also immer auf die Version achten.
Sonstiges
Nix.
Fazit
Windows scheint eher nicht unterstützt zu werden zumindest ist es der Horror die Umgebung hier zum Laufen zu bringen. Unter Linux klappt es schnell und einfach, auch passt die Doku besser.
Verwandte Beiträge
- ESP WEB Serial Bibliothek
- ESP32-C3 seeed studio xiao
- ESP32-C3 Super Mini Board
- Preview – LuatOs ESP32-C3 Board
- ESP32 BlueTooth Gamepad
- ESP01 – DHT11 Temperatur und Feuchte Sensor Platinen
- ESP01 Relais Platinen
- ESP8266/32 WiFi Manager
- D1 Mini Shield – Prototyp-Platine
- ESP01 – Relais Platine
Quellen
https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz
https://https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/get-started-devkitc.html
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/v3.4/get-started/windows-setup.html