Open DylanGWork opened 1 year ago
Update:
I am still getting some fails, some surprise me such as the confirmed uplink re-transmission as I can test that independently with the LNS and it appears to work, others I'm unsure if they are included in this library such as section 5.9 RX window test?
These were the results I got using LoRaWAN 1.0.3 on EU868: <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
Please give a clear and concise description of the problem you're facing and what you'd like help with. Hi all,
I am having trouble passing LoRaWAN Compliance testing on V1.0.3 on a Redwoodcomms compliance tester.
It does not pass many of the tests our consultant is performing even though when I test these items through our LNS I get the expected outcomes (from what I can see, example a confirmed packet sends a confirmed packet etc)
Environment I am using this library so that I am compatible with ESP32 and ESP-IDF, however I am here since the compliance source files should operate the same in this environment as an Arduino environment. I am operating in EU868, AU915 and US915 regions using a custom made board (note we have no issues with any LoRaWAN components, my issues appear to be entirely with entering compliance mode and completing the automated test)
Additionally, Looking through this document: https://lora-alliance.org/wp-content/uploads/2020/11/lora_alliance_certification_deep_dive.pdf It would appear that the transmission interval needs to be 5s and it needs to exit after 192 frames. I added some code to exit compliance testing once we have had 192 uplinks without a downlink. The way I have setup the compliance mode has the transmission interval at 2s which may be too fast.
I've added in the linkcheck code listed here and it works great (at least during my validation through our LNS).
Since the ESP32 library I use goes into deepsleep, I have implemented a simple while loop to prevent the MCU from going into deepsleep during Test Mode activation using this before it goes to sleep to catch it during Test mode and go to sleep once test exits: while(LMIC_Compliance.state != 0) //While compliance mode is not in idle state { compliance_run(); //Print Variables related to compliance to keep an eye on things //printf("LMIC_Compliance.state %d", LMIC_Compliance.state); }
I also see that the join-request function exits compliance activation mode after joining, I don't know if this is correct? (I don't have the redwoodcomms module myself unfortunately, so my testing is limited...)
Summarizing into questions:
Cheers, Dylan