MicroPython REPL Timeout auf TTGO/ESP32

Danke @Thias! Liegt vermutlich nicht an rshell, sondern an der firmware! Mit der firmware oben ESP32-SPIRAM-IDF3-20191220-v1.12-Annapurna-0.1.0.bin geht kein Hochladen, weder über rshell noch über make install-sketch. Wenn ich dagegen die “alte” firmware esp32spiram-idf3-20191220-v1.12.bin verwende geht es!

/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware> cd /pyboard/
/pyboard> ls
boot.py     main.py     settings.py

Mit der Anapurna-Firmware

root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make install-sketch
Device port: usb => /dev/ttyS6
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ...
Setting time ... Feb 24, 2020 15:19:36
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 2000
timed out or error in transfer to remote
timed out or error in transfer to remote
timed out or error in transfer to remote
2 Likes

Schade! Keine Ahnung, was an unserem Build in dieser Hinsicht krumm sein könnte. Vielen Dank fürs Testen erst einmal!

Ich habe nochmal ein Build vom MicroPython HEAD erzeugt [1].

[1] ESP32-SPIRAM-IDF3-20200224-v1.12-b1699042-Annapurna-0.1.0.bin

Ne, geht immer noch nicht

root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make install-sketch
Device port: usb => /dev/ttyS6
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL ....................Unable to connect to REPL
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware#

Das ging ja vorhin schonmal besser. Da kam die Verbindung zur REPL ordnungsgemäß zustande und dann ging es nicht weiter beim Dateitransfer.

Wir lernen daraus: MicroPython HEAD ist u.U. zu experimentell und wenn @poesel’s Hinweis oben stimmt, wird es mit dem nächsten Build (dann wieder v1.12-stable) hoffentlich klappen.

Hi Clemens,

hier noch gschwind ein neuer Build: ESP32-GENERIC-SPIRAM-v1.12-dirty-Annapurna-0.2.0.bin.

Viele Grüße,
Andreas.

Leider wieder wie oben

root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make sketch-and-run
Device port: usb => /dev/ttyS6
Using buffer-size of 2048
Connecting to /dev/ttyS6 (buffer-size 2048)...
Trying to connect to REPL ....................Unable to connect to REPL
Unable to connect to REPL

No MicroPython boards connected - use the connect command to add one

Unable to find board ''

Schade! Bevor wir hier weiter rumstöpseln: Ich brauche dann doch wohl erstmal entsprechende Hardware, damit wir aus dem Blindflug rauskommen. Vielleicht kann sich auch @poesel noch einmal daran versuchen.

Ein paar weitere Nachforschungen haben ergeben:

Wir steuern zwar nicht UART1 an, sondern UART0

– aber wer weiß. Daher lassen wir das einstweilen mal.

Gerade erneut auf dieses Problem gefallen: mit rshell 0.0.31 ist es, ähm… besser geworden.


EDIT:

  • host → mpy device: funktioniert problemlos,
  • mpy device → host: terminiert mit “EOF missing”, aber file wird komplett angelegt; man kann mit buffersize noch tweaken
  • rsync: tbd
1 Like

Merci.

In der aktuellsten Version bei GitHub - dhylands/rshell: Remote Shell for MicroPython kann ich die Zeichenkette "EOF missing" nirgends entdecken, auch nicht zum Stand der Version 0.0.31. Hast Du eine Idee, wo die herkommt?

Das war aus dem Gedächtnis zitiert; tatsächliche Ausgabe siehe unten.

Der rshell-Befehl (rshell 0.0.31 ohne buffersize-Angabe, somit default buffersize=32)

cp /flash/settings.py .

führt zum Fehler

  dst_file.write(binascii.unhexlify(write_buf[0:read_size]))
binascii.Error: Non-hexadecimal digit found

, während der gleiche Befehl, aber aufgerufen aus rshell mit --buffer-size 16384 zu dem EOF-Problem führt:

  raise PyboardError('timeout waiting for first EOF reception')
rshell.pyboard.PyboardError: timeout waiting for first EOF reception

(Die buffersize war hier so gewählt, daß die settings.py mit knapp 11kB auf jeden Fall paßt.)

1 Like

Danke. Das Problem ist scheinbar nicht ganz unbekannt.

Dave Hylands, der Autor von rshell, meinte dazu vor zwei Jahren:

I looked at this exact issue back in March (on a private email thread) and the problem appears to stem from a bug in the PyCom firmware.

Unable to perform file transfert from pyboard · Issue #132 · dhylands/rshell · GitHub

1 Like

So wiederum funktioniert es aber, trotz der Fehlermeldung? Daraus schließe ich, dass dieser Fehler erst beim Teardown der Verbindung entsteht?

Ich frage deshalb, um eine etwaige Meldung an Dave Hylands möglichst präzise formulieren zu können, bzw. um ggf. selbst nocheinmal im Code nachsehen zu können.

1 Like

Ja, trotz Fehlermeldung wird ein lesbares file erzeugt, offenbar gibt es irgendein guard timer (oder spätestens den scheduler?), was file flush+write forced - oder so.
Ich werde dies weiterverfolgen, es klappt ja mit größerer buffersize (aber rsync wird spannend), aber zunächst ist eine andere ESP+nRF24 -Baustelle zu bearbeiten. ;)

1 Like

Hi,

ich bin irgenwie recht neu hier (gerade ganz frisch meine Emailaddresse verifiziert) und hatte versucht im Schnelldurchlauf die Terkin toolchain zu installieren, möglicht ohne viel zu lesen und dafür mehr Copy+Paste zu verwenden. Bin bis hier hin gekommen. Leider ist make install nicht ordentlich returned; bei der boot.py gings nicht weiter und seit dem bekomme ich gar keine REPL mehr auf dem Heltec ESP32 V3(Heltec WiFi LoRa 32 - #3 by einsiedlerkrebs).

Device port: usb => /dev/ttyUSB0
Using buffer-size of 2048
Connecting to /dev/ttyUSB0 (buffer-size 2048)...
Trying to connect to REPL ....................Unable to connect to REPL
Unable to copy '/home/rp/repositories/github/terkin-datalogger/src/boot.py' to '/pyboard'
Unable to copy '/home/rp/repositories/github/terkin-datalogger/src/main.py' to '/pyboard'
Unable to copy '/home/rp/repositories/github/terkin-datalogger/src/settings.py' to '/pyboard'

Das mit rshell .26 und .31.

Erstmal würde ich gerne wissen ob das hier der richtige Thread ist weil es wenn ich das richtig sehe bei dem dort Kann ich auch das Heltec "WiFi Kit 32" in der neuen Version V3 verwenden? - #19 by Beegood_2000 um eine Arduino Software handelt, wah?!

Und Grüße in die Runde!!!

Hi!

Oha, welcome back! MicroPython auf einem aktuellen ESP32-S3 / Xtensa LX7 – und das auch noch mit Terkin? Spannend! Hast Du denn die allerneueste MicroPython Version aufgespielt [1]?

Ich habe leider keine Praxiserfahrung mit dem Gerät, aber natürlich wäre es toll, wenn Terkin darauf zukünftig gut laufen könnte [2].

Was aktuell im Detail gerade bei Dir klemmt, kann ich von Ferne schlecht beurteilen, ich bin aber gerne dabei, gemeinsam auf Fehlersuche zu gehen.

Viele Grüße!


  1. Das ist derzeit wohl MicroPython 1.19, stimmts? ↩︎

  2. Genau wie auf den Nachfolgern ESP32-C3 and ESP32-C6, dann mit RISC-V statt Tensilica/Xtensa. ↩︎

genau. GENERIC_S3-20220618-v1.19.1.bin via MicroPython - Python for microcontrollers

1 Like

Ja, da geht es um die HaniMandl-Arduino-Software und da ist es auch der Heltec Wifi V3 (ohne LoRa) während du den Heltec LoRa verwenden möchtest.

Ah ohne Lora. Check. Danke!