I am trying to use WebRepl on my ESP32 (ESP32 Devkit v1) & ESP8266 (Wemos d1 mini) boards.
I have no problem loading MicroPython firmware & running programs on the ESP32 or the 8266.
The problem appears when I want to run WebRepl on the boards.
I can import & run webrepl_setup, setup password and reboot so the Webrepl-program starts on both ESP32 & ESP8266).
I can then connect to the boards from my repl-client (downloaded from github), and type the password and get the message
WebREpl connected
>>>
After that I cannot type any commands , nothing happens when I try commands, or just simple 2+2 things
It seems dead, but I can go to the GET section and write boot.py and it downloads the file.
This behaviour is exactly the same on both the ESP32 & ESP8266.
I have tried different versions of firmware for both of them, tried different clients (PC, iPad etc.), downloaded firmware via Linux & via PC etc. but the problem remains.
Any ideas what to do ???
WebREPL freeze
-
- Posts: 169
- Joined: Fri Aug 19, 2016 11:55 am
Re: WebREPL freeze
To check whether the problem is with WebREPL, try a serial connection at the same time, you should see the same thing in both (what you type in one also appears in the other). If the serial connection is stuck too, the problem is not with WebREPL.
The behavior you describe is expected if there is a program running. The REPL only runs when no program is running – when there is no main.py or it has exited already. If your main.py is still running, try pressing ctrl-C to stop it (on either the WebREPL or serial terminal).
(The prompt >>> you see in the WebREPL terminal right after connecting is a fake one, it does not indicate that the REPL is running. The WebREPL client fabricates it to make things look normal when the real one has already been sent before the connection was open.)
The behavior you describe is expected if there is a program running. The REPL only runs when no program is running – when there is no main.py or it has exited already. If your main.py is still running, try pressing ctrl-C to stop it (on either the WebREPL or serial terminal).
(The prompt >>> you see in the WebREPL terminal right after connecting is a fake one, it does not indicate that the REPL is running. The WebREPL client fabricates it to make things look normal when the real one has already been sent before the connection was open.)
Re: WebREPL freeze
I dont have any other programs running, I have erased the flash before installing the firmware, but no difference.
if i do:
import os
os.listdir()
the output is []
When I rebbot the shell says :
WebREPL daemon started on ws://192.168.4.1:8266
Started webrepl in normal mode
(and after that)
>>>
When I connect from my WebREPL client I get
WebREPL connection from ('192.168.4.3', 50419)
after that NOTHING
I dont know what more to do ??
Any other clues ??
if i do:
import os
os.listdir()
the output is []
When I rebbot the shell says :
WebREPL daemon started on ws://192.168.4.1:8266
Started webrepl in normal mode
(and after that)
>>>
When I connect from my WebREPL client I get
WebREPL connection from ('192.168.4.3', 50419)
after that NOTHING
I dont know what more to do ??
Any other clues ??
Re: WebREPL freeze
This was really helpful. Thonny had been throwing errors, but I was assuming that serial communication and WebREPL were mutually exclusive.Christian Walther wrote: ↑Sat Jan 23, 2021 3:11 pmTo check whether the problem is with WebREPL, try a serial connection at the same time, you should see the same thing in both (what you type in one also appears in the other). If the serial connection is stuck too, the problem is not with WebREPL.
The behavior you describe is expected if there is a program running. The REPL only runs when no program is running – when there is no main.py or it has exited already. If your main.py is still running, try pressing ctrl-C to stop it (on either the WebREPL or serial terminal).
(The prompt >>> you see in the WebREPL terminal right after connecting is a fake one, it does not indicate that the REPL is running. The WebREPL client fabricates it to make things look normal when the real one has already been sent before the connection was open.)
Code: Select all
ERROR thonny.plugins.micropython.backend: PROBLEM WITH THONNY'S BACK-END:
Traceback (most recent call last):
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 335, in _handle_normal_command
response = handler(cmd)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 660, in _cmd_get_object_info
basic_info = self._find_basic_object_info(cmd.object_id, context_id)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 721, in _find_basic_object_info
% object_id
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 544, in _evaluate
out, err = self._execute(script, capture_output=True)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 500, in _execute
self._execute_with_consumer(script, consume_output)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 701, in _execute_with_consumer
self._submit_code(script)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 560, in _submit_code
self._submit_code_via_raw_paste_mode(to_be_sent)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 650, in _submit_code_via_raw_paste_mode
self._raw_paste_write(script_bytes)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 684, in _raw_paste_write
raise AssertionError("Unexpected read during raw paste: {}".format(data))
AssertionError: Unexpected read during raw paste: bytearray(b'd')
upterm: Exception in write() method, deactivating: OSError: [Errno 104] ECONNRESET
ERROR thonny.plugins.micropython.backend: PROBLEM WITH THONNY'S BACK-END:
Traceback (most recent call last):
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 335, in _handle_normal_command
response = handler(cmd)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 631, in _cmd_get_globals
"{name : (__thonny_helper.repr(value), id(value)) for (name, value) in globals().items() if not name.startswith('__')}"
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 544, in _evaluate
out, err = self._execute(script, capture_output=True)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\backend.py", line 500, in _execute
self._execute_with_consumer(script, consume_output)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 701, in _execute_with_consumer
self._submit_code(script)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 560, in _submit_code
self._submit_code_via_raw_paste_mode(to_be_sent)
File "C:\Users\smith\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\micropython\bare_metal_backend.py", line 648, in _submit_code_via_raw_paste_mode
raise AssertionError("Got %r instead of raw-paste confirmation" % response)
AssertionError: Got bytearray(b'\x01\x01') instead of raw-paste confirmation
Looking at that forum, I do see a post on the issue.