Duty cycle
Duty Cycle
De duty cycle is het percentage van de tijd dat een node mag zenden. Dit is belangrijk voor eerlijk netwerkgebruik en wettelijke naleving.
Wat is duty cycle?
Duty cycle wordt uitgedrukt als een percentage:
duty_cycle = (zendtijd / totale tijd) × 100%
Voorbeeld:
- Een node zendt 6 seconden per minuut
- Duty cycle = 6/60 × 100% = 10%
Waarom is het belangrijk?
Regelgeving
In veel landen gelden wettelijke limieten voor hoeveel tijd je op bepaalde frequenties mag zenden. Dit voorkomt dat één apparaat de hele band bezet houdt.
Eerlijk netwerkgebruik
In een mesh-netwerk moeten alle nodes de kans krijgen om te zenden. Zonder duty cycle beperking kunnen "luidruchtige" nodes andere nodes overstemmen.
Betrouwbaarheid
Lagere duty cycles betekenen minder collisions en betere pakketaflevering.
Wettelijke limieten per regio
Europa (868 MHz)
| Subband | Frequentie | Duty cycle limiet |
|---|---|---|
| g | 868.0 - 868.6 MHz | 1% |
| g1 | 868.7 - 869.2 MHz | 0.1% |
| g2 | 869.4 - 869.65 MHz | 10% |
| g3 | 869.7 - 870.0 MHz | 1% |
Let op: De meeste LoRa netwerken gebruiken de g2 subband (869.525 MHz) vanwege de 10% limiet.
Verenigde Staten (915 MHz)
De FCC hanteert geen strikte duty cycle limiet voor de 915 MHz ISM-band. In plaats daarvan gelden:
- Maximaal zendvermogen (1W EIRP)
- Frequency hopping of spread spectrum vereisten
Andere regio's
| Regio | Band | Opmerkingen |
|---|---|---|
| Australië/Nieuw-Zeeland | 915 MHz | Vergelijkbaar met VS |
| Japan | 920 MHz | LBT verplicht |
| Wereldwijd | 433 MHz | Vaak striktere limieten |
Duty cycle in MeshCore
MeshCore implementeert duty cycle via de airtime factor:
effectieve_duty_cycle = 1 / (1 + airtime_factor) × 100%
| Airtime factor | Duty cycle | Voldoet aan |
|---|---|---|
| 0 | 100% | Geen limiet |
| 1 | 50% | - |
| 2 | 33% | Standaard |
| 9 | 10% | EU g2 subband |
| 99 | 1% | EU g/g3 subband |
Configuratie:
set af 9 voor 10% duty cycle (EU-compliant)
Hoe wordt het afgedwongen?
Na elke transmissie berekent de firmware een verplichte wachttijd:
wachttijd = zendtijd × airtime_factor
Voorbeeld met af=9:
- Pakket zenden duurt 100ms
- Wachttijd = 100ms × 9 = 900ms
- Totale cyclus = 100ms + 900ms = 1000ms
- Duty cycle = 100/1000 = 10%
De firmware weigert te zenden totdat de wachttijd verstreken is.
Relatie met andere mechanismen
| Mechanisme | Functie |
|---|---|
| Airtime factor | Bepaalt de wachttijd na transmissie |
| Interference Threshold | Wacht extra als kanaal bezet is (LBT) |
| txdelay | Voegt willekeurige vertraging toe aan flood verkeer |
Deze mechanismen werken samen maar stapelen niet op dezelfde manier:
- Airtime factor is de minimale wachttijd
- Interference threshold kan extra wachttijd toevoegen
- txdelay voegt willekeurige vertraging toe voor anti-collision
Duty cycle meten
Gebruik stats-radio om je werkelijke zendtijd te zien:
tx_air_secs toont de totale zendtijd sinds opstarten.
Om je gemiddelde duty cycle te berekenen:
duty_cycle = tx_air_secs / uptime_secs × 100%
Veelgemaakte fouten
Te lage airtime factor
Met af=0 of af=1 kun je in Europa de wettelijke limieten overschrijden, vooral bij veel netwerkactiviteit.
Alleen vertrouwen op airtime factor
De airtime factor garandeert alleen de maximale duty cycle. Bij weinig verkeer zul je ver onder de limiet blijven. Bij constant verkeer bereik je het maximum.
Verkeerde frequentie voor regio
Controleer dat je op de juiste frequentie zit voor je regio:
- EU: 869.525 MHz (g2 subband, 10% limiet)
- VS: 910.525 MHz of 915 MHz band
Best practices
- EU gebruikers: Gebruik minimaal
af=9voor 10% duty cycle - VS gebruikers: Lagere waarden zijn wettelijk toegestaan, maar hogere waarden verbeteren netwerkprestaties
- Drukke netwerken: Overweeg hogere airtime factor om collisions te verminderen
- Monitor regelmatig: Check
stats-radioom je werkelijke gebruik te zien