Skip to content

Add RAK4631 PoE + Ethernet companion support (W5100S/RAK13800) 🤖🤖#2679

Open
1sthandy wants to merge 1 commit into
meshcore-dev:devfrom
1sthandy:feature/rak4631-poe-ethernet-companion
Open

Add RAK4631 PoE + Ethernet companion support (W5100S/RAK13800) 🤖🤖#2679
1sthandy wants to merge 1 commit into
meshcore-dev:devfrom
1sthandy:feature/rak4631-poe-ethernet-companion

Conversation

@1sthandy
Copy link
Copy Markdown

@1sthandy 1sthandy commented Jun 3, 2026

What

Adds support for running a RAK4631 over PoE using the RAK13800 (W5100S) Ethernet module on a RAK19018 base, in two roles:

  • PoE repeater (RAK_4631_repeater_poe, +_debug): boots reliably on the RAK19018 (Silvertel) converter. The cold-start path is shortened and CPU sleep is disabled, because dropping below the converter's hold current makes it fold back and reset. Boot-voltage protection is bypassed when battery-less on PoE.
  • Ethernet companion (RAK_4631_companion_radio_eth): exposes the MeshCore companion protocol as a TCP server (default port 5000) over the W5100S, so Home Assistant connects directly to the device's IP. Uses a static IP to avoid blocking DHCP at cold start. W5100S PHY bring-up is deferred out of setup() into loop() to avoid collapsing the marginal PoE supply during the cold-start window.

New files

  • src/helpers/SerialEthernetInterface.{cpp,h} — TCP transport for the companion serial-frame protocol.
  • variants/rak4631/W5100SPoE.{cpp,h} — W5100S power/reset + init helper.

New PlatformIO envs

  • RAK_4631_repeater_poe (+ RAK_4631_repeater_poe_debug)
  • RAK_4631_companion_radio_eth

Safety / impact

All additions are guarded by WITH_W5100S_POE / WITH_ETHERNET_COMPANION, so existing RAK4631 builds are unaffected.

Testing

Tested on real hardware (RAK4631 + RAK13800 + RAK19018):

  • Repeater build powers up and stays up on PoE.
  • Ethernet companion build comes up at a static IP and serves the companion protocol on TCP:5000; Home Assistant (MeshCore integration) connects and receives messages/telemetry, including position from a T1000-E tracker.

@1sthandy 1sthandy force-pushed the feature/rak4631-poe-ethernet-companion branch from 322fc9d to 57a9988 Compare June 3, 2026 16:48
Adds support for running a RAK4631 over PoE using the RAK13800 (W5100S)
Ethernet module on a RAK19018 base, in two roles:

- PoE repeater: powers up reliably on the RAK19018 (Silvertel) converter.
  The cold-start path is shortened and CPU sleep is disabled, because
  dropping below the converter's hold current makes it fold back and
  reset. Boot-voltage protection is bypassed when battery-less on PoE.

- Ethernet companion: exposes the MeshCore companion protocol as a TCP
  server (default port 5000) over the W5100S, so Home Assistant connects
  to the device's IP. Uses a static IP to avoid blocking DHCP at cold
  start. W5100S PHY bring-up is deferred out of setup() into loop() to
  avoid collapsing the marginal PoE supply during the cold-start window.

New files:
- src/helpers/SerialEthernetInterface.{cpp,h}: TCP transport for the
  companion serial frame protocol.
- variants/rak4631/W5100SPoE.{cpp,h}: W5100S power/reset + init helper.

New platformio envs:
- RAK_4631_repeater_poe (+ _debug)
- RAK_4631_companion_radio_eth

All additions are guarded by WITH_W5100S_POE / WITH_ETHERNET_COMPANION,
so existing RAK4631 builds are unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@1sthandy 1sthandy force-pushed the feature/rak4631-poe-ethernet-companion branch from 57a9988 to e513038 Compare June 3, 2026 16:52
@cwichura
Copy link
Copy Markdown

cwichura commented Jun 3, 2026

Is this duplicating the work in #1983 ? I believe these are both targeting the same hardware, no?

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