ESP8266 RTOS SDK

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

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://git-scm.com/downloads

https://docs.espressif.com/projects/esp8266-rtos-sdk/en/v3.4/get-started/windows-setup.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.