Skip to content

feat: Add Brazil Regulatory Domain (ANATEL 915MHz)#1

Draft
FilipeJrd wants to merge 1 commit intomasterfrom
codex/add-brazil-regulatory-domain-ism_br_915
Draft

feat: Add Brazil Regulatory Domain (ANATEL 915MHz)#1
FilipeJrd wants to merge 1 commit intomasterfrom
codex/add-brazil-regulatory-domain-ism_br_915

Conversation

@FilipeJrd
Copy link
Copy Markdown
Owner

Motivation

  • Provide a Brazil-specific 900MHz regulatory domain that satisfies ANATEL requirements (>35 FHSS channels to allow up to 30dBm) while excluding the mobile/CEL band (907.5–915 MHz).
  • Avoid linear frequency arithmetic that could place channels inside the disallowed central gap by using an explicit, deterministic channel table.
  • Expose the new domain to build/config tools so it can be selected at compile time.

Description

  • Added a new FHSS domain entry BR915 and a domain index DOMAIN_ISM_BR_915, and introduced a static frequency lookup FHSSfreqsISM_BR_915[] with 40 explicit channel frequencies split across 902–907.5 MHz and 915–926.9 MHz, plus a selector flag FHSSuseFreqTableBR915 (changes in src/lib/FHSS/FHSS.cpp and src/lib/FHSS/FHSS.h).
  • Modified FHSS selection helpers (FHSSgetInitialFreq, FHSSgetNextFreq, Gemini path) to use the BR915 lookup table when the new domain is active, falling back to existing linear interpolation for other domains (src/lib/FHSS/FHSS.h).
  • Updated target validation and local compile helpers to include the new define Regulatory_Domain_ISM_BR_915 and added an example entry in src/user_defines.txt (src/include/targets.h, src/user_defines.txt).
  • Added the new domain option to the Python tooling so ism_br_915 maps to the new domain index and the build flag processing sets the correct domain id (src/python/binary_configurator.py, src/python/build_flags.py).

Testing

  • Ran python -m py_compile src/python/build_flags.py src/python/binary_configurator.py and the files compiled successfully.
  • Ran an automated validation script that parsed FHSSfreqsISM_BR_915[] and confirmed there are 40 entries and that none fall inside 907500000–915000000 (result: count 40, in_gap False).

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant