USB serial REPL
Python shell, upload/download and normal script execution. No Wi-Fi or debugger firmware required for compatible boards.
Separate the three paths—USB serial REPL, the dedicated debugger transport and optional wireless WebREPL—before changing firmware or boot scripts. They fail for different reasons.
Python shell, upload/download and normal script execution. No Wi-Fi or debugger firmware required for compatible boards.
Breakpoints and RTA require a board-matched debugger image and separate port/transport.
Optional TCP/WebSocket service on port 8266. Its availability does not determine whether USB REPL and debugging work.
Use a data-capable USB cable. Confirm your board appears in Windows Device Manager or as a serial device on macOS/Linux, then choose the board's REPL port in Studio. Different CDC interfaces may appear as separate ports.
Close another serial terminal or flasher using the same COM port. If a tool has locked USB, close that tool before retrying. Do not delete boot.py or the debugger to solve a routine port-busy error.
Open MicroPython: Open Device Shell. At the >>> prompt run print(1 + 1); expected result is 2. Only then test upload or debugging.
A printed “WebREPL server started” message proves startup was attempted, not that this PC can reach it now. WebREPL is optional and need not start on every boot.
These commands read status and do not write to the board's filesystem:
import network
sta = network.WLAN(network.STA_IF)
print("Connected:", sta.isconnected())
print("IP:", sta.ifconfig()[0])
If Wi-Fi is disconnected, follow your board's own Wi-Fi setup; don't assume an old IP address is still valid.
Use Studio's Wi-Fi Manager or the board's existing configuration. In firmware that supports it, import webrepl makes the module available; it does not by itself start the server. An appropriate webrepl.start(...) call may be needed if no listener is running. Avoid restarting a healthy listener or overwriting user boot.py.
On Windows PowerShell, replace the example with the IP printed by the board:
Test-NetConnection <BOARD_IP> -Port 8266
On Linux/macOS with netcat installed:
nc -vz <BOARD_IP> 8266
Successful TCP connection: the service is reachable, but a correct WebREPL password is still needed. Failed TCP connection: investigate stale IP, board Wi-Fi state, routed network connectivity, access-point client isolation or whether a listener is running.
Compare the PC's current IP with the board's. Being on different subnets does not automatically prevent access—routing may exist—but they need a working network path. Joining the same reachable local network can simplify the first test. A failed ping alone does not prove WebREPL is stopped; TCP port 8266 is the relevant test.
boot.py setups intentionally skip Wi-Fi/WebREPL if USB activity is detected at startup, keeping serial recovery available. Do not remove that safeguard simply to force wireless access. Test in the live USB REPL first and keep a backup before any later boot change.Stock MicroPython firmware does not include MicroPython Studio's live debugger transport. Check the exact board, firmware image and hardware acceptance status. A GitHub Actions green build is not proof of a working binary on your board.
Connect Studio's normal device port to the REPL and use the additional transport required for the debugger. On Pico W's stable dual-CDC image they are different COM ports. On ESP32-S3 preview you may need two cables.
Use a simple script with a known source line, then test Start Debug → Connect, pause, variables, Continue and disconnect. Only after this passes test RTA On/Off and long-running asynchronous programs.
No. USB serial REPL, file tools and the supported debugger use their own connections. WebREPL is optional wireless access.
No. Existing boot recovery routines may be the reason the USB shell still works. Confirm the board's IP and network route first, then inspect WebREPL configuration without touching flash.
Stable Pico W frozen-debugger firmware provides separate USB CDC interfaces for REPL/files and debugging. Select the correct one for each purpose.
No. RP2040 and RP2350 targets require their own compatible firmware. Consult the board-specific release matrix.
No. Automated test binaries and previews can be useful for hardware experiments but are not substitutes for approved hardware-tested releases.
For bug reports, include your board model, MicroPython/firmware version, OS, port names, Studio version and non-secret logs. Never post Wi-Fi or WebREPL passwords, tokens or private project files.