China Wemos D1 v3.0 lässt sich nicht flashen

Moin, heute kam mein Wemos D1 mini v3.0 aus China an. Leider bekomme ich es nicht hin das Ding zu beschreiben. Die IDE wirft mir diese Fehlermeldung:

esptool.py v2.7
Serial port COM4
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a8:48:fa:cd:42:4a
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Manufacturer: d8
Device: 4016
Detected flash size: 4MB
Hard resetting via RTS pin...
esptool.py v2.7
Serial port COM4
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a8:48:fa:cd:42:4a
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 261168 bytes to 190752...
Writing at 0x00008000... (25 %)Traceback (most recent call last):
  File "C:\Users\Daniel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0/tools/upload.py", line 25, in <module>
    esptool.main(fakeargs)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 2889, in main
    operation_func(esp, args)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 2328, in write_flash
    esp.flash_defl_block(block, seq, timeout=DEFAULT_TIMEOUT * ratio * 2)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 104, in inner
    return func(*args, **kwargs)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 672, in flash_defl_block
    self.ESP_FLASH_DEFL_DATA, struct.pack('<IIII', len(data), seq, 0, 0) + data, self.checksum(data), timeout=timeout)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 369, in check_command
    val, data = self.command(op, data, chk, timeout=timeout)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 347, in command
    p = self.read()
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 292, in read
    return next(self._slip_reader)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 1999, in slip_reader
    raise FatalError("Timed out waiting for packet %s" % waiting_for)
esptool.FatalError: Timed out waiting for packet header
esptool.FatalError: Timed out waiting for packet header

Im Seriellen Monitor erscheint auf Baud 74880:

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

ets_main.c 

bzw. folgendes wenn ich den Pin D3 auf GND setze:

 ets Jan  8 2013,rst cause:2, boot mode:(1,7)

Kennt sich irgendjemand damit aus? Danke im Vorraus!

Nachtrag: Hatte zwei bestellt und es stellt sich heraus, dass der zweite sich ohne Probleme flashen lässt. Will den ersten aber nicht gleich wegschmeißen, gibt es vielleicht irgendein tool um die Firmware neu zu flashen oder ähnliches?

Versuche es mal über "Werkzeuge - Erase Flash - All Flash Contents"

Gleicher Fehler.

esptool.py v2.7
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a8:48:fa:cd:42:4a
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Traceback (most recent call last):
  File "C:\Users\Daniel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0/tools/upload.py", line 25, in <module>
    esptool.main(fakeargs)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 2889, in main
    operation_func(esp, args)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 2468, in erase_flash
    esp.erase_flash()
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 104, in inner
    return func(*args, **kwargs)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 715, in erase_flash
    timeout=CHIP_ERASE_TIMEOUT)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 369, in check_command
    val, data = self.command(op, data, chk, timeout=timeout)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 347, in command
    p = self.read()
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 292, in read
    return next(self._slip_reader)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 1999, in slip_reader
    raise FatalError("Timed out waiting for packet %s" % waiting_for)
esptool.FatalError: Timed out waiting for packet header
esptool.FatalError: Timed out waiting for packet header

Du könntest testweise ESPEasy probieren.

Kein Erfolg.

Kannst Du mal ganz scharfe Bilder machen; So nah wie möglich, damit man gut alle Lötstellen auf dem Board erkennt?
Wenn ich #4 interpretiere, geht das lesen aber das schreiben nicht.
Sowas in der Art hatten wir mal vor ganz langer Zeit mit einem Uno oder MEGA mit nem Zinnspritzer....

Klar, mache ich wenn es draußen hell wird.





Fotos haben leider nicht die beste Qualität aber selbst mit bloßem Auge erkenne ich keinen Zinnspritzer.

Kann es denn sein, dass das Teil beim Löten irgendwie zu heiß geworden ist oder so? Hatte vorher eine WS2812 und ein OLED angelötet ohne Pin Header. Oder habe ich da etwas falsch verdrahtet, ich habe nämlich erst gelötet und dann versucht das Teil zu beschreiben, deswegen weiß ich nicht ob es schon vorher kaputt war.

Ich denke mal falsch verdrahtet habe ich nichts, hatte es folgendermaßen verbunden:

WS2812 (ohne b!)
5V - 5V
GND - GND
DIN - D4

OLED
VIN - 3V3
SCL - D1
SDA - D2
GND - GND

Mir ist aufgefallen, dass die WS2812 dauerhaft Weiß geleuchtet hat, als ich den Wemos per USB angeschlossen habe. Weiß nicht ob das normal ist.

Wenn nichts geht: Der Shop ist eigentlich ganz ok. Einfach schreiben, dass sich einer nicht flashen lässt, Screenshot schicken und du bekommst normalerweise dein Geld retour oder sie legen dir einen bei der nächsten Bestellung bei.

Ich nehme an die Plattinen kamen ohne angelötete Pins.
Sagen wir mal so Du mußt noch einiges Löten üben bist Du ein Meister wirst. Die Lötstellen der Pins sind nicht die besten aber scheinbar auch nicht so schlecht daß sie nicht kontakt machen könnten.

Grüße Uwe

Ist mir bewusst, keine Frage. Kriege ich eigentlich immer super hin, aber ich habe diesmal mit einer anderen Lötspitze gearbeitet als sonst, die war nicht so super geeignet. :sweat_smile:

Du könntest versuchen ihn mit einem USB-UART Wandler zu beschreiben. Also den verbauten Chip umgehen.

Hallo,
was ist das für eine seltsame baud rate.
Was hast Du denn für ein Bord eingestellt.
Wenn das Ding noch jungfräulich ist könnte auch die AT Software drauf sein. Generell scheint die die Schnittstelle ja zu funktionieren. Leg mal den GPIO 0 auf GND, dann ein Reset , damit sollte er im flash mode sein.

es kann sich natürlich auch um eine Totgeburt handeln.
Heinz

Lolin Wemos D1 R2 & Mini
Das andere Board flasht damit ohne Probleme

Habe ihn auch schon in Flash Mode starten lassen aber selber Fehler.

Habe ich leider nicht. Habe nur einen ESP32 und einen Arduino Mega aber die kann ich dafür bestimmt nicht nutzen.

Ein Mega kann doch als USB-UART Wandler verwendet werden?

Mega kannst du schon nutzen. Hier mit einem UNO gezeigt: How to program ESP8266 ESP-01 with Arduino UNO and FTDI232 - YouTube

Okay, Update:

Habe jetzt versucht meinen MEGA als TTL Wandler zu verwenden:

Im Seriellen Monitor kann ich folgendes sehen:

 ets Jan  8 2013,rst cause:2, boot mode:(1,7)

Also die Verbindung über den Mega hat anscheinend geklappt.
Will ich aber den Sketch hochladen kann er keine Verbindung zum Wemos herstellen:

esptool.py v2.7
Serial port COM4
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
  File "C:\Users\Daniel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0/tools/upload.py", line 25, in <module>
    esptool.main(fakeargs)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 2841, in main
    esp.connect(args.before)
  File "C:/Users/Daniel/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.0/tools/esptool\esptool.py", line 483, in connect
    raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header


Folgendermaßen angeschlossen:
Wemos - MEGA
TX - TX
RX - RX
GND - GND
3v3 - 3.3 V

Auf dem Wemos eine Brücke von GPIO 0 zu GND



Du musst deine RX zu TX Verbindung tauschen.
Also RX auf TX und TX auf RX.

Und besser die 5Volt Pins beider Boards nutzen. Bei 3,3V wird der Strom sehr knapp.

Wenn ich das mache, dann habe ich nichts mehr im Seriellen Monitor und das Hochladen vom Sketch schlägt genauso fehl. Ist eigentlich entgegen jeder Logik aber auch in dieser Anleitung, welcher ich befolgt bin, so beschrieben.