firmware icon indicating copy to clipboard operation
firmware copied to clipboard

[Bug]: Meshtasticd not populating node list

Open joshbowyer opened this issue 1 year ago • 6 comments

Category

Other

Hardware

Linux Native

Firmware Version

2.5.5

Description

Trying to direct message between two devices, fresh factory reset and nodes deleted from app on both sides. Node A (RAK4631) sees Node B (Waveshare LoRa hat, sx1262 on RPi Zero W) in node list, Node B never sees Node A. Trying to direct message from Node A to Node B fails quickly and tapping on the cloud/slash icon says Error: Unknown Public Key. Both nodes are on 2.5.5 and the app is 2.5.0 (Android)

On Node B, debug panel never shows any packet to or from Node A.

On Node A, after attempting to send a direct message to Node B, it shows the packet to Node B with the correct nodeid, and the payload (message). However, the next packet says from Node B to Node A (reply), and payload is "\030#" (not sure what that means).

Basically, Node B which is running on meshtasticd on RPi never seems to add other devices to its node list, even after messaging in shared channels or forcing discovery broadcasts by rebooting other devices. And because the devices never appear in the node list, direct messaging is broken.

Relevant log output

No response

joshbowyer avatar Oct 15 '24 00:10 joshbowyer

To update and clarify this more, I am now using three devices to test this. Node A (RAK4631), Node B (Waveshare RPi hat), and Node C (Heltec v3). Node A populates Node A and C in its node list, Node C populates Node A and C in its list, and Node B populates nodes A B and C in its list. But Node B never appears in the other devices' lists. In the debug panel, I can see its nodeid in channel messages, but its like there is zero acknowledgement of an attempted direct message when I attempt to message A or C from B.

joshbowyer avatar Oct 16 '24 01:10 joshbowyer

Bumping with additional info:

I am even seeing NodeInfo packets from Node B in the debug panel of Node A. Still doesnt populate into the nodedb of Node A.

joshbowyer avatar Oct 17 '24 15:10 joshbowyer

Your device has the long message problem. Some of these Waveshare hats have a problem with sending moderately long messages. You can check by trying to send regular channel messages of varying length. I'd guess somewhere around 50 characters, the messages will start getting spotty.

To verify, put your devices on the ShortFast LoRa preset and see if things work as expected. In my testing, messages sent with ShortFast don't keep the TX circuit powered long enough to run into this problem.

jp-bennett avatar Oct 18 '24 16:10 jp-bennett

I previously had it on MediumFast and it worked flawlessly. I switched it to LongFast and it has problems, however I didnt think to connect the two as I had also updated to >2.5.0 at the same time.

Are you tracking any potential fixes or workarounds to this?

joshbowyer avatar Oct 18 '24 16:10 joshbowyer

Actually, after some digging I saw somebody with a potentially related issue say that they were able to get long messages to send by lowering TX power, so I just lowered it from 30 to 10 and it works! I will let you close this issue if you want, as the solution is a workaround.

joshbowyer avatar Oct 18 '24 17:10 joshbowyer

I'm about 98% sure this is due to this hat using a crystal oscillator, and not a TCXO. Semtec's documents suggest that any packets with over 400ms of transmit time will be iffy with a XTAL design like this one.

jp-bennett avatar Oct 20 '24 18:10 jp-bennett

This sounds similar to an issue I've been having with the Waveshare SX1226 LoRa hat on a Pi3B+ Like @joshbowyer suggested, I lowered the Tx power and now my RAK4631 and T-Echo can finally get the public key from my Pi after a couple of requests.

jabez007 avatar Jan 01 '25 20:01 jabez007