What’s the difference between a repeater and a router? They seem to do very similar things but I can’t figure out what the differences are. Thanks!
Both re-broadcast a little earlier than other nodes and are assumed to be in an advantageous location. Repeater does just repeating of packets, has very limited functionality, a router has the other meshtastic features.
Okay. Does a repeater just repeat whatever it hears without checking the validity of the data where a router would confirm the packet it received is valid before passing it along? Why would one use a repeater instead of a router? Is it a power/computing issue?
As far as I understood, repeaters are far more power efficient, as they leave off any communication except message forwarding, display is off etc. Plus they should not appear in your node list to keep the mesh view tidier.
BTW: Do not store your crypto keys on repeaters, they are not required to have them for forwarding messages and it reduces risk of your communication to be intercepted.
There is no difference as far as any packet validation, the mesh algorithm is the same on every device. Repeater and router rebroadcast a little earlier allowing them to go first from a better location than other nodes.
Repeaters could actually use more power considering they’re transmitting more often.
Hopefully someone can answer my noob questions:
- Is there a fallback logic if e.g., the repeater is no longer in range between 2 nodes? For example, let’s say I had nodes A to B to C, where B is a repeater and A is trying to communicate with C. If B goes offline, how will this work? Will A be able to directly communicate with C?
- Is there a retry logic / limit for messages if a node is out of range? For example, let’s say I send a message from A to B, and B walks just one step out of range. Will A start retrying, and if so, for how long?
Repeaters and routers don’t have any extra routing logic other than rebroadcasting a little sooner than regular nodes.
To answer your specific questions:
- If A is in range of C, then yes, they will still communicate directly. If B is not necessary, it will simply not be used to hop over.
- A will retry three times quickly after each other (see Mesh Broadcast Algorithm | Meshtastic). If B is out of range for a longer time, you could use the Store & Forward module to overcome this. Note that this module is still work in progress and requires an ESP32 device with PSRAM.