Why
A node on a roof or a mast needs power and, for a gateway, a network connection. With PoE both come down the same Ethernet cable, and the node can be managed and updated from the LAN without climbing up to it.
Hardware (V2.0)
- WIZnet W5500-EVB-Pico2: RP2350 (dual Cortex-M33 / Hazard3 RISC-V) with an on-board W5500 hardwired TCP/IP Ethernet controller, so there is no separate Ethernet module to wire.
- WIZnet WIZPoE-P1: IEEE 802.3af PoE module, Mode A and Mode B.
- Ebyte E22P-868M30S: SX1262 LoRa module, 30 dBm. The 433 MHz E22P-433M30S uses the same footprint and pins (that is the one for LoRa APRS).
- Sensirion SHT4x temperature and humidity sensor on board.
- STEMMA QT / Qwiic connector for more I2C sensors, level-shifted, with a jumper to select its supply voltage.
- GPS, one of two options: a 5-pin JST SH header (5 V, TX, RX, PPS, GND) for an external receiver, or an on-board GPS02-UBX module (u-blox M10) with a u.FL connector. GPS power goes through a TI TPS22917 load switch on GP22, so the firmware can switch it off.
- Optional NXP EdgeLock SE050 secure element.
Pin mapping
- LoRa (SPI1): SCK GP10, MOSI GP11, MISO GP12, CS GP13, RST GP15, DIO1 GP14, BUSY GP2, RXEN GP3.
- TXEN: solder jumper JP3 ties it to DIO2 by default; rebridge it and TXEN goes to GP6 instead.
- Ethernet (SPI0, on the EVB-Pico2): MISO GP16, CS GP17, SCK GP18, MOSI GP19, RST GP20.
- I2C: SDA GP4, SCL GP5. SE050 enable: GP7.
- GPS (UART1): TX GP8, RX GP9, PPS GP26, power enable GP22, reset GP27 (on-board module only).
Firmware
Meshtastic: the board variant (wiznet_5500_evb_pico2_e22p) and Ethernet OTA updates for RP2350/W5500 boards are both merged upstream (meshtastic/firmware #10552 and #10136, June 2026). The pre-built images linked from the repo come from my fork, which adds an HTTP/HTTPS API so the Meshtastic web client can talk to the node over Ethernet, plus a few fixes still under review upstream.
LoRa APRS: I ported CA2RXU's LoRa APRS iGate/Digipeater firmware to the RP2350 + W5500 (pull request open upstream). Pre-built binaries are linked from the repo.
Reticulum (experimental): a standalone Reticulum transport node with its identity keys generated inside the SE050. It was developed on the sibling board (a plain Pico 2 with a separate W5500 module), which uses the same pin mapping.
Things I learned on the way
- The E22's RXEN pin enables the LNA. If the radio library drives it as an RX-enable line, it sits low when the radio is idle and the node goes deaf. RXEN is now held high permanently and the PA is switched by DIO2 through the TXEN jumper.
- On the W5500-EVB-Pico2, GP21 is the W5500 interrupt line. The previous revision had the GPS PPS on GP21; V2.0 moves it to GP26.
- Without a DHCP server, the Ethernet library blocks for 60 s at boot and LoRa does not start until it gives up. The firmware now uses a 10 s timeout.
- The hardest bug so far was a stack overflow: one admin command from the web client rebooted the node every time. That story gets its own project log.
Status
- Tested: everything except the GPS PPS input (GP26) and the TXEN-on-GP6 option (jumper open). Both are still to be checked.
- V2.0: designed in KiCad, DRC clean, Gerbers in the repo. The boards are on their way from the fab; photos of the assembled board will follow in the project logs.
- The previous revision, with external sensor and GPS modules, is built; there is a photo in the repo README.
Meshtastic is a trademark of Meshtastic LLC. This board is an independent design, not affiliated with or endorsed by Meshtastic LLC.
Carlos Valdes