# OTAA best practice: how to not join every time?

**URL:** <https://www.thethingsnetwork.org/forum/t/otaa-best-practice-how-to-not-join-every-time/14601>\
**Category:** End Devices (Nodes)\
**Created:** [May 28, 2018, 2:53pm UTC](https://www.thethingsnetwork.org/forum/t/otaa-best-practice-how-to-not-join-every-time/14601 "2018-05-28T14:53:28Z")\
**Posts on this page:** 1\
**Showing post:** 14

<div class="post-metadata">

**Author:** ![arjanvanb](https://www.thethingsnetwork.org/forum/user_avatar/www.thethingsnetwork.org/arjanvanb/32/46626_2.png) [@arjanvanb](https://www.thethingsnetwork.org/forum/u/arjanvanb)\
**Post date:** [June 2, 2018, 12:07pm UTC](https://www.thethingsnetwork.org/forum/t/otaa-best-practice-how-to-not-join-every-time/14601/14 "2018-06-02T12:07:54Z")

</div>

> [@brulath](#):
>
> Some things to monitor:
> 
> - Uplink and downlink counters must be tracked
> - Network and app session keys, device ID, etc. must be tracked
> - Adaptive data rate state including target data rate, ADR ack counter, etc. must be tracked
> - Joins can provide channel plans which must be tracked
> - MAC commands which change settings/channels/frequencies/rx frequencies/max EIRP/etc. must be tracked
> - MAC commands which require a response (i.e. request battery level/RSSI) must either be serviced immediately or tracked
> - _(there’s more I can’t recall off-hand)_

And:

- Channel usage for proper channel hopping.
- Channel usage for regional duty cycle limitations.
- Very much part of your second-last bullet, but just to make it explicit for future readers: pending confirmations for confirmed downlinks.
- For LoRaWAN 1.0.x: maybe all used values for the OTAA DevNonce; see [OTAA shows "Activation DevNonce not valid: already used"](https://www.thethingsnetwork.org/forum/t/otaa-shows-activation-devnonce-not-valid-already-used/5079).
- For LoRaWAN 1.1x: [the OTAA join counter (nonce)](https://www.thethingsnetwork.org/forum/t/otaa-shows-activation-devnonce-not-valid-already-used/5079/18).

As an aside, [since version 1.0.0](https://www.thethingsnetwork.org/forum/t/first-lorawan-certification-program-pass/875/2) the RN2483 `mac save` command [saves much more](http://ww1.microchip.com/downloads/en/DeviceDoc/40001784C.pdf#page=23), and _does_ include the frame counters, but no mention of the pending MAC command responses. (But maybe more recent versions even include that?)

See also [How to persist LMIC OTAA parameters with an ESP32?](https://www.thethingsnetwork.org/forum/t/how-to-persist-otaa-paramenters-with-an-esp32/35032)

---

_[View the full topic](https://www.thethingsnetwork.org/forum/t/otaa-best-practice-how-to-not-join-every-time/14601)._
