MPRemote
Install mpremote and you are able to send code direct to the Pico and run it
apt install mpremote mpremote fs cp main.py : mpremote run main.py
The initial install looks like this :
Plug the RP2030 into your laptop while holding down the BOOT button On your PC a folder will appear. RP2350
Copy the Micopython installer from here : https://micropython.org/download/RPI_PICO2_W/
The Pico will reboot and mpremote should now work
martin@macbook2020 ~ % mpremote
Connected to MicroPython at /dev/cu.usbmodem11201
Use Ctrl-] or Ctrl-x to exit this shell
MicroPython v1.26.1 on 2025-09-11; Raspberry Pi Pico 2 W with RP2350
Type "help()" for more information.
>>>
A Simple test would be to get a list dir command to work.
>>> import os
>>> os.listdir()
[]
To install al lib such as the micropython_ota run this
curl https://files.pythonhosted.org/packages/6d/5c/17f4b88f98dd0312e7f8ba8c6f25fbf4625da69b5eb50c12a9785b79bcca/micropython_ota-2.1.0.tar.gz
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
martin@macbook2020 micropython-ota % curl https://files.pythonhosted.org/packages/6d/5c/17f4b88f98dd0312e7f8ba8c6f25fbf4625da69b5eb50c12a9785b79bcca/micropython_ota-2.1.0.tar.gz -o micropython_ota-2.1.0.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4205 100 4205 0 0 149k 0 --:--:-- --:--:-- --:--:-- 152k
martin@macbook2020 micropython-ota % ls a-l
ls: a-l: No such file or directory
martin@macbook2020 micropython-ota % ls -al
total 16
drwxr-xr-x@ 3 martin staff 96 14 Nov 12:04 .
drwx------@ 58 martin staff 1856 14 Nov 12:04 ..
-rw-r--r-- 1 martin staff 4205 14 Nov 12:04 micropython_ota-2.1.0.tar.gz
martin@macbook2020 micropython-ota % tar xvzf micropython_ota-2.1.0.tar.gz
x micropython_ota-2.1.0/micropython_ota.egg-info/PKG-INFO
x micropython_ota-2.1.0/micropython_ota.py
martin@macbook2020 micropython-ota % ls -al
total 16
drwxr-xr-x@ 4 martin staff 128 14 Nov 12:05 .
drwx------@ 58 martin staff 1856 14 Nov 12:04 ..
drwxr-xr-x 4 martin staff 128 14 Nov 12:05 micropython_ota-2.1.0
-rw-r--r-- 1 martin staff 4205 14 Nov 12:04 micropython_ota-2.1.0.tar.gz
martin@macbook2020 micropython-ota % cd micropython_ota-2.1.0
martin@macbook2020 micropython_ota-2.1.0 % ls -al
total 16
drwxr-xr-x 4 martin staff 128 14 Nov 12:05 .
drwxr-xr-x@ 4 martin staff 128 14 Nov 12:05 ..
drwxr-xr-x 3 martin staff 96 14 Nov 12:05 micropython_ota.egg-info
-rw-r--r-- 1 martin staff 4267 1 Feb 2023 micropython_ota.py
martin@macbook2020 micropython_ota-2.1.0 % mpremote cp micropython_ota.py :/lib
cp micropython_ota.py :/lib
martin@macbook2020 micropython_ota-2.1.0 % mpremote run main.py
Clone RP2040 - DO NOT BUY THESE - SO BAD TO USE
That board uses an ESP8285 module for Wi-Fi rather than the CYW43 chip found on the official Pico W. Functionally it's the same idea, but it connects through a different interface (UART + AT commands), so the standard Pico W MicroPython firmware won't recognise it and shows that CYW43 failed to start message. You've got two good options for getting Wi-Fi up and running:
Option 1 MicroPython Flash the standard Pico (non-W) MicroPython UF2 (this skips the CYW43 driver). Use one of the small helper libraries that communicate with the ESP8285 over UART They give you the same connect()-style commands for joining Wi-Fi and sending data.~ If you like, I can send through some sample code files from the supplier that show exactly how to initialise the Wi-Fi and connect they're easy to adapt.
Option 2 Arduino IDE (recommended if you prefer a quick start) Arduino has native support for the RP2040 + ESP8285 combination. Just select the correct board in the Arduino IDE, use the WiFiEspAT library (or similar), and you can connect to Wi-Fi with only a few lines of code. Many people find this path simpler for networking since the libraries handle the AT communication automatically.i Let me know which option you'd like to go with I'm happy to send the MicroPython examples or a quick Arduino setup guide (with code) to get you online straight away.
This guy is awesome to deal with from AusComm on Ebay
MicroPython Setup with ESP8285
git clone https://github.com/mocacinno/rp2040_with_esp8285.git
cd rp2040_with_esp8285
Boot the Pico with the button closest to the USB held down. Drag and Drop the Serial_port_transmission.uf2 onto the File System that had appeared in Windows / MAC
The Pico will reboot
Unplug the Pico and plug it back in while holding the button furthest from the USB COnnector
Run this on the ocmmand line
ls /dev
on the mac this is generally tty.usbmodem1234561 at this stage
esptool.py --chip auto --port /dev/tty.usbmodem1234561 write-flash -fm dout 0x00000 WIFI-ESP8285_upgrade.bin
This will upload the flash to esp8285
unplug and re-plug
Upload the Micropython code from here : RPI_PICO-20250911-v1.26.1.uf2
Hold the button close to the USB port again and copy and paste the uf2 file to the Pico
Edit the main.py from the rp2040_with_esp8285 repo.
Change the SSID and WPA2
Change the htfy location and channel. Login to the website and confirm the message appears
The example main.py should look like this when run
mpremote run main.py
AT
OK
AT+CWMODE=1
OK
AT+CWJAP="<ssid>","<passwd>"
WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIPMODE=0
OK
ESP8285 initialized and connected to WiFi
AT+CIPCLOSE
ERROR
AT+CIPSTART="TCP","ntfy.sh",80
CONNECT
OK
AT+CIPSEND=100
OK
>
HTTP POST request sent
HTTP POST request sent successfully