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?