
Describe the bug
The ViperIDE implementation of WebREPL consistently fails with an ESP32-C3.
Shortly after connecting to the board, the browser will post an error message saying "Error: Timeout reached before finding the ending sequence".
This happens consistently for every connection attempt.
Setup
- OS version: MacOS Sequoia 15.3.2 on MacBook Pro 16" with 64GB RAM
- Browser: Tested with Chrome version 134.0.6998.166 (Official Build) (x86_64), Safari Version 18.3.1 (20620.2.4.11.6), and Firefox 137.0 (64-bit)
- MicroPython board: ESP32-C3 from seeed studio
- Connection type: WebREPL
To Reproduce
Steps to reproduce the behavior:
- Obtain an ESP32-C3 from seeed studio or similar.
- Connect via USB.
- Clear the flash to remove any possible residual cruft.
- Install the current MicroPython version 1.24.1 for ESP32-C3 using Thonny or equivalent installer.
- Follow the instructions at https://github.com/vshymanskyy/ViperIDE/blob/main/docs/Web-REPL-Server.md
Expected behavior
ViperIDE connects to the board via WebREPL and displays a functional REPL window.
Additional context
I have repeated this test several dozen times, testing power cycling, soft resets, hard resets, firmware erasures, and viper-tools package reinstalls. None of these efforts have ever produced a working ViperIDE WebREPL connection.
TCP connectivity between the host computer and the ESP32-C3 is good. I have confirmed this with ping/telnet/Python. There's no problem establishing and maintaining a TCP connection to the ESP32-C3. It's the WebREPL protocol itself that's having trouble.
- ViperIDE has no trouble connecting to the board via USB. USB connections always work.
- MicroPython's generic WebREPL package works using Thonny or equivalent.
- It's specifically Viper WebREPL connections that don't work.
Please let me know what additional information or tests would be helpful. Thank you!
Actual Screenshots / Logs
Here's the javascript console from a Chrome browser. Console errors from other browsers are similar. The error always points to a "Timeout reached before finding the ending sequence".
built glob set; 25 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
(index):4 built glob set; 0 literals, 1 basenames, 3 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
22(index):2 Error: Timeout reached before finding the ending sequence
at Vx.readUntil ((index):4:124229)
at async Yx.interruptProgram ((index):4:131844)
at async Yx.enterRawRepl ((index):4:132125)
at async Yx.begin ((index):4:131632)
at async I$ ((index):10:73253)
at async (index):10:90650 'Error: Timeout reached before finding the ending sequence\n at Vx.readUntil (http://10.5.4.95:8266/:4:124229)\n at async Yx.interruptProgram (http://10.5.4.95:8266/:4:131844)\n at async Yx.enterRawRepl (http://10.5.4.95:8266/:4:132125)\n at async Yx.begin (http://10.5.4.95:8266/:4:131632)\n at async I$ (http://10.5.4.95:8266/:10:73253)\n at async http://10.5.4.95:8266/:10:90650'
O_ @ (index):2
18(index):2 Error: Timeout reached before finding the ending sequence
at Vx.readUntil ((index):4:124229)
at async Yx.interruptProgram ((index):4:131844)
at async Yx.enterRawRepl ((index):4:132125)
at async Yx.begin ((index):4:131632)
at async I$ ((index):10:73253)
at async (index):10:90650 'Error: Timeout reached before finding the ending sequence\n at Vx.readUntil (http://10.5.4.95:8266/:4:124229)\n at async Yx.interruptProgram (http://10.5.4.95:8266/:4:131844)\n at async Yx.enterRawRepl (http://10.5.4.95:8266/:4:132125)\n at async Yx.begin (http://10.5.4.95:8266/:4:131632)\n at async I$ (http://10.5.4.95:8266/:10:73253)\n at async http://10.5.4.95:8266/:10:90650'
O_ @ (index):2
interruptProgram @ (index):4
(index):2 Error: Error: Board is not responding
at (index):2:1122599 'Error: Error: Board is not responding\n at http://10.5.4.95:8266/:2:1122599'
O_ @ (index):2
(anonymous) @ (index):2
Describe the bug
The ViperIDE implementation of WebREPL consistently fails with an ESP32-C3.
Shortly after connecting to the board, the browser will post an error message saying "Error: Timeout reached before finding the ending sequence".
This happens consistently for every connection attempt.
Setup
To Reproduce
Steps to reproduce the behavior:
Expected behavior
ViperIDE connects to the board via WebREPL and displays a functional REPL window.
Additional context
I have repeated this test several dozen times, testing power cycling, soft resets, hard resets, firmware erasures, and viper-tools package reinstalls. None of these efforts have ever produced a working ViperIDE WebREPL connection.
TCP connectivity between the host computer and the ESP32-C3 is good. I have confirmed this with ping/telnet/Python. There's no problem establishing and maintaining a TCP connection to the ESP32-C3. It's the WebREPL protocol itself that's having trouble.
Please let me know what additional information or tests would be helpful. Thank you!
Actual Screenshots / Logs
Here's the javascript console from a Chrome browser. Console errors from other browsers are similar. The error always points to a "Timeout reached before finding the ending sequence".