-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Add a new frequency range for EU SRD area with adaptive DC #8681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
this requires a) meshtastic/protobufs#814 and b) further discussion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for the EU 866MHz RFID band (EU_866 region) with adaptive duty cycle enforcement based on device role. The implementation introduces a 2.5% duty cycle for mobile devices and 10% for fixed router devices, following ETSI EN 302 208 specifications.
Key changes:
- New EU_866 region definition with 4 channels at 865.7/866.3/866.9/867.5 MHz
- Adaptive duty cycle function that adjusts based on device role (router vs mobile)
- Enforcement of 125kHz bandwidth requirement with fallback to LiteFast preset
- Updated channel calculation logic to properly handle the 475kHz channel spacing
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/mesh/RadioInterface.cpp | Adds EU_866 region definition, implements getEffectiveDutyCycle() function, adds LITE_FAST preset support, enforces bandwidth restrictions, and improves channel calculation logic |
| src/mesh/MeshRadio.h | Declares getEffectiveDutyCycle() function with documentation |
| src/modules/AdminModule.cpp | Replaces direct dutyCycle access with getEffectiveDutyCycle() call |
| src/mesh/Router.cpp | Updates duty cycle enforcement to use getEffectiveDutyCycle() |
| src/graphics/draw/MenuHandler.cpp | Updates duty cycle check to use getEffectiveDutyCycle() |
| src/airtime.cpp | Updates airtime utilization checks to use getEffectiveDutyCycle() |
| src/DisplayFormatters.cpp | Adds display name support for LITE_FAST modem preset |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Is this even legal according to the linked ETSI document? AFAIK Meshtastic node would not even pass "battery assisted tag" definition, not to mention interrogator role. Edit: EU direction is specific too: |
|
Leaving this as separate comment for visibility: of you look at section 47b in EU directive table we may be able to use new channels there in 868 band (pending bandwidth discussion):
|
We might wanna consider switching telemetry and maybe even position off for this band to operate with the reduced duty cycle.