• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie NodeMcu v3 bez USB
#1
Witam wszystkich. Posiadam Nodemcu v3 niestety już bez portu microusb. Chciałbym je zaprogramować przy pomocy PL2303. Niestety coś nie wychodzi  Tongue

Podłączam 
pl2303 =>nodemcu
Vcc      =>vcc
GND     =>GND
TxD     =>Rx
RxD     =>Tx
GND    =>D3
Vcc      =>RST

Niestety wgrywanie nie powodzi się. Otrzymuje poniższy błąd. Proszę o pomoc.
Kod:
Arduino:1.8.9 (Windows 10), Płytka:"WeMos D1 R1, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

Szkic używa 288972 bajtów (27%) pamięci programu. Maksimum to 1044464 bajtów.
Zmienne globalne używają 28056 bajtów (34%) pamięci dynamicznej, pozostawiając 53864 bajtów dla zmiennych lokalnych. Maksimum to 81920 bajtów.
esptool.py v2.6
2.6
esptool.py v2.6
Serial port COM8
Connecting.....
Chip is ESP8266EX
Features: WiFi
MAC: 5c:cf:7f:a4:55:53
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 293120 bytes to 210717...

Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 293120 bytes (210717 compressed) at 0x00000000 in 19.0 seconds (effective 123.2 kbit/s)...
File  md5: 12a926f099fa2f88f3911d007b5e5b3b
Flash md5: 2b6992966aaa6831e93363f67b72429c
MD5 of 0xFF is e48a8aada48d7f7f8f5cc4ea63c963be
Traceback (most recent call last):
  File "C:\Users\kamin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/upload.py", line 25, in <module>
    esptool.main(fakeargs)
  File "C:/Users/kamin/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2698, in main
    operation_func(esp, args)
  File "C:/Users/kamin/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2182, in write_flash
    raise FatalError("MD5 of file does not match data in flash!")
esptool.FatalError: MD5 of file does not match data in flash!
esptool.FatalError: MD5 of file does not match data in flash!
 
Odpowiedź
#2
Skąd znalazłeś taki układ połączeń? W szczególności podłączenie VCC pod RST jest kiepskim pomysłem, robisz zwarcie gdy wciskasz przycisk reset lub gdy płytka łączy się do programowania.
Na płytce masz przyciski RST i FLASH, wciskasz flasz, potem reset, potem puszczasz reset i puszczasz flash (flasz ma być wciśnięty w momencie resetowania) i masz ESP oczekujący na wsad.
Teraz zależy co Ci padło na tym NodeMCU, jeśli tylko złącze USB to OK, no a jak mostek USB-UART to może zakłócać komunikację. By sprawdzić czy UART działa dobrze możesz podłączyć konwerter, ustawić termianal na około 74880 i pooglądać komunikaty.
Pamiętaj też, że ESP jest 3.3V, takie zasilanie, taki poziom logiczny sygnałów na pinach RX/TX.
Między PL a ESP łączysz tylko linie RX, TX (na krzyż) i GND, ewentualnie zasilanie jeśli PL ma taką moc.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
Gniazdo USB się wyłamało z płytki. Reszta powinna być ok. Odpiąłem reszte przewodów. Programuje wg instrukcji i niestety znowu błędy MD5. Ten sam program się wgrywa na identyczną płytkę z USB.


Kod:
Arduino:1.8.9 (Windows 10), Płytka:"WeMos D1 R1, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

Szkic używa 257536 bajtów (24%) pamięci programu. Maksimum to 1044464 bajtów.
Zmienne globalne używają 26564 bajtów (32%) pamięci dynamicznej, pozostawiając 55356 bajtów dla zmiennych lokalnych. Maksimum to 81920 bajtów.
esptool.py v2.6
2.6
esptool.py v2.6
Serial port COM8
Connecting.....
Chip is ESP8266EX
Features: WiFi
MAC: 5c:cf:7f:a4:55:53
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 261696 bytes to 191242...

Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 261696 bytes (191242 compressed) at 0x00000000 in 17.4 seconds (effective 120.7 kbit/s)...
File  md5: a9ea9bc0ae34b502541ab12bba6dcde7
Flash md5: 23f1d6bb69947550723fd4e90d4d2b7d
MD5 of 0xFF is 314602ad978e310b9a3d9117fb2b638e
Traceback (most recent call last):
  File "C:\Users\kamin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/upload.py", line 25, in <module>
    esptool.main(fakeargs)
  File "C:/Users/kamin/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2698, in main
    operation_func(esp, args)
  File "C:/Users/kamin/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2182, in write_flash
    raise FatalError("MD5 of file does not match data in flash!")
esptool.FatalError: MD5 of file does not match data in flash!
esptool.FatalError: MD5 of file does not match data in flash!

Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
 
Odpowiedź
#4
Spróbuj zmienić prędkość wgrywania, zmień konwerter na FTDI lub CH340. Jak nie masz innego to można zrobić z klona UNO/NANO, wystarczy złączyć na tej płytce reset do GND zworką i podłączyć TX-TX, RX-RX UNO, tu wyjątkowo nie na krzyż, bo TX Arduino jest RX'em konwertera płytki, połaczenia komunikacyjne między UNO i ESP najlepiej przez konwerter poziomów logicznych. Wygląda na to, że coś tam wgrywa, ale ESP odczytuje mocno coś innego niż jest do niego wysyłane.
Być może jednak wbudowany UART przeszkadza w bezpośrednim użyciu pinów TX i RX.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#5
A czemu płytka ustawiona na WeMos D1 R1 a nie NodeMCU 1.0 esp 12e?? pamiętaj ze teraz to bezpośrednio leci
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#6
Akurat Wemos i NodeMCU to to samo, ten sam moduł ESP12E, ten sam sposób resetu (tu nie ma znaczenia) i tak samo oznaczone piny IO na D0,D1, itd. Ewentualnie można wybrać generic ESP8266 i wybrać tryb komunikacji flash DOUT i 1MB, miałem jakąś płytkę, która tylko tak się dała programować, ale tam nie było ESP12E tylko jakieś klejone chipy wprost na laminat, osobno ESP i osobno chip flash.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#7
Na pewno to samo?? Wemos jest na espressif a NodeMCU a Ai-Thinker nie znam się ale tak tylko myślę..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#8
Wersja płytki w Arduino IDE zawiera w sobie informacje jaki jest chip (zwykle ESP8266), jaka jest mapa IO względem oznaczeń typu D0,D1, itd, jaki jest tryb obsługi flash, jakie są warianty wielkości flash, warianty wielkości spiffs, tu jest podane czy jest QIO, DIO, DOUT, QOUT (a kupując wersję na Aliexpress czasami trzeba zrezygnować z wyboru takiego gotowca i wybrać np. DOUT i flash 1MB, bo na QIO płytka zalicza regularny reset zaraz po starcie, bo jest jakiś jednak inny chip flash "w podróbce", jakie są dostępne prędkości taktowania do wyboru w menu dla flash i zegara ESP, sposób wykonania resetu itp pierdółki. W "generic" wszystko to można wybierać z menu.
I takimi pierdółkami te płytki się faktycznie różnią, np. jedna ma zdefiniowany LED_BUILTIN na GPIO2 a druga na GPIO16. Gdzie na GPIO16 jest to led na płytkce, a GPIO2 jest to w obu ten na module ESP12E, w jednej płytce są zdefiniowane piny RX i TX, w drugiej D9 i D10.
Na etapie działania programu mogą być różnice wynikające z tych definicji, na etapie kompilacji może wywali błąd, bo nie wie o co chodzi, gdy ktoś w jednej użyje digitalWrite do D9 a w drugiej do RX, ale nie ma to znaczenia przy próbie wgrywania.
Można sobie wejść w pliki core i pooglądać jak są zdefiniowane płytki i czym się różnią, nie używam w kodzie oznaczeń D1 i kod skompilowany pod NODEMCU działa tak samo, nowe płytki zaraz po rozpakowaniu traktuję najpierw szkicem z jakimś println, test usypiania i wybudzania, a potem stawiam serwer, jak to działa to zakładam, że jest OK i wrzucam do pudła do zabawy na później. I to działa z każdą płytką nieważne czy NODE MCU czy Wemos (Wemos mini jednak jest lepsze z uśpieniem, bez żadnych zabiegów na płytce pibiera ~ 150uA vs nawet 10mA w NODE MCU).
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#9
Myślałem że różnią się też bootloaderem , bo obsłudze pinów to jasna sprawa...
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#10
Jedne i drugie płytki przylatują z Chin z już wgranym jakimś programem, dla NODE MCU jest to jakiś LUA, dla Wemos coś z komendami AT, ale nawet tego nie dotykam, od raz wgrywając swoje szkice testowe z Arduino.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości