You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 23, 2021. It is now read-only.
I think I mentioned it often enough but this evolved from the LoRa-ATtiny-Node project and thus has a few unusual design choices.
One of them is the blocking nature of the SendPacket method. SlimLoRa blocks until the reception of a packet in one of the windows or until RX2 timed out. This is because SlimLoRa has no interrupt support for the radio chip. The ATtiny85 had only 5 usable data ports with none left to be used as an interrupt receiver. Thus SlimLoRa times the start of the RX windows and polls the radio chip to know if a packet was received or if the window timed out.
I am not sure if it's wise to stick with this behavior but it's one of the simplifications made to be able to run it on an underpowered uc without interrupts.
This wasn't that much of a problem with V2. However now with V3 and the 5 second RX1 window it might matter. Other than that it's possible to change the RX1 delay with V3:
Dynamic temporary change (uses a MAC command in the current session): ttn-lw-cli d set <APP_ID> <DEV_ID> --mac-state.desired-parameters.rx1-delay RX_DELAY_2
Permanent change (valid from the next Join): ttn-lw-cli d set <APP_ID> <DEV_ID> --mac-settings.desired-rx1-delay RX_DELAY_2
I think I mentioned it often enough but this evolved from the LoRa-ATtiny-Node project and thus has a few unusual design choices.
One of them is the blocking nature of the SendPacket method. SlimLoRa blocks until the reception of a packet in one of the windows or until RX2 timed out. This is because SlimLoRa has no interrupt support for the radio chip. The ATtiny85 had only 5 usable data ports with none left to be used as an interrupt receiver. Thus SlimLoRa times the start of the RX windows and polls the radio chip to know if a packet was received or if the window timed out.
I am not sure if it's wise to stick with this behavior but it's one of the simplifications made to be able to run it on an underpowered uc without interrupts.
This wasn't that much of a problem with V2. However now with V3 and the 5 second RX1 window it might matter. Other than that it's possible to change the RX1 delay with V3: