Wemos D1: si accende, si programma, risponde e poi... non parte!

Mi succede una cosa strana con un Wemos d1 mini: si lascia programmare tranquillamente, tutte le percentuali che avanzano, contemporaneamente lampeggia il led ma poi non funziona: sembra che non vada in Run.
Se premo il reset (o metto a negativo RST) da un lampeggio, come è normale che sia, ma nel serial monitor appaiono solo caratteri strani.
Allora cerco una velocità sul serial monitor che capisca quei segni: 74880 baud (!?!)
e appare questo:

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

load 0x4010f000, len 3460, room 16 
tail 4
chksum 0xef
load 0x00000000, len 0, room 4 
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c 

Cosa c'è che non va'?

Per completezza questi sono i messaggi in programmazione:

Executable segment sizes:
ICACHE : 32768           - flash instruction cache 
IROM   : 436608          - code in flash         (default or ICACHE_FLASH_ATTR) 
IRAM   : 30365   / 32768 - code in IRAM          (IRAM_ATTR, ISRs...) 
DATA   : 1536  )         - initialized variables (global, static) in RAM/HEAP 
RODATA : 3436  ) / 81920 - constants             (global, static) in RAM/HEAP 
BSS    : 31376 )         - zeroed variables      (global, static) in RAM/HEAP 
Lo sketch usa 471945 byte (45%) dello spazio disponibile per i programmi. Il massimo è 1044464 byte.
Le variabili globali usano 36348 byte (44%) di memoria dinamica, lasciando altri 45572 byte liberi per le variabili locali. Il massimo è 81920 byte.
esptool.py v3.0
Serial port COM39
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 30:83:98:ae:41:d4
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0240
Compressed 476096 bytes to 345677...
Writing at 0x00000000... (4 %)
Writing at 0x00004000... (9 %)
Writing at 0x00008000... (13 %)
Writing at 0x0000c000... (18 %)
Writing at 0x00010000... (22 %)
Writing at 0x00014000... (27 %)
Writing at 0x00018000... (31 %)
Writing at 0x0001c000... (36 %)
Writing at 0x00020000... (40 %)
Writing at 0x00024000... (45 %)
Writing at 0x00028000... (50 %)
Writing at 0x0002c000... (54 %)
Writing at 0x00030000... (59 %)
Writing at 0x00034000... (63 %)
Writing at 0x00038000... (68 %)
Writing at 0x0003c000... (72 %)
Writing at 0x00040000... (77 %)
Writing at 0x00044000... (81 %)
Writing at 0x00048000... (86 %)
Writing at 0x0004c000... (90 %)
Writing at 0x00050000... (95 %)
Writing at 0x00054000... (100 %)
Wrote 476096 bytes (345677 compressed) at 0x00000000 in 9.3 seconds (effective 410.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Mi sa che è sbagliata la frequenza di clock...

Se, come tutte le altre 9 schede, invio il programma, wemos mi risponde mano a mano con la percentuale di scrittura (vedi sopra) e poi termina con WROTE (participio passato del verbo scrivere) do per scontato che lo abbia fatto, dato che se c'è un minimo problema non ci mette niente a "rompere" coi vari messaggi di errore che ormai tutti conosciamo.
Poi la frequenza di clock non la decido io ma su wemos fa tutto da solo.
comunque ho provato con frequenze più basse (fino a 115200): ci mette più tempo, stessi messaggi ma il prodotto non cambia

La frequenza di clock, non il bitrate! Puoi selezionarla, no? Verifica che sia esatta.

Ah scusa. Era a 80 Mhz. L'ho messo a 160 Mhz ma nulla.

Crystal is 26MHz
???...

Ho trovato questo post: sembra che il problema ci sia già da un po' di tempo su alcune schede...
Una è capitata a me ! :man_facepalming:

https://github.com/esp8266/Arduino/issues/6318

Mah ... per la differenza di prezzo, io ho del tutto abbandinato le D1 mini basate su ESP8266 e sono passato alle D1 mini basate su ESP32.

Sono un po' più larghe (hanno due file di pin in più per portare fuori molti più pin del ESP32), ma le file interne (quelle marcate in bianco) sono completamente compatibili con quelle basate su ESP8266 ... :wink:

... un altro pianeta gli ESP32 (anche grazie al doppio core che evita che il tuo programma applicativo blocchi per troppo tempo il sistema provocando un RST da watchdog).

Guglielmo

1 Like

Il problema è che ho preso le D1 mini pro solo per il connettore antenna a bordo in modo da poter montare una antenna esterna sul cabinet di alluminio. Senza quel connettore non le posso mettere in un cabinet metallico o, comunque, al chiuso

Hai già visto QUESTE ? Hanno il connettore per l'antenna anche loro, però ... NON ho verificato se la piedinatura è 1-1 compatibile ... :roll_eyes:

Guglielmo

Bello, ma tu non usi le analogiche, e i problemi li conosci... :crazy_face:

Azz ... vero, me ne ero scordato ... :crazy_face:

Guglielmo

Riprendo questo post per dire che con quella scheda ancora non me la cavo.

MA NE HO RICEVUTE BEN 10 che con alimentatore 5 volt NON FUNZIONANO !
FUNZIONANO SOLO CON USB del PC CONNESSA

Disperato ho cercato una soluzione, dato che le almeno 50 Wemos D1 mini pro comprate in precedenza MAI avevano dato problemi.
Ho cambiato anche alimentatori da 5 volt (fissi, regolabili, tradizionali, step down), ma niente da fare!
Alla fine tutto si è risolto con un CONDENSATORE ELETTROLITICO da 2200 uF 6,3 V tra 3,3V e GND. SU TUTTE LE SCHEDE !!! :man_facepalming:
La cosa è moooolto strana quindi ve ne porto a conoscenza: non si sa mai succeda anche a voi.
Il Wemos utilizzato è il modello da 4 Mb: non so se è importante.

2 Likes

Evidentemente i fili con cui colleghi gli alimentatori hanno una resistenza e/o induttanza troppo alte. Per il + e per il - usi due fili separati, distanziati?
Quei moduli sono fatti per essere montati su un circuito stampato, che si presume fornisca energia a bassa impedenza.
Ricordo che anch'io, nell'orologio NTP, ho dovuto aggiungere un condensatore simile a quello che hai messo tu, ma non ricordo esattamente per quale problema. Lì, però, ci sono 8 matrici di LED che assorbono correnti fortemente impulsive.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.