[!IMPORTANT] TL;DR: By using RadioLib, your device is not automatically LoRaWAN-certified.
What is LoRaWAN certification?
A LoRaWAN-certified device is a device that adheres to the LoRaWAN specification down to the most tiny detail. A certificate can be granted by the LoRa Alliance alone, and can be granted to a complete (sensor) device or to an MCU running a stack that acts as a slave to a host MCU (e.g. as the LR1121 with Semtech's Modem-e firmware). Certification is a very useful selling point for your device, as it gives both the seller and the buyer confidence that the LoRaWAN-related components are well implemented and should not cause any issues.
It cannot be granted to just a library, as there are plenty of ways to screw up a library as a (power)user. 95% of the certification process is handled internally by the stack, but 5% of this is the responsibility of the user's implementation.
[!NOTE] Adherence to the specification does not necessarily mean that all recommendations are implemented. Where applicable, the recommendations are implemented into the stack. However, all recommendations that are up to the user, are the responsibility of you as a programmer. Refer to TR007.
How then is RadioLib 'pre-certified'?
The LoRa Alliance provides a self-testing tool named LCTT which is available to members of the LA. This can be used to pre-certify your device (i.e. confirm that the implementation is OK) before the LA tests your device itself. The main developer of the LoRaWAN protocol in RadioLib (@StevenCellist) is a teacher at an educational institute. This institute is a member of the LoRa Alliance, and as such, has access to the LCTT tool. With an implementation of TS009 and RadioLib (tag lorawan-pre-cert-class-a
) on a Heltec Wireless Stick Lite V3, this combination yields a PASS
for all tests applicable to Class A (EU868 and US915 were tested) for both OTAA and ABP.
Pre-certification for Class C will hopefully be added in the future.
How can I get a LoRaWAN certification for my device?
Strictly speaking, RadioLib itself cannot be certified (see above). However, by using the public functions of RadioLib's LoRaWAN stack and adhering to all regional limits (dutycycle, dwell-time) as well as persistence, your device should be certifiable without problems.
Certification is tested using TS009. You will need to implement this specification prior to submitting your device for certification. A reference implementation for TS009 in RadioLib is available from the examples.
The rest of the certification process is handled by the LA (through LA-authorized test labs) and is completely beyond the scope of RadioLib and its developers. For further information about certification by the LA, please visit the LA website. Note that getting a certification is not cheap as a solo-developer: at least €/$/£3000 assuming everything is OK.
Certification is expensive - what should I do?
As mentioned in the first paragraph: 95% is handled by the stack. As long as you simply use the public functions available as demonstrated in the examples, you will be golden. There are two very important things to keep in mind:
[!CAUTION] Adhere to dutycycle limitations at all time. Preferably, stay below it by a factor 10x because no LoRaWAN device ever should saturate its dutycycle.
[!IMPORTANT] Be a friendly neighbour and keep ADR enabled. Do not blast everyone away at SF11/SF12 which is prohibited in any other situation than when ADR is enabled. You may think that there is nobody around, but there are lots of devices talking in the unlicensed radio bands - we do not see these waves but they are always there. Think of doorbells, remote controls, private LoRa networks etc.
With these two things implemented, your device will be 100% good, just lacking the official LA stamp.