ESP8266 NodeMCU MicroPython 串行垃圾,无法erase_flash 或上传文件

ESP8266 NodeMCU MicroPython garbage in serial, cannot erase_flash or upload files

看来我的 NodeMCU Lolin esp8266 模块坏了,请确认)

起初一切正常,但后来...

  1. 我上传的有点奇怪boot.py玩UART0
#boot.py
import uos, machine
import gc
gc.collect()

import esp
import time

esp.osdebug(None)
uart = machine.UART(0, 115200)

def uart_test():
    print('before disabling REPL on UART')
    uos.dupterm(None, 1) # disable REPL on UART(0)
    print('after detaching REPL')
    time.sleep(5)
    uart.write('123')
    r=uart.read()
    # reattach REPL
    uos.dupterm(uart, 1)
    print('after attaching REPL')
    print('r: ')
    print(r)
  1. 然后我上传 main.py 并在无限循环中闪烁 time.sleep() 以在我将模块安装到盒子中时检查状态。
#main.py
import time
from machine import Pin, Signal

led = Signal(2, mode=Pin.OUT, invert=True)
while True:
    led.on()
    time.sleep(1)
    led.off()
    time.sleep(1)
  1. 然后,当我在盒子里安装模块时,我不小心从 PCB 上撕下了一个元件,但后来又把它焊回去了。我不知道这个元素是什么以及它的目的是什么。我在图片上标记了这个元素 IMG: broken element

所有这些之后我无法通过串行端口连接到模块,我在屏幕上看到的只是垃圾,尝试了不同的波特率。 IMG: screen is empty and doesen't react to keys or Ctrl+C

重置板后屏幕上只有垃圾IMG: garbage after reset

我也无法使用esptool擦除闪存。

MCU 正在工作,因为在 main.py

中编程时,当它通电时 LED 会闪烁

我尝试通过连接 GPIO0GND 来启用引导加载程序模式,闪烁在此模式下不起作用,但 esptool.py 在此模式下也不起作用。 esptool 日志

python3 -m esptool --port /dev/cu.usbserial-142240 --baud 9600 erase_flash
esptool.py v3.1
Serial port /dev/cu.usbserial-142240
Connecting........_____....._____....._____....._____....._____....._____....._____

A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header

esptool 日志与 --trace arg

python3 -m esptool --port /dev/cu.usbserial-142240 --baud 115200 --trace erase_flash
esptool.py v3.1
Serial port /dev/cu.usbserial-142240
Connecting...TRACE +0.000 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.000 Write 46 bytes: 
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.023 Read 1 bytes: e2
TRACE +0.000 Read invalid data: e2
TRACE +0.000 Remaining data in serial buffer: 
    6efe6ee43cfe2792 07eceeee708ef21c | n.n.<.'.....p...
    1e0e1c906e6c6c1c 9227c71eeee76c   | ....nll..'....l
.TRACE +0.056 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.000 Write 46 bytes: 
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.002 Read 1 bytes: ee
TRACE +0.000 Read invalid data: ee
TRACE +0.000 Remaining data in serial buffer: 
    240eec6e9c9c8c9c e70e026c6ce4ee9c | $..n.......ll...
    6e6e00f26c62e4ee 70e26ee2ec626c   | nn..lb..p.n..bl
...
# and a lot of similar messages

我的 nodemcu 模块是怎么回事?它死了吗?我可以尝试做什么?

您自己遇到的硬件相关问题比软件相关问题更有可能。

重新焊接断开的部分,然后重试。您可能弄坏了用于过滤输出噪声的 resistor/capacitor(我不是硬件专家)或对调节电路板运行所需电压至关重要的东西。

编辑

https://raw.githubusercontent.com/hallard/NodeMCU-Gateway/master/pictures/NodeMCU-Lora-Gateway-top.png所示,尽管该板的设计不同,但您似乎断开了电容器或二极管。重新焊接或给自己买一个新的 (100nf) 或二极管 (1N4148)

结论:

今天我收到了 USB 转 UART 转换器,将它连接到我的 ESP8266 板的 TX 和 RX 上,一切正常。所以问题出在板载CH340转换器上。