◈ 9ce92808be498e9e05590ff27cbfdfe4
Forum / Showcase / RNode over ethernet (RAK4631 + RAK13800 Ethernet module)

RNode over ethernet (RAK4631 + RAK13800 Ethernet module)

RNode

Started by metrafonic 40e9896526f14a31... ·

metrafonic 40e9896526f14a31...
edited

I have RNode over Ethernet working on the RAK4631 with the RAK13800 Ethernet module. The eth module has an optional PoE module too. This branch is based on the latest 1.86 build.

The same firmware binary works for both plain RAK4631 boards and the ETH variant - the W5100S chip is detected at runtime, so there's no separate build to maintain. When the Ethernet module is present, the device
accepts RNode over TCP connections (on port 7633) in addition to the usual USB and BLE serial interface. PoE makes it easy to deploy as a fixed node with a single cable.

The firmware is available here: https://github.com/metrafonic/RNode_Firmware_RAK_Ethernet

To install or update with rnodeconf:

rnodeconf --autoinstall --fw-url https://github.com/metrafonic/RNode_Firmware_RAK_Ethernet/releases/

Hardware used:

  • RAK4631 (nRF52840 core)
  • RAK13800 Ethernet module (W5100S)
  • Optional RAK19018 PoE module
metrafonic 40e9896526f14a31...

The code has been updated. No new board definition, everything stays under the original RAK4631.

There is some logic to detect if the eth module is present.

I will update the repo so that rnodeconf can be used with a custom fw url

Nickie c28ea15c1b83aaba...
edited

Good work. I've built a similar but a bit more DIY RNode solution., runs on my fork of RNode_Firmware.

metrafonic 40e9896526f14a31...

New release dropped now. The previous build had an issue where the CSMA would wrongly detect network activity, in part due to the synchronous eth maintenance calls interfering with this logic.

https://github.com/metrafonic/RNode_Firmware_RAK_Ethernet/releases/tag/1.86

Changes in this build

  • Fix: SX1262 carrier-sense wedge — A partial/foreign LoRa packet that triggers header-detect but never completes left the IRQ_HEADER_DET bit permanently set, causing dcd() to return true forever and blocking all TX. The driver now times out a stuck header-detect based on the maximum possible packet duration at the current data rate and clears the IRQ, mirroring the existing false-preamble self-heal.
  • Fix: self-heal timeout no longer aborts valid long packets — The stuck-header timeout was derived from the nominal bitrate, which undercounts real airtime when Low Data Rate Optimize is active (SF11/SF12). A near-max-length packet at high spreading factor could exceed the estimate and be cleared mid-reception. The timeout now corrects for LDRO (×SF/(SF-2)) plus a margin, so genuine long frames are no longer dropped.
  • Fix: DHCP renewal no longer stalls the modemEthernet.maintain() (lease renewal) is now gated on !dcd && queue_height == 0 so it only runs during radio-quiet gaps. The W5100S library advances lease timers by wall-clock time even when skipped, so renewals deferred during active radio use fire at the next quiet moment. The global DHCP timeout is also reduced from 8 s to 3 s to cap worst-case stall on an unresponsive server.

Both the carrier-sense and DHCP bugs combined to cause a hard lockup after hours of use: the DHCP renewal stall starved modem servicing long enough for a foreign packet to latch header-detect, after which channel load read 100% and TX was permanently blocked until restart.

Install

Install or update using rnodeconf:

rnodeconf --autoinstall --fw-url https://github.com/metrafonic/RNode_Firmware_RAK_Ethernet/releases/
p1ld7a

Hello,

It's my very first time with RN. I received my device (RAK4631) just this morning.
I succeeded to flash your firmware successfully.

However, the procedure to pair the device using bluetooth is kinda hard since I don't have the bluetooth pin to use.
There's was no bluetooth pin printed in the console during the flashing.

How do you do to connect in bluetooth on such device, without display on them ?

metrafonic 40e9896526f14a31...
edited

p1ld7a wrote:

Hello,

It's my very first time with RN. I received my device (RAK4631) just this morning.
I succeeded to flash your firmware successfully.

However, the procedure to pair the device using bluetooth is kinda hard since I don't have the bluetooth pin to use.
There's was no bluetooth pin printed in the console during the flashing.

How do you do to connect in bluetooth on such device, without display on them ?

So this firmware is a modified version to support the ethernet extention board. You can just use the normal rnode firmware.

But to answer your question:

rnodeconf -p /dev/yourserialdevice

Enters pairing mode and shows the pin

Post a Reply

Markdown

Supports Markdown: **bold**, *italic*, `code`, ```code blocks```, [links](url)

Log in to upload images

Proof of work verification for anonymous posting

Copied to clipboard