1

How can I achieve wireless flash of an RPI Pico W board?

I need this because during testing of my device, I will need to tune it and flash the board frequently which will save time rather then connecting it to my PC all the time.

Jonas
  • 121,568
  • 97
  • 310
  • 388

1 Answers1

3

If you want to do this, you need to wireless flashing of an RPI Pico W board, you can utilize the Raspberry Pi Pico's built-in support for wireless programming through the UF2 (USB Flashing Format) bootloader. In order to do that:

Step 1: Prepare your RPI Pico W board: Make sure you have the necessary hardware components and connections in place for the initial setup. This includes power supply, USB cable, and any additional peripherals you might need.

Step 2: Update the UF2 bootloader: Ensure that your RPI Pico W board has the latest version of the UF2 bootloader installed. The UF2 bootloader is responsible for handling the wireless programming functionality.

Step 3: Connect to your PC: Connect your RPI Pico W board to your PC using a USB cable. This is required for the initial setup and subsequent wireless programming configuration.

Step 4: Put the board into wireless programming mode: Press and hold the BOOTSEL button (usually labeled "RUN" or "BOOTSEL") on the RPI Pico W board, then connect it to your PC using the USB cable. This will put the board into programming mode.

Step 5: Find the wireless programming drive: After connecting the board in programming mode, it should appear as a new drive on your computer. Open the drive to access its contents.

Step 6: Configure wireless programming: Locate the file named boot.py on the wireless programming drive and open it with a text editor. Modify the file to include your desired wireless programming settings. It might look for example like this:

import network

# Connect to your Wi-Fi network
wifi_ssid = "Your_Wi-Fi_SSID"
wifi_password = "Your_Wi-Fi_Password"

# Set up as an access point (optional)
ap_ssid = "Pico_Wireless_AP"
ap_password = "Pico_AP_Password"

def connect_to_wifi():
    sta_if = network.WLAN(network.STA_IF)
    sta_if.active(True)
    if not sta_if.isconnected():
        print('Connecting to WiFi...')
        sta_if.connect(wifi_ssid, wifi_password)
        while not sta_if.isconnected():
            pass
    print('Connected:', sta_if.ifconfig())

def create_access_point():
    ap_if = network.WLAN(network.AP_IF)
    ap_if.active(True)
    ap_if.config(essid=ap_ssid, password=ap_password)
    print('Access Point created:', ap_if.ifconfig())

# Connect to Wi-Fi network or create an access point
connect_to_wifi()
# create_access_point()  # Uncomment if you want to set up an access point

Dont forget to modify the wifi_ssid and wifi_password variables with the credentials of your Wi-Fi network. Optionally, you can configure an access point by uncommenting the create_access_point() line and providing the desired ap_ssid and ap_password values.

Step 7: Save the boot.py file and eject the drive: Save the changes you made to the boot.py file and safely eject the wireless programming drive from your computer.

Step 8: Disconnect the RPI Pico W board from your PC: Once the drive is ejected, disconnect the board from your PC by removing the USB cable.

Step 9: Power the board using a suitable power source: Power up the RPI Pico W board using a power source such as a battery or power adapter, depending on your setup.

Step 10: Connect to the board wirelessly: Now that the wireless programming configuration is in place, you can connect to the RPI Pico W board wirelessly using the Wi-Fi network or access point settings you provided.

And lastly: Flash the board wirelessly: With the RPI Pico W board connected to your Wi-Fi networ.

Good luck to you :)