Closed JackGruber closed 5 years ago
@JackGruber, sorry you're having problems. Can you please advise what platform you're using, which sketch, and which version of the LMIC?
Good morning @terrillmoore
i have tried the example code ttn-abp with PlatformIO and Arduino. As hardware i use a TTGO Lora T-beam (Board iheltec_wifi_lora_32 in PlatformIO and Arduino)
The only modification is LMIC_disableChannel for Channel 1 to 9, the TX_INTERVAL to 10. and print every 5 sec
Serial.print(F("Duty Avail: "));
Serial.println(osticks2ms(LMIC.globalDutyAvail));
Serial.print(F("Duty Rate: "));
Serial.println(osticks2ms(LMIC.globalDutyRate));
platformio.ini
build_flags =
-D ARDUINO_LMIC_PROJECT_CONFIG_H_SUPPRESS
-D CFG_eu868=1
-D LMIC_DEBUG_LEVEL=2
-D CFG_sx1276_radio=1
-D LMIC_PRINTF_TO=Serial
lmic_project_config.h for Arduino
#define CFG_eu868 1
#define CFG_sx1276_radio 1
#define LMIC_DEBUG_LEVEL 2
LMIC Version 3.0.99
Hi,
LMIC timing is very fragile. It's not a good idea to run tests of timing with LMIC_DEBUG_LEVEL set to anything other than 0. It make things worse.
There is no global duty cycle on EU868; that's done on a per-channel basis. Since you're on SF7, I think it's possible that you're not hitting the limit on channel 0, which is 1%. That looks like a 70 or 80 ms packet, and 1% of every 12 seconds (based on uplink logs) says that you'd be able to TX up to 120ms.
To test global duty cycle, you have to either call an API or update the variables directly. Since global duty cycle rate is zero, you are not rate limiting.
Some notes:
The best script at the moment for timing investigations is the compliance script, because it's very careful not to do anything that slows down the operation of the device at critical moments.
I don't test ABP -- no time, and I don't ever use ABP. For repros, OTAA is better, because the network sends a number of important things at JOIN, and we are sure to get the data. There may be things that were not formerly needed for OTAA, but are now needed. So if there's a problem with ABP, best to test with OTAA and compare results.
Disabling channels in the default set is no longer supported, as this is tested by compliance (even for ABP devices). I think that might have been added between 3.0.99 and 3.0.99.5.
In any case, if you're really using 3.0.99, please update to 3.0.99.5 and retest; there are updates which fix bugs, including timing bugs.
Note that the compliance sketch won't actually go into compliance mode unless you have a tester upstream; it will just idle sending messages periodically.
Thanks! --Terry
Hi Terry,
i try the newer version and OTA and get you a feedback.
Alex
Hi Terry,
with the latest version from git the OTAA sketch works. I was thinking the limit is 0.1% ... and the 30 seconds Fair Access Policy is a soft TTN limit.
https://www.thethingsnetwork.org/docs/lorawan/duty-cycle.html https://avbentem.github.io/lorawan-airtime-ui/ttn/eu868/13
I'm going to read some more about the Duty limit.
@JackGruber glad to hear it, thanks for following up!
Hi,
it looks to me like the duty limit is no longer working?! I have set up da transmition of two byte for every 10 second and about every 10 seconds, the data was sent. Shouldn't there be a transmission every 130 seconds or I'm missing something?
Regards Alex