Skip to content

feat(hardware): add Raspberry Pi Pico W and Pico 2 W support with WiF… - #149

Merged
PaulBouchier merged 1 commit into
linorobot:jazzyfrom
hippo5329:upstream-pr/picow-support
Aug 21, 2026
Merged

feat(hardware): add Raspberry Pi Pico W and Pico 2 W support with WiF…#149
PaulBouchier merged 1 commit into
linorobot:jazzyfrom
hippo5329:upstream-pr/picow-support

Conversation

@hippo5329

Copy link
Copy Markdown
Contributor

Summary

Adds full native support for Raspberry Pi Pico W (rpipicow / RP2040) and Pico 2 W (rpipico2w / RP2350) with Infineon CYW43439 wireless networking:

  • Deterministic High-Speed USB Serial Transport: Runs micro-ROS over native USB CDC (/dev/ttyACM0) for ultra-low latency odometry and velocity control.
  • Concurrent Background WiFi OTA & Syslog: Connects to WiFi in the background, enabling wireless ArduinoOTA firmware flashing and remote Syslog telemetry (SYSLOG_SERVER) without impacting micro-ROS transport determinism.
  • Environments added: pico2w, pico2w_wifi, picow, picow_wifi.

Verification

  • 100% build pass across all 6 RP2040/RP2350 environments on compute node a20 (27s).
  • Clean single-purpose commit (3d4f1d9) rebased on top of jazzy.

@mergify

mergify Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@PaulBouchier PaulBouchier left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a fix needed to make OTA work, and I've requested some improvements. Thank you very much for this great contribution! I am excited to announce your work on the linorobot email list when we get the PR merged.

Comment thread config/custom/pico2_config.h Outdated
Comment thread config/custom/pico_config.h Outdated
Comment thread config/custom/pico2_config.h
Comment thread config/custom/pico2_config.h Outdated
Comment thread config/custom/pico2_config.h Outdated
Comment thread config/custom/pico_config.h Outdated
Comment thread firmware/platformio.ini
Comment thread firmware/platformio.ini Outdated
Comment thread README.md Outdated
Comment thread firmware/platformio.ini
@hippo5329
hippo5329 force-pushed the upstream-pr/picow-support branch from 3d4f1d9 to aa36270 Compare August 20, 2026 22:45

@PaulBouchier PaulBouchier left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for doing the changes to all the other config files - I appreciate it. Unfortunately the change triggered a compile warning in several of the newly modified config files, owing to a duplicate definition. I've flagged them in the review. One more round and I think we'll be good! 😃

Comment thread config/custom/esp32s2_config.h Outdated
Comment thread config/custom/esp32s3_config.h Outdated
Comment thread config/custom/gendrv_config.h Outdated
Comment thread config/custom/gendrv_wifi_config.h Outdated
Comment thread config/custom/pico2_config.h Outdated
Comment thread config/custom/pico_config.h Outdated
Comment thread README.md Outdated
@PaulBouchier

Copy link
Copy Markdown
Collaborator

All the key functionality still worked - syslog & OTA - on the pico

@hippo5329
hippo5329 force-pushed the upstream-pr/picow-support branch from aa36270 to c1235f1 Compare August 21, 2026 04:22
@hippo5329
hippo5329 force-pushed the upstream-pr/picow-support branch from c1235f1 to 4b8087a Compare August 21, 2026 05:03
@hippo5329

Copy link
Copy Markdown
Contributor Author

Hold. We can try refactor these headers to reduce duplication. esp32_wifi and gendrv_wifi could be removed. pico and pico2 could be unified and keep only one?

@hippo5329

hippo5329 commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

customized config file can be generated easily with web ui. what we need is CI coverage to verify builds.

@PaulBouchier

Copy link
Copy Markdown
Collaborator

Thank you for your quick and excellent work on creating support for the picow/2w for wifi OTA & syslog. It all works well and builds clean. Let's hold off on further optimizations such as unifying gendrv/(_wifi) etc - we've already gone a long way and it's time to merge this PR and announce it. I also tested that micro-ros over wifi works (even though it is not recommended). It's time to move on to the next PR.

@PaulBouchier
PaulBouchier merged commit 08137c7 into linorobot:jazzy Aug 21, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants