You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现RPI Pico W开发板的无线烧录?

树莓派Pico W无线烧录实现方案

针对频繁调优、烧录Pico W的需求,以下两种方案可以帮你摆脱USB连接的限制,提升效率:

方案一:MicroPython代码无线上传(适合Python代码调优)

这个方案适合频繁修改Python脚本的场景,通过在Pico W上运行一个简易HTTP服务,实现代码上传与自动重启加载:

  1. 部署初始服务脚本
    先通过USB给Pico W烧录以下main.py脚本,它会自动连接WiFi并启动文件上传服务:

    import network
    import socket
    import machine
    import os
    
    # 替换为你的WiFi信息
    SSID = "YOUR_WIFI_SSID"
    PASSWORD = "YOUR_WIFI_PASSWORD"
    
    # 连接WiFi
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(SSID, PASSWORD)
    while not wlan.isconnected():
        pass
    print(f"WiFi已连接,IP: {wlan.ifconfig()[0]}")
    
    # 启动HTTP上传服务
    def start_upload_server():
        addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
        s = socket.socket()
        s.bind(addr)
        s.listen(1)
        print("等待上传请求,端口80")
        
        while True:
            cl, addr = s.accept()
            request = cl.recv(1024).decode('utf-8')
            
            # 处理文件上传请求
            if "POST /upload" in request:
                content = request.split('\r\n\r\n')[1]
                with open('main.py', 'w') as f:
                    f.write(content)
                cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n上传成功,设备即将重启')
                cl.close()
                machine.reset()
            else:
                cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n请通过POST方法将文件发送至/upload路径')
                cl.close()
    
    start_upload_server()
    
  2. 无线上传修改后的代码
    重启Pico W后,从串口输出或路由器后台获取它的IP地址,之后每次修改代码后,用以下命令上传:

    curl -X POST -d "@你修改后的main.py" http://<PICO_W_IP>/upload
    

    上传完成后设备会自动重启,加载新代码。

方案二:网络Bootloader烧录UF2固件(适合固件更新)

如果需要频繁更新整个固件(比如C/C++编译的UF2文件),可以使用RP2040的网络Bootloader:

  1. 刷入网络Bootloader固件
    先通过USB将支持网络Bootloader的UF2固件刷入Pico W。

  2. 配置局域网连接
    刷入后Pico W会开启名为rp2040-setup的热点,连接该热点后访问http://192.168.4.1,配置你的局域网WiFi信息,完成后设备会接入你的局域网。

  3. 无线烧录UF2固件
    获取Pico W的局域网IP后,访问对应的Web界面(默认端口80),直接上传UF2文件即可完成烧录。

  4. 添加触发进入Bootloader的逻辑
    为了不用每次按BOOTSEL按键,可以在代码中添加触发逻辑,比如通过HTTP请求触发:

    import machine
    import rp2
    
    def enter_network_bootloader():
        rp2.bootsel()
        machine.reset()
    
    # 在你的HTTP服务中添加以下判断(可整合到方案一的服务脚本中)
    if "GET /bootloader" in request:
        cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n即将进入网络Bootloader模式')
        cl.close()
        enter_network_bootloader()
    

注意事项

  • 确保PC与Pico W处于同一局域网,避免网络传输失败
  • 建议在路由器后台给Pico W分配固定IP,省去每次查找IP的麻烦
  • 上传前尽量在本地验证代码/固件的基本功能,减少无效上传次数

内容的提问来源于stack exchange,提问作者unlucky_chap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:53:11