feat: add Raspberry Pi Pico 2 + W5500 + E22-900M30S variant#10135
Open
cvaldess wants to merge 2 commits intomeshtastic:developfrom
Open
feat: add Raspberry Pi Pico 2 + W5500 + E22-900M30S variant#10135cvaldess wants to merge 2 commits intomeshtastic:developfrom
cvaldess wants to merge 2 commits intomeshtastic:developfrom
Conversation
5 tasks
This was referenced Apr 12, 2026
e59ef4c to
c2a3751
Compare
Author
|
Friendly bump — CLA is signed and the variant is a self-contained addition under variants/rp2350/pico2_w5500_e22/ (no touching of shared code paths beyond a three-line WIZNET_5500_EVB_PICO2 → PRIVATE_HW mapping in src/platform/rp2xx0/architecture.h). Happy to rebase or adjust wiring docs if anything looks off. |
c2a3751 to
39e9a79
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new community hardware variant for the RP2350-based Raspberry Pi Pico 2 that combines a W5500 Ethernet module (SPI0) with an EBYTE E22-900M30S (SX1262) LoRa module (SPI1), plus small core changes to support the W5500 path and shorten DHCP blocking.
Changes:
- Added new
pico2_w5500_e22variant (PlatformIO env, pin definitions, README, wiring diagram). - Updated Ethernet client codepaths to support
WIZNET_5500_EVB_PICO2builds usingarduino-libraries/Ethernet. - Reduced DHCP timeout to 10 seconds (currently applied globally within
ethClient.cpp).
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| variants/rp2350/pico2_w5500_e22/wiring.svg | Adds wiring diagram for Pico 2 + W5500 + E22 module connections. |
| variants/rp2350/pico2_w5500_e22/variant.h | Defines GPIO mappings and radio/Ethernet configuration macros for the new variant. |
| variants/rp2350/pico2_w5500_e22/platformio.ini | Introduces env:pico2_w5500_e22 build configuration and dependencies. |
| variants/rp2350/pico2_w5500_e22/README.md | Documents required hardware, pinout, special wiring (DIO2→TXEN), and usage notes. |
| src/platform/rp2xx0/architecture.h | Maps WIZNET_5500_EVB_PICO2 builds to PRIVATE_HW model selection. |
| src/mesh/eth/ethClient.cpp | Adds W5500/Ethernet library initialization and sets DHCP timeout to 10s. |
| src/mesh/api/ethServerAPI.h | Switches include to Ethernet.h for WIZNET_5500_EVB_PICO2 builds. |
| src/DebugConfiguration.h | Includes Ethernet.h for WIZNET_5500_EVB_PICO2 Ethernet builds. |
cvaldess
added a commit
to cvaldess/firmware
that referenced
this pull request
Apr 17, 2026
Rename WIZNET_5500_EVB_PICO2 to PICO2_W5500_E22 so the variant-specific define matches the variant directory name and isn't confused with an on-board EVB SKU. Review fixes from PR meshtastic#10135: - Gate the 10 s Ethernet DHCP timeout behind PICO2_W5500_E22 so other Ethernet builds keep the default 60 s behavior; apply the same timeout to reconnectETH() for consistency. - Drop the unused -D EBYTE_E22 flag; EBYTE_E22_900M30S already selects TX_GAIN_LORA / SX126X_MAX_POWER in src/configuration.h. - Rewrite "on-board W5500" comments to describe the external module. - Correct README TX_GAIN_LORA value (7, not 10) and drop the EBYTE_E22 row.
cvaldess
added a commit
to cvaldess/firmware
that referenced
this pull request
Apr 17, 2026
Rename WIZNET_5500_EVB_PICO2 to PICO2_W5500_E22 so the variant-specific define matches the variant directory name and isn't confused with an on-board EVB SKU. Review fixes from PR meshtastic#10135: - Gate the 10 s Ethernet DHCP timeout behind PICO2_W5500_E22 so other Ethernet builds keep the default 60 s behavior; apply the same timeout to reconnectETH() for consistency. - Drop the unused -D EBYTE_E22 flag; EBYTE_E22_900M30S already selects TX_GAIN_LORA / SX126X_MAX_POWER in src/configuration.h. - Rewrite "on-board W5500" comments to describe the external module. - Correct README TX_GAIN_LORA value (7, not 10) and drop the EBYTE_E22 row.
956fc0e to
5914434
Compare
Adds community variant for Raspberry Pi Pico 2 (RP2350, 4 MB flash) with external WIZnet W5500 Ethernet module and EBYTE E22-900M30S LoRa module (SX1262, 30 dBm PA, 868/915 MHz). Key details: - LoRa on SPI1: GP10/11/12/13 (SCK/MOSI/MISO/CS), RST=GP15, DIO1=GP14, BUSY=GP2, RXEN=GP3 (held HIGH via SX126X_ANT_SW) - W5500 on SPI0: GP16/17/18/19/20 (MISO/CS/SCK/MOSI/RST) - SX126X_DIO2_AS_RF_SWITCH: DIO2→TXEN bridge on module handles PA - SX126X_DIO3_TCXO_VOLTAGE 1.8: TCXO support via EBYTE_E22 flags - DHCP timeout reduced to 10 s to avoid blocking LoRa startup - GPS on UART1/Serial2: GP8 TX, GP9 RX - Reuses WIZNET_5500_EVB_PICO2 code paths for Ethernet init Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rename WIZNET_5500_EVB_PICO2 to PICO2_W5500_E22 so the variant-specific define matches the variant directory name and isn't confused with an on-board EVB SKU. Review fixes from PR meshtastic#10135: - Gate the 10 s Ethernet DHCP timeout behind PICO2_W5500_E22 so other Ethernet builds keep the default 60 s behavior; apply the same timeout to reconnectETH() for consistency. - Drop the unused -D EBYTE_E22 flag; EBYTE_E22_900M30S already selects TX_GAIN_LORA / SX126X_MAX_POWER in src/configuration.h. - Rewrite "on-board W5500" comments to describe the external module. - Correct README TX_GAIN_LORA value (7, not 10) and drop the EBYTE_E22 row.
c6eefee to
baf11d8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
WIZNET_5500_EVB_PICO2code paths inethClient.cppfor W5500 Ethernet initialization on SPI0Hardware
Pin assignments
RF configuration
SX126X_ANT_SW 3— GP3 (RXEN) driven HIGH at init and held there permanently (LNA always active)SX126X_DIO2_AS_RF_SWITCH— SX1262 drives DIO2 HIGH during TX; a DIO2→TXEN bridge on the E22 module activates the PA automatically (no extra GPIO needed)SX126X_DIO3_TCXO_VOLTAGE 1.8— TCXO controlled via DIO3Test plan
pio run -e pico2_w5500_e22)🤖 Generated with Claude Code