Forum: Mikrocontroller und Digitale Elektronik ESP8266-01S mit Micropython


von Haiko (haiko_kurt)


Lesenswert?

Liebe Gemeinde,

ich bin neu hier und hoffe, Ihr könnt mir bei einem Problem mit dem 
ESP8266-01S helfen. Das Teil habe ich von AZ-Delivery erstanden 
inklusive eines USB-Adapters. Wenn ich GPIO0 auf GND lege kann ich auch 
über ESPTOOL auf den Controller zugreifen und z.B. die Flash-ID 
auslesen:

esptool.py v4.5
Serial port /dev/tty.usbserial-1111120
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: 48:55:19:15:00:e6
Uploading stub...
Running stub...
Stub running...
Manufacturer: 5e
Device: 6014
Detected flash size: 1MB
Hard resetting via RTS pin...

Auch das Löschen und Flashen scheint zunächst zu funktionieren. Es 
kommen keine Fehlermeldungen. Wenn ich aber GPIO0 von Masse trenne und 
den Controller resette fängt die blaue LED an zu blinken. Wenn ich mich 
mit screen auf den TTY-Port aufschalte kommen nur kryptische Zeichen 
(sieht so aus, dass die Baud-Rate nicht stimmt, habe es sowohl mit 
115200 als auch mit 74880 ausprobiert).

Hier meine Kommandozeile zum flashen:

esptool --port /dev/usbserial-1111120 write_flash 0x00000 
micropython/esp8266-1m-20230426-v1.20.0.bin

Ich wäre dankbar auf Hinweise, wie ich den kleinen schicken Controller 
zum Laufen bekomme. Vielleicht kennt auch jemand einen Link auf ein 
Kochrezept? Ich habe natürlich selbst schon gesucht, aber nichts 
hilfreiches gefunden.

Herzlichen Dank und viele Grüße

Haiko

von Stefan F. (Gast)


Lesenswert?

Vor kurzen hat schon jemand anderes berichtet, dass dir Firmware nicht 
funktioniert. Beitrag "ESP12-F und Micropython"

Vielleicht magst du dich mit Sebastian zusammen tun. Der kennt dein 
Problem und scheint schon ein Stück weiter zu sein.

von Haiko (haiko_kurt)


Lesenswert?

Okay, ich bin einen Schritt weiter. Wenn man screen benutzt um auf die 
serielle Schnittstelle die USB zuzugreifen, kann auf dem Mac die 
Baudrate  74880 nicht verwendet werden. Das ist aber die Baudrate, auf 
der der ESP8266 zuerst funkt, bevor MicroPython gestartet wird. Startet 
MicroPython richtig, wird auf 115200 umgeschaltet.

Abhilfe schafft miniterm.py aus pyserial. Installieren mit:

pip3 install pyserial

und dann mit

python3 -m serial.tools.miniterm /dev/tty.usbserial-xxx 74880

Wenn man dann die MCU resettet, bekommt man eine Ausgabe:


 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 30756, room 16
tail 4
chksum 0xfd
load 0x3ffe8000, len 1016, room 4
tail 4
chksum 0x52
load 0x3ffe8400, len 1080, room 4
tail 4
chksum 0xa1
csum 0xa1
rf_cal[0] !=0x05,is 0xF0

Also startet offenbar MicroPython gar nicht richtig. Hier hilft dann 
möglicherweise der Tipp von Stefan weiter. Herzlichen Dank!

von Haiko (haiko_kurt)


Lesenswert?

Liebe Gemeinde,

ich habe nun im git-Micropython Forum den entscheidenden Tipp bekommen. 
Das Flashen des ESP8266-01S funktioniert mit:
1
esptool.py --port /dev/usbserial-xxx --baud 460800 write_flash --flash_mode dout --flash_size=detect 0 micropython/esp8266-1m-20230426-v1.20.0.bin

Dabei ist "/dev/usbserial-xxx" Euer Serieller USB-Port.

Vielleicht hilft es auch anderen, die mit dem schicken kleinen Board 
experimentieren.

Viele Grüße

HK

von Haiko (haiko_kurt)


Lesenswert?

Ich habe mal eine kleine Anleitung geschrieben, um einen ESP8266-01S mit 
MicroPython zu flashen:

https://www.haiko-emmel.de/ESP8266-01S/README.html

Vielleicht nutzt sie jemandem. Feedback würde mich freuen.

Herzliche Grüße
HK

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

Haiko schrieb:
> Vielleicht nutzt sie jemandem. Feedback würde mich freuen.

Danke!
Da schnall ich das auch. Find es gut das es noch Leute gibt die sich 
kümmern und nicht herablassend sind!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.