RAK4631 + ethernet not working?

Recently discovered Meshtastic and bought a RAK4631 + ethernet board to experiment with. But for whatever reason the Ethernet DHCP doesn’t seem to work for me and I get the following output:

??:??:?? 1 Meshtastic hwvendor=9, swver=2.0.10.e09b12c-d
....
??:??:?? 3 starting Ethernet DHCP
??:??:?? 63 Unknown Ethernet error.

Is this a known issue? Everything else on my network seems happy enough being issued an address (I even checked using exactly the same cable and switch port … just in case … works fine with a laptop). Any pointers on how to debug this?

Thanks
Tim - KN6PLV

Just adding some more information:

Plugged into a USB ethernet connector → Mac → dnsmasq … gets an IP address
Plugged into a Mikrotik CRS309-1G-8S+ → lights up but no traffic at the switch
Pluggeg into a Mikrtok HAP AC2 → doesnt even light up and claims cable is not connected (cable is, and same cable in all tests).

Hmm. The ethernet address of this device is ed:c1:da:84:d3:bd … and this is a multicast ethernet address which is not what you want here :frowning: Is there a fix for this?

If I kill the multicast bit in the ethernet address - so it becomes ec:c1:da:84:d3:bd - it all works as you’d hope. Will submit a PR.

2 Likes

Thanks for the Pull Request. These Ethernet boards don’t come with a harware MAC like you would expect so i was hijacking the BLE Mac which apparently doesn’t care about the multicast bit at all. The fix will be in the next firmware.

1 Like

I’m struggling getting the RAKs to work on ethernet, installed 2.0.14 and enabled ethernet but no cigar. Am using known good settings from a t-beam, but with ethernet enabled instead of wifi. Any guidance or suggestions? I need to see if I can get som serial output once ethernet is enabled, I was struggling with that too once I enabled ethernet

What do you see on the serial port? It does not really require any config.

Hi garth, I was struggling to get any serial output - it seems like the ethernet is a bit picky about when one plugs in the ethernet cable. plugging it in when the RAK is switched off and then sullpying power yields a

ERROR | ??:??:?? 67 Ethernet cable is not connected.

but restarting the divice then allows it to connect. This is the furthest I have managed to get a serial output, it often seems to crash or stop before I can send a message:

//\ E S H T /\ S T / C

DEBUG | ??:??:?? 2 Filesystem files:
WARNING file:mesh_interface.py _sendPacket line:389 Not sending packet because protocol use is disabled by noProto
DEBUG | ??:??:?? 2  channels.proto (252 Bytes)
DEBUG | ??:??:?? 2  config.proto (75 Bytes)
DEBUG | ??:??:?? 2  module.proto (63 Bytes)
DEBUG | ??:??:?? 2  db.proto (316 Bytes)
DEBUG | ??:??:?? 2 Using analog input 5 for battery level
INFO  | ??:??:?? 2 No I2C devices found
INFO  | ??:??:?? 2 Meshtastic hwvendor=9, swver=2.0.14.2baaad8-d
DEBUG | ??:??:?? 2 Reset reason: 0x0
DEBUG | ??:??:?? 2 Setting random seed 2993911210
INFO  | ??:??:?? 2 Initializing NodeDB
INFO  | ??:??:?? 2 Loading /prefs/db.proto
INFO  | ??:??:?? 2 Loaded saved devicestate version 20
INFO  | ??:??:?? 2 Loading /prefs/config.proto
INFO  | ??:??:?? 2 Loaded saved config version 20
INFO  | ??:??:?? 2 Loading /prefs/module.proto
INFO  | ??:??:?? 2 Loaded saved moduleConfig version 20
INFO  | ??:??:?? 2 Loading /prefs/channels.proto
INFO  | ??:??:?? 2 Loaded saved channelFile version 20
INFO  | ??:??:?? 2 No /oem/oem.proto preferences found
INFO  | ??:??:?? 2 Wanted region 3, using EU_868
DEBUG | ??:??:?? 2 region=3, NODENUM=0xf8120fdb, dbsize=3
DEBUG | ??:??:?? 2 Using MSL altitude model
DEBUG | ??:??:?? 2 WANT GPS=1
WARN  | ??:??:?? 3 Unable to disable NMEA GGL.
DEBUG | ??:??:?? 3 GxGSA NOT available
INFO  | ??:??:?? 3 External Notification Module Disabled
WARN  | ??:??:?? 3 SX126xInterface(cs=42, irq=47, rst=38, busy=46)
INFO  | ??:??:?? 3 Starting meshradio init...
INFO  | ??:??:?? 3 Radio freq=869.525, config.lora.frequency_offset=0.000
INFO  | ??:??:?? 3 Set radio: region=EU_868, name=Lights, config=0, ch=0, power=27
INFO  | ??:??:?? 3 Radio myRegion->freqStart -> myRegion->freqEnd: 869.400024 -> 869.650024 (0.250000 mhz)
INFO  | ??:??:?? 3 Radio myRegion->numChannels: 1 x 250.000kHz
INFO  | ??:??:?? 3 Radio channel_num: 0
INFO  | ??:??:?? 3 Radio frequency: 869.525024
INFO  | ??:??:?? 3 Slot time: 42 msec
INFO  | ??:??:?? 3 Set radio: final power level=22
INFO  | ??:??:?? 3 SX126x init result 0
INFO  | ??:??:?? 3 Frequency set to 869.525024
INFO  | ??:??:?? 3 Bandwidth set to 250.000000
INFO  | ??:??:?? 3 Power output set to 22
DEBUG | ??:??:?? 3 Current limit set to 140.000000
DEBUG | ??:??:?? 3 Current limit set result 0
INFO  | ??:??:?? 3 Set Rx Power Saving Gain mode; result: 0
INFO  | ??:??:?? 3 SX1262 Radio init succeeded, using SX1262 radio
INFO  | ??:??:?? 4 starting Ethernet DHCP
INFO  | ??:??:?? 16 Local IP 192.168.8.149
INFO  | ??:??:?? 16 Subnet Mask 255.255.255.0
INFO  | ??:??:?? 16 Gateway IP 192.168.8.1
INFO  | ??:??:?? 16 DNS Server IP 192.168.8.1
DEBUG | ??:??:?? 16 (bw=250, sf=11, cr=4/8) packet symLen=8 ms, payloadSize=237, time 3188 ms
DEBUG | ??:??:?? 16 myNodeInfo.bitrate = 74.341286 bytes / sec
INFO  | ??:??:?? 16 PowerFSM init, USB power=1
INFO  | ??:??:?? 16 Enter state: BOOT
DEBUG | ??:??:?? 16 [Power] Battery: usbPower=0, isCharging=0, batMv=4054, batPct=84
INFO  | ??:??:?? 16 [DeviceTelemetryModule] (Sending): air_util_tx=0.094806, channel_utilization=17.693333, battery_level=84, voltage=4.054000
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Initial packet id 241956080, numPacketId 4294967295
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] updateTelemetry LOCAL
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Node status update: 3 online, 3 total
INFO  | ??:??:?? 16 [DeviceTelemetryModule] Sending packet to mesh
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Update DB node 0xf8120fdb, rx_time=0
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] handleReceived(LOCAL) (id=0x0e6bf4f2 fr=0xca to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=67 priority=1)
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] No modules interested in portnum=67, src=LOCAL
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Add packet record (id=0x0e6bf4f2 fr=0xca to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=67 priority=1)
INFO  | ??:??:?? 16 [DeviceTelemetryModule] Should encrypt MQTT?: 0
INFO  | ??:??:?? 16 [DeviceTelemetryModule] MQTT not connected, queueing packet
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Using AES256 key!
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Software encrypt fr=f8120fdb, num=e6bf4f2, numBytes=28!
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] enqueuing for send (id=0x0e6bf4f2 fr=0xca to=0xff, WantAck=0, HopLim=3 Ch=0x92 encrypted priority=1)
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] txGood=0,rxGood=0,rxBad=0
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Using channel 0 (hash 0x92)
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Using AES256 key!
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] Software encrypt fr=f8120fdb, num=e6bf4f2, numBytes=28!
DEBUG | ??:??:?? 16 [DeviceTelemetryModule] decoded message (id=0x0e6bf4f2 fr=0xca to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=67 priority=1)
DEBUG | ??:??:?? 16 [RadioIf] (bw=250, sf=11, cr=4/8) packet symLen=8 ms, payloadSize=28, time 698 ms
DEBUG | ??:??:?? 16 [RadioIf] Lora RX (id=0x22f15c0e fr=0x53 to=0xff, WantAck=0, HopLim=3 Ch=0x92 encrypted rxSNR=6.5 rxRSSI=-22)
DEBUG | ??:??:?? 16 [RadioIf] AirTime - Packet received : 698ms
INFO  | ??:??:?? 16 [mqtt] Connecting to MQTT server 123.34.5.678, port: 1883, username: xxx, password: xxx
INFO  | ??:??:?? 17 [mqtt] MQTT connected
INFO  | ??:??:?? 17 [mqtt] published 1
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/c/Home/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/json/Home/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/c/Admin/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/json/Admin/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/c/Lights/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/json/Lights/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/c/Weather/#
INFO  | ??:??:?? 17 [mqtt] Subscribing to msh/2/json/Weather/#
INFO  | ??:??:?? 17 [mqtt] publish msh/2/c/Home/!f8120fdb, 76 bytes from queue
INFO  | ??:??:?? 17 [mqtt] serialized json message: {"channel":146,"from":-149549110,"id":241956082,"sender":"!f8120fdb","timestamp":0,"to":-1,"type":""}
INFO  | ??:??:?? 17 [mqtt] JSON publish message to msh/2/json/Home/!f8120fdb, 101 bytes: {"channel":146,"from":-149549110,"id":241956082,"sender":"!f8120fdb","timestamp":0,"to":-1,
INFO  | ??:??:?? 17 [ethConnect] ... Starting network services
INFO  | ??:??:?? 17 [ethConnect] Starting NTP time client
INFO  | ??:??:?? 17 [ethConnect] API server listening on TCP port 4403
INFO  | ??:??:?? 17 [ethConnect] Updating NTP time from 
ERROR | ??:??:?? 25 [ethConnect] NTP Update failed
INFO  | ??:??:?? 25 [PowerFSM] Enter state: POWER
INFO  | ??:??:?? 25 [PowerFSM] Loss of power in Powered
DEBUG | ??:??:?? 25 [Router] Add packet record (id=0x22f15c0e fr=0x53 to=0xff, WantAck=0, HopLim=3 Ch=0x92 encrypted rxSNR=6.5 rxRSSI=-22)
DEBUG | ??:??:?? 25 [Router] Using channel 0 (hash 0x92)
DEBUG | ??:??:?? 25 [Router] Using AES256 key!
DEBUG | ??:??:?? 25 [Router] Software encrypt fr=afd2da53, num=22f15c0e, numBytes=12!
DEBUG | ??:??:?? 25 [Router] decoded message (id=0x22f15c0e fr=0x53 to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=1 rxSNR=6.5 rxRSSI=-22)
DEBUG | ??:??:?? 25 [Router] handleReceived(REMOTE) (id=0x22f15c0e fr=0x53 to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=1 rxSNR=6.5 rxRSSI=-22)
DEBUG | ??:??:?? 25 [Router] Module 'text' wantsPacket=1
INFO  | ??:??:?? 25 [Router] Received text msg from=0xafd2da53, id=0x22f15c0e, msg=Testing 
DEBUG | ??:??:?? 25 [Router] Module 'text' considered
DEBUG | ??:??:?? 25 [Router] Module 'canned' wantsPacket=1
DEBUG | ??:??:?? 25 [Router] Module 'canned' considered
DEBUG | ??:??:?? 25 [Router] Module 'ExternalNotificationModule' wantsPacket=1
INFO  | ??:??:?? 25 [Router] External Notification Module Disabled
DEBUG | ??:??:?? 25 [Router] Module 'ExternalNotificationModule' considered
DEBUG | ??:??:?? 25 [Router] Module 'routing' wantsPacket=1
INFO  | ??:??:?? 25 [Router] Received routing from=0xafd2da53, id=0x22f15c0e, portnum=1, payloadlen=8
DEBUG | ??:??:?? 25 [Router] Routing sniffing (id=0x22f15c0e fr=0x53 to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=1 rxSNR=6.5 rxRSSI=-22)
INFO  | ??:??:?? 25 [Router] Rebroadcasting received floodmsg to neighborsShould encrypt MQTT?: 0
DEBUG | ??:??:?? 25 [Router] publish msh/2/c/Home/!f8120fdb, 71 bytes
DEBUG | ??:??:?? 25 [Router] got text message of size 8
INFO  | ??:??:?? 25 [Router] text message payload is of type plaintext
INFO  | ??:??:?? 25 [Router] serialized json message: {"channel":0,"from":-1345136045,"id":586243086,"payload":{"text":"Testing "},"sender":"!f8120fdb","timestamp":0,"to":-1,"type":"text"
INFO  | ??:??:?? 25 [Router] JSON publish message to `W , 134 bytes: {"channel":0,"from":-1345136045,"id":586243086,"payload":{"text":"Testing "},"sender":"!f8120fdb","timestamp":0,"to"
DEBUG | ??:??:?? 25 [Router] Original length - 8 
DEBUG | ??:??:?? 25 [Router] Compressed length - 5 
DEBUG | ??:??:?? 25 [Router] Original message - Testing  

after this the device is just stuck. Interestingly enough, even though the message “Testing” was clearly received by the ethernet enabled RAK, the RAK it was sent from shows both this message and any subsequent messages as “Max retransmission Reached” in iOS

on occasion the final line in the terminal output is

WARNING file:stream_interface.py __reader line:179 Meshtastic serial port disconnected, disconnecting... read failed: [Errno 6] Device not configured

Another obervation I have is that the ethernet cable must be short for the lights on the ethernetport to come on - 1m long cables always result in ERROR | ??:??:?? 67 Ethernet cable is not connected, but a 30 cm cable can work.

Same result with another baseboard, and another ethernet port:

INFO  | 17:31:18 33 [NodeInfoModule] Sending our nodeinfo to mesh (wantReplies=1)
INFO  | 17:31:18 33 [NodeInfoModule] sending owner !52844599/4G2/4588
DEBUG | 17:31:18 33 [NodeInfoModule] Update DB node 0x52844599, rx_time=1675359078
DEBUG | 17:31:18 33 [NodeInfoModule] handleReceived(LOCAL) (id=0x27fb1299 fr=0x88 to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=4 WANTRESP rxtime=1675359078 priority=10)
DEBUG | 17:31:18 33 [NodeInfoModule] No modules interested in portnum=4, src=LOCAL
DEBUG | 17:31:18 33 [NodeInfoModule] Add packet record (id=0x27fb1299 fr=0x88 to=0xff, WantAck=0, HopLim=3 Ch=0x0 Portnum=4 WANTRESP rxtime=1675359078 priority=10)
INFO  | 17:31:18 33 [NodeInfoModule] Should encrypt MQTT?: 0
DEBUG | 17:31:18 33 [NodeInfoModule] publish msh/2/c/Home/!52844599, 88 bytes
INFO  | 17:31:18 33 [NodeInfoModule] serialized json message: {"channel":0,"from":1384400264,"id":670765721,"payload":{"hardware":9,"id":"!52844599","longname":"4G2","shortname":"4588"},"sender":
INFO  | 17:31:18 33 [NodeInfoModule] JSON publish message to , 194 bytes: {"channel":0,"from":1384400264,"id":670765721,"payload":{"hardware":9,"id":"!52844599","longname":"4G2","shortname":"4599
WARNING file:stream_interface.py __reader line:179 Meshtastic serial port disconnected, disconnecting... read failed: [Errno 6] Device not configured


Cant comment on your specific setup, but I have two RAK4631 + ethernet working fine on cables of 50 feet. Both are running 2.0.13.

Tested again as I had used two different routers, a mobile router and a google mesh router. Whilst the mesh router has access to the internet via ethernet, it won’t light up the lights and connect to the RAK with what ever length cable, whereas the mobile trouter will. So NOT a cable length issue, you’re right, but probably related to some settings on the google mesh router.

We’re having issues with the same core and Ethernet module with Poe board

Specifically the module gets an IP and responds to ping, but does not reply to requests from CLI using --host.

@Nanovitruvius did you ever get these modules connected and working over IP?

Sorry to drag this up again, but it’s very relevant to my current situation and information is scarce. Did anyone have any success with this? I have to working ethernet connection along with functioning PoE (after battling with a GPS power-saving conflict that kept switching off the ethernet module when no GPS device was found)… pinging the device works fine and Meshtastic can connect to an MQTT server. The problem is, that I have no way of communicating with the node over the local network. No open ports, no response to a mechtastic --host ‘x.x.x.x’ TCP command.

I’m starting to regret using RAK hardware for my local base node as network connectivity is a must and being able to connect to the node from anywhere is essential.

My fallback plan is to gut the enclosure out and install a Heltec V3 instead, opting to use WiFi for connectivity, but I’d rather not have to do that as I prefer the RAK hardware for such a use-case. My only requirement is backup power and low power consumption. The node will work off PoE 24/7 but in the event of a blackout, I’d like to have many weeks of battery backup off a few 18650’s.

Many thanks in advance.

I’m also struggling to get an ethernet/PoE RAK setup working for a gateway node.

The ethernet module doesn’t even light up or get detected when paired with a RAK11310 (rp2040 core). Ethernet does work with the RAK4630 (nrf core), however it reboots as soon as it tries to uplink a message to mqtt, every single time.

I’ve also tried the RAK13300 (sx1262 I/O module) with the RAK11200 (esp32 core), hoping I could at least get wifi going, and it also ends up in a reboot loop when trying to power up the radio.

All this ^ has been on the factory 2.2.21.7f7c5cb firmware on the RAK19010 base board.

Is there any sanctioned and reliable ethernet gateway hardware configuration that works? Ideally with the PoE hat.

I’ve been looking at the firmware code a bit more and it’s quite apparent that the RAK4631 (nrf core) is much more supported and preferred for meshtastic; just based on the extent of the variant.h config file.

When comparing this to the RAK11310 (rp2040 core), nothing besides basic lora functionality seems to work. None of the RAK sensors or other modules work with the rp2040 core.

Is this just a matter of putting time into the firmware to make those modules work? Or were there other reasons to not get this core working? At this point I feel like I’m a bit on my own getting these other cores working by building custom firmware (and fixing/completing) those board variants.

I also have to say that I’d be perfectly happy using the NRF core for a gateway if it didn’t reboot when uplinking messages to MQTT over ethernet (the entire point of a gateway). This seems like a proper firmware bug b/c it is reproducible with minimal settings on a factory firmware reset.

Yes, RP2040 was added recently, while nRF52 support has been there for a couple of years. So some features like Ethernet may be lacking.

There is an open issue regarding MQTT with JSON enabled on nRF52 boards. On the other hand, that does work with the RP2040 using a Raspberry Pi Pico W via WiFi.

Without JSON enabled, MQTT should also work on nRF52 boards.

Thanks GUVWAF! Could you point me to the documentation that describes how to decrypt the “encrypted” field in the MeshPacket protobuf. I’ve written some JS to decode the ServiceEnvelope messages on MQTT, but not sure the details on the encryption for the inner payload.

Cheers

Your best bet is probably this community project that decrypts them in Python.

1 Like

Hello,

l have similar technical problems with the WisBlock Meshtastic Starter Kit in connection with the Ethernet Module WIZnet W5100S-L
RAK13800 module. I have installed everything correctly. When the device is connected to the Meshtastic app via Bluetooth, everything works fine. I can send and receive messages via Lora (433MHZ). I can also make all settings (device and module config). But now I want to operate the device via LAN. Here I can connect the device to the app. I can also receive messages. But I cannot send any messages or make any settings. The latest Meshtstic firmware is installed.

best greetings from Germany