Router Mode Missing Messages

I have long suspected that setting is_router true causes the node to start missing messages. I can’t put my finger on why because the code for router mode seems to only affect power states. This weekend B8b8 and I ran a gauntlet of tests which proves that my suspicions are true.

Here is our mesh diagram.

All nodes are T-Beams with v1.2.30 on USB power. CF3 has a dummy load in place of the antenna. It has enough PCB leakage to connect with CF1 but not BN*. I can prove this by looking at the CF3 debug screen and all of BN* nodes have a hop limit of 2 meaning CF1 decremented the messages.

CF1 is set is_router true. BN6 (left) sent 8 messages in quick succession. CF3 (right) received 4 messages.

We repeated this test a few times to make sure it was repeatable. In this test, CF3 (right) only received 1 of the 8 messages. BN2 (center) received all of the messages from BN6 (left).

As a sanity check, I replaced the dummy load on CF3 with an antenna so BN6 (left) can talk direct to CF3 (right). All tests came though.

I then replaced the dummy load to CF3 (right) and set CF1 to is_router false. All test messages came though and I verified that hop limit on incoming messages was 2.

We repeated the test a few times to make sure it was consistent. Sometimes the messages came out of order, and a lot of times the ack timed out because we were sending messages quickly, but there were no dropped messages when router mode was turned off.

10 Likes

Correlation causation blah blah blah. But this is what I was seeing for several past versions too.

I have the same suspicions. Position packets passes, but not all messages are resent.

Great testing guys. Hopefully this helps pin down the issue.

1 Like

This is a great write-up. Alas, I’m going kinda slow this week but reproing this based on your description is high on my list for next week.

my approximate personal queue: Meshtastic-esp32/TODO.md at dev · geeksville/Meshtastic-esp32 · GitHub

1 Like

@geeksville I already opened a github issue. You created a duplicate :slight_smile:

1 Like

Ooh what number is the other one?

#801

Ok - I’m starting on this now (back from my ‘break’). It will take a few days or a week because I think to build upon the good debugging ya’ll did - I need to make some tooling to automate mesh testing of different topologies.

I’m going to add a mini ‘script’ into meshtastic-python that talks to multiple radios and configures them into different topologies (by telling some nodes to ignore rxes from others for testing). Then I’ll use that script to test in both where the ‘middle’ node is_router vs !is_router.

1 Like