Ich habe einen Xiao Esp32c3 mit der Arduino IDE zum Test programmiert und dummerweise einen Counter hochgezählt (mit Ergebnis auf Serial) ohne eine Pause zwischen den Ausgaben vorzusehen. Nun kann ich kein neues Programm auf den Controller flashen. Es kommt nur die lapidare Ausgabe: A fatal error occurred: No serial data received. wenn man das versucht. Im Monitor sehe ich aber den Controller nach einem Reset wie ein Wilder hochzählen. esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 115200 erase_flash führt auch zu keinem Resultat.
Hat dein Board einen "Boot" Taster? Den beim Einstecken gedrückt halten, dann startet nur der Bootloader und nicht dein Counter. Wenn nicht: GPIO9 auf GND ziehen beim Einschalten. Da ist der Taster sonst dran.
:
Bearbeitet durch User
Danke! Die Kombination 8 auf high und 9 auf low hat es gebracht. Die Boot-Taste allein hatte nichts geholfen.
Welches Board nutzt du ? Wenn das: https://eckstein-shop.de/Seeed-Studio-XIAO-ESP32C3-Tiny-MCU-Board-with-Wi-Fi-and-BLE dein Board ist, dann sind doch Tasten für Reset und Boot vorhanden. Und dann funktioniert das Flashen immer mit folgenden Tastendrücken: Reset drücken und festhalten. Boot drücken und festhalten. Reset loslassen. Boot loslassen. Flashen....danach Reset drücken und er läuft.
Habe ich wohl nicht in dieser Reihenfolge versucht (was schwierig bei diesen Fitzel-Tasten ist). Kann ich natürlich mal versuchen, wenn es nochmal Probleme gibt.
Ja, fummelig ist es. Allerdings muss man das bei jedem Flashen so machen. Deshalb spiele ich da immer sofort WLan und OTA drauf. Dann braucht man nix mehr "fummeln" ;)
Ich habe gerade mal versucht, meinen Fehler zu reproduzieren. Das geht tatsächlich. Wenn das Programm mit 115200 Bit/sek einen Zähler in Dauerschleife ausgibt, kann man nicht mehr flashen (weder Arduino IDE 1.8.19 noch PlatformIO und Code). Mit den Mini-Tasten auf dem Board kann man sich nicht helfen. Normal braucht man die ja nicht. Die serielle Schnittstelle erledigt den Upload automatisch. Die oben beschriebene Tastenfolge führt nicht zum Erfolg. Allein die Kombination GPIO 8 auf HIGH und GPIO 9 auf LOW hilft, den ESP32C3 neu zu flashen.
Karl-Heinz V. schrieb: > Mit den Mini-Tasten auf dem Board kann man sich nicht helfen. Ok, das mag tatsächlich bei deinem "eingebauten Problem" nicht helfen. Und ich habe es eben noch mal mit meinem XIAO getestet, der braucht keinen Tastendruck zum Flashen. Meine ESP32-C3 Super Mini reagieren da offensichtlich etwas anders. Das erste Flashen geht nur, wenn ich die Tasten wie oben betätige. Danach geht das Flashen auch ohne jeglichen Tastendruck.
Dieter S. schrieb: > Danach geht das Flashen auch ohne jeglichen Tastendruck. Das ist eine Eigenheit des Arduino-Frameworks für den ESP32C3. In der USB-Serial-Implementation (USBCDC.cpp) ist eingebaut, dass er einen Reset in den Bootloader ausführt wenn entsprechend an den DTR/RTS-Bits gewackelt wird. Lässt sich in deinem Sketch auch mit "Serial.enableReboot(false);" abschalten.
OK...danke für die Info. Das mit den Tasten fällt eh weg, wenn OTA drauf ist.
Εrnst B. schrieb: > Den beim Einstecken gedrückt halten, > dann startet nur der Bootloader und nicht dein Counter. Ich wollte die Dinger schon in die Ecke schmeißen. Eigentlich müsste ich an meinem Projekt weiter arbeiten, aber ich habe im Moment keinen Kopf dafür und da am Freitag die ESP32C3 Super mini angekommen sind, wollte ich die testen. Ging sogar unter Arduino recht gut. Nur, einmal Serial Monitor und schon konnte ich nichts mehr ändern. Mittlerweile kann ich die auch schon flashen. Schön klein. Lohnt sich vielleicht doch, sich in der Zukunft damit zu befassen. Danke für deinen Beitrag. Der hat meine Stimmung wieder auf normales Level angehoben. Aber bis man das richtige Board gefunden hat, dann funktioniert die Led an Pin 8. Wenn du LED_BUILTIN nimmst, macht das Teil alles, nur nicht das was es soll. Die Led geht aber bei Low auf High und umgekehrt. Hier noch der Sketch. Damit sich nicht alle die Zähne ausbeißen müssen.
1 | /* |
2 | Blink |
3 | |
4 | Turns an LED on for one second, then off for one second, repeatedly. |
5 | |
6 | Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO |
7 | it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to |
8 | the correct LED pin independent of which board is used. |
9 | If you want to know what pin the on-board LED is connected to on your Arduino |
10 | model, check the Technical Specs of your board at: |
11 | https://www.arduino.cc/en/Main/Products |
12 | |
13 | modified 8 May 2014 |
14 | by Scott Fitzgerald |
15 | modified 2 Sep 2016 |
16 | by Arturo Guadalupi |
17 | modified 8 Sep 2016 |
18 | by Colby Newman |
19 | |
20 | This example code is in the public domain. |
21 | |
22 | https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink |
23 | */ |
24 | |
25 | /****************************************** |
26 | ******************************************* |
27 | * esp32-c3 super mini = XIAO_ESP32C3 * |
28 | * LED ist an Pin8 angeschlossen * |
29 | *******************************************/ |
30 | |
31 | int LED = 8; |
32 | void setup() { |
33 | pinMode(LED, OUTPUT); |
34 | Serial.begin(9600); |
35 | } |
36 | |
37 | |
38 | void loop() { |
39 | |
40 | digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level) |
41 | Serial.println("Led ist aus!"); |
42 | delay(1000); |
43 | digitalWrite(LED, LOW); |
44 | Serial.println("Led ist an!"); |
45 | delay(1000); |
46 | } |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.