Commit graph

2714 commits

Author SHA1 Message Date
Wessel Nieboer
0a13ac7fc7
Default button polarity to active-LOW across all firmware types
Nearly all LoRa boards use a boot button that pulls to ground when
pressed.
2026-04-04 13:19:13 +02:00
Andy Shinn
fb726e48c2
Allows us to have custom PlatformIO envs and configs (#2234)
Some checks are pending
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Waiting to run
PR Build Check / build (Heltec_v3_repeater) (push) Waiting to run
PR Build Check / build (Heltec_v3_room_server) (push) Waiting to run
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Waiting to run
PR Build Check / build (PicoW_repeater) (push) Waiting to run
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Waiting to run
PR Build Check / build (RAK_4631_repeater) (push) Waiting to run
PR Build Check / build (RAK_4631_room_server) (push) Waiting to run
PR Build Check / build (wio-e5-mini_repeater) (push) Waiting to run
2026-04-04 17:34:29 +13:00
Liam Cottle
0afd5a9336
Merge pull request #2244 from jirogit/fix/generic-espnow-advert-name
fix: correct ADVERT_NAME for Generic ESPNow room server (was 'Heltec Room')
2026-04-04 17:24:50 +13:00
Liam Cottle
d04ff17b8c
Merge pull request #2243 from jirogit/fix/thinknode-m5-advert-name
fix: correct ADVERT_NAME for ThinkNode M5 (was M2)
2026-04-04 17:23:44 +13:00
jirogit
6769b74df6 fix: correct ADVERT_NAME for Generic ESPNow room server (was 'Heltec Room')
env:Generic_ESPNOW_room_svr was using 'Heltec Room' as ADVERT_NAME,
causing Generic ESPNow room server nodes to advertise with the wrong
device name on the mesh.
2026-04-03 19:08:15 -07:00
jirogit
ce32d91ecb fix: correct ADVERT_NAME for ThinkNode M5 (was M2)
Repeater and Room Server environments in variants/thinknode_m5/platformio.ini
were using 'Thinknode M2' as the ADVERT_NAME, causing M5 nodes to advertise
with the wrong device name on the mesh.

- env:ThinkNode_M5_Repeater: 'Thinknode M2 Repeater' -> 'Thinknode M5 Repeater'
- env:ThinkNode_M5_room_server: 'Thinknode M2 Room Server' -> 'Thinknode M5 Room Server'
2026-04-03 18:55:39 -07:00
KPrivitt
27f732653b
Added RAK12035 Soil Moisture and Temperature Sensor (#2223)
Some checks failed
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (Heltec_v3_repeater) (push) Has been cancelled
PR Build Check / build (Heltec_v3_room_server) (push) Has been cancelled
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Has been cancelled
PR Build Check / build (PicoW_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (RAK_4631_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_room_server) (push) Has been cancelled
PR Build Check / build (wio-e5-mini_repeater) (push) Has been cancelled
2026-04-03 22:54:24 +13:00
liamcottle
8ede764104 update readme links
Some checks failed
Build and deploy Docs site to GitHub Pages / github-pages (push) Has been cancelled
2026-04-03 17:07:02 +13:00
liamcottle
a9b55f58f1 update neighbor.remove docs
Some checks failed
Build and deploy Docs site to GitHub Pages / github-pages (push) Has been cancelled
2026-04-02 23:24:39 +13:00
ripplebiz
f5c0a7440d
Merge pull request #2227 from Quency-D/fix-BME680
Some checks failed
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (Heltec_v3_repeater) (push) Has been cancelled
PR Build Check / build (Heltec_v3_room_server) (push) Has been cancelled
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Has been cancelled
PR Build Check / build (PicoW_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (RAK_4631_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_room_server) (push) Has been cancelled
PR Build Check / build (wio-e5-mini_repeater) (push) Has been cancelled
Fixed the initialization error of the BME680 sensor.
2026-04-02 15:51:26 +11:00
Liam Cottle
d0450bca99
Merge pull request #2228 from liamcottle/refactor/gat562-mesh-watch
Refactor GAT562 Mesh Watch
2026-04-02 17:19:12 +13:00
Quency-D
2cbe0c0398 Fixed the initialization error of the BME680 sensor. 2026-04-02 10:24:17 +08:00
Liam Cottle
b934daa990
Merge pull request #2007 from khudson/r1neo
Some checks are pending
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Waiting to run
PR Build Check / build (Heltec_v3_repeater) (push) Waiting to run
PR Build Check / build (Heltec_v3_room_server) (push) Waiting to run
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Waiting to run
PR Build Check / build (PicoW_repeater) (push) Waiting to run
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Waiting to run
PR Build Check / build (RAK_4631_repeater) (push) Waiting to run
PR Build Check / build (RAK_4631_room_server) (push) Waiting to run
PR Build Check / build (wio-e5-mini_repeater) (push) Waiting to run
Muzi Works R1 Neo support
2026-04-02 00:36:44 +13:00
Liam Cottle
fcad0dc7ed
Apply suggestion from @weebl2000
Co-authored-by: Wessel <wessel@weebl.me>
2026-04-02 00:27:58 +13:00
Liam Cottle
8fc9e1736c
Apply suggestion from @weebl2000
Co-authored-by: Wessel <wessel@weebl.me>
2026-04-02 00:23:52 +13:00
Liam Cottle
73fc967388
Merge pull request #2172 from LitBomb/patch-24
Some checks failed
Build and deploy Docs site to GitHub Pages / github-pages (push) Has been cancelled
add multibyte FAQ, reference awesome-meshcore community projects, minor changes
2026-04-01 22:16:02 +13:00
liamcottle
b37201db89 double press top button to go back on gat562 mesh watch 2026-04-01 21:51:32 +13:00
liamcottle
1a897a3b5f use top button to wake hibernated gat562 mesh watch 2026-04-01 21:50:33 +13:00
jirogit
9e03dc6366 JP: update MAX_TEXT_LEN limits based on measured airtimes, add getMaxGroupTextLen()
Measured actual TimeOnAir via RadioLib getTimeOnAir() on RAK WisMesh Tag
(SF12/BW125, CR4/5-8) to verify ARIB STD-T108 4-second TX limit compliance.

DM limits (getMaxTextLen):
  CR4/5: 64 bytes (3874ms)
  CR4/6: 48 bytes (3874ms)
  CR4/7: 32 bytes (3678ms)
  CR4/8: 24 bytes (3547ms)

Channel message limits (getMaxGroupTextLen):
  CR4/5: 64 bytes (3710ms)
  CR4/6: 48 bytes (3678ms)
  CR4/7: 39 bytes (3907ms)
  CR4/8: 29 bytes (3809ms)

DM and channel packets differ by 1 byte overhead, warranting separate
limits for CR4/7 and CR4/8. Non-JP returns default 160 bytes unchanged.

Also apply dynamic limit to sendCommandData() and sendGroupMessage()
via getMaxTextLen()/getMaxGroupTextLen() instead of hardcoded MAX_TEXT_LEN.
2026-04-01 00:39:19 -07:00
jirogit
56a2d93aa4 Fix build for non-FreeRTOS and non-SX1262 platforms
- Replace vTaskDelay(1) with YIELD_TASK() macro for platform compatibility
  (FreeRTOS: vTaskDelay, others: delay)
- Make getCodingRate() and getFreqMHz() non-pure virtual with defaults
  (default CR4/8, default freq 0.0f for unknown platforms)
- Add getCodingRate() and getFreqMHz() to CustomSTM32WLxWrapper

All environments now build successfully.
2026-03-31 21:57:05 -07:00
jirogit
4276d84070 Remove TX duration debug logging
_tx_start_ms and TX duration logging were added for 4-second
airtime verification and are no longer needed.
2026-03-31 21:57:05 -07:00
jirogit
c725b82e77 Replace JP_STRICT build flag with runtime frequency detection
JP LBT mode now activates automatically based on operating frequency:
- CH25: 920.800MHz
- CH26: 921.000MHz
- CH27: 921.200MHz (ARIB STD-T108, 200kHz grid)

Changes:
- Add isJapanMode() to RadioLibWrapper using getFreqMHz()
- Add getFreqMHz() to CustomSX1262Wrapper and CustomLR1110Wrapper
- Remove #ifdef JP_STRICT throughout, replaced by isJapanMode()
- Remove -D JP_STRICT build flag from platformio.ini
- MAX_TEXT_LEN dynamically determined by CR at runtime via getMaxTextLen()

No build flags required: JP compliance activates automatically
when device is configured to Japan 3 frequencies.
2026-03-31 21:57:05 -07:00
jirogit
73ec37657c Add getCodingRate() to CustomLR1110 and CustomLR1110Wrapper
LR1110 has codingRate as protected field in LR_common.h, so
getCodingRate() is implemented in CustomLR1110 class directly,
and exposed via CustomLR1110Wrapper override.

This enables dynamic MAX_TEXT_LEN calculation for T1000-E
under JP_STRICT mode.
2026-03-31 21:57:05 -07:00
jirogit
d7045a1020 Fix missing newline at end of file in CustomSX1262.h 2026-03-31 21:57:05 -07:00
jirogit
2d11d9fedb Add exponential backoff for channel busy detection
Replace fixed random(8000-22000ms) backoff with exponential backoff:
- 1st busy: 3-6s
- 2nd busy: 6-12s
- 3rd+ busy: 12-20s (capped)
- Reset counter on channel free

Results (48-byte simultaneous DM, JP SF12/BW125/CR4-5):
- 3/3 success, delivered within 0:23-0:45
- Previous fixed backoff: 1:03-3:55
2026-03-31 21:57:05 -07:00
jirogit
c5bacd7de9 JP_STRICT: dynamic MAX_TEXT_LEN based on runtime CR value
Instead of compile-time LORA_CR define, MAX_TEXT_LEN is now determined
at runtime by reading the actual coding rate from the radio hardware.

Added getMaxTextLen() to RadioLibWrapper and Dispatcher:
- CR4/5: 48 bytes (~16 JP chars, TX ~3808ms)
- CR4/6: 32 bytes (~10 JP chars)
- CR4/7: 24 bytes (~8 JP chars)
- CR4/8: 16 bytes (~5 JP chars, default)

getCodingRate() added to CustomSX1262Wrapper to read codingRate
from RadioLib PhysicalLayer at runtime.

Tested: 48-byte limit with LORA_CR=5, 16-byte limit with LORA_CR=8.
2026-03-31 21:57:05 -07:00
jirogit
eb58523775 JP_STRICT: adjust MAX_TEXT_LEN based on LORA_CR setting
MAX_TEXT_LEN is automatically selected based on the LORA_CR build flag
defined in platformio.ini (e.g. -D LORA_CR=5).

CR4/5: 48 bytes (~16 JP chars, TX ~3808ms)
CR4/6: 32 bytes (~10 JP chars)
CR4/7: 24 bytes (~8 JP chars)
CR4/8: 16 bytes (~5 JP chars, default)

To enable CR4/5 for Japan, add -D LORA_CR=5 to your board's
build_flags in platformio.ini. Set LORA_CR=5 for WioTrackerL1 and RAK WisMesh Tag.
2026-03-31 21:57:05 -07:00
jirogit
f4519b19c8 JP_STRICT: use absolute -80dBm RSSI threshold for LBT (ARIB STD-T108)
Replace relative threshold (_noise_floor + _threshold) with absolute
-80dBm as specified by ARIB STD-T108 for carrier sense detection.

Previous relative threshold (~-99dBm) caused false busy detection
from environmental noise. -80dBm matches the legal requirement and
reduces spurious backoff.
2026-03-31 21:57:05 -07:00
jirogit
7bae0d8405 Add JP_STRICT 5ms continuous RSSI sensing before TX (ARIB STD-T108)
Under JP_STRICT mode, add energy-based carrier sensing loop before CAD:
- Sample RSSI continuously for >= 5ms before each TX attempt
- If RSSI exceeds threshold at any point, trigger random backoff
- ARIB STD-T108 requires energy-based sensing; LoRa CAD alone is
  insufficient as it only detects LoRa preambles

This satisfies the minimum 5ms continuous sensing requirement for
the 920.6-922.2 MHz zone (specified low power radio, LBT mode).

Test results (JP LoRa SF12/BW125/CR4-8, simultaneous DM):
- 16-char: 2/2 success, delivered within 1:03-1:50
- 1-char:  3/4 success, delivered within 0:46-2:11
           (shorter airtime reduces RSSI detection window)
2026-03-31 21:57:05 -07:00
jirogit
309a090958 Add JP_STRICT mode: enforce MAX_TEXT_LEN for ARIB STD-T108 compliance
JP_STRICT limits MAX_TEXT_LEN to 1*CIPHER_BLOCK_SIZE (16 bytes) to keep
TX time under 4 seconds on SF12/BW125/CR4-8 (Japan LoRa settings).

SF12/BW125/CR4-8 airtime:
  60 bytes total packet = ~3809ms (within 4s limit)
  packet overhead ~44 bytes, leaving 16 bytes for text payload

Enabled only for WioTrackerL1 and RAK_WisMesh_Tag builds.
2026-03-31 21:57:05 -07:00
Wessel Nieboer
52b9d877a6 Use hardware channel activity detection for checking interference 2026-03-31 21:57:05 -07:00
uncle lit
633db082d1
fixed typos and refined multibyte sections.
fixed typos and refined multibyte sections.
2026-03-31 12:22:11 -07:00
Liam Cottle
856df241ee
Merge pull request #2138 from MGJ520/dev_GAT562_Mesh_Watch13
Some checks failed
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (Heltec_v3_repeater) (push) Has been cancelled
PR Build Check / build (Heltec_v3_room_server) (push) Has been cancelled
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Has been cancelled
PR Build Check / build (PicoW_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (RAK_4631_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_room_server) (push) Has been cancelled
PR Build Check / build (wio-e5-mini_repeater) (push) Has been cancelled
Support for GAT562 Mesh Watch13 device
2026-03-31 21:54:38 +13:00
Liam Cottle
7fc32639a6
Merge pull request #2202 from terminalvelocity23/fix/discover-neighbors-public
Move sendNodeDiscoverReq() from private to public to enable post-boot neighbor discovery
2026-03-31 21:27:27 +13:00
ripplebiz
f8fcc1717a
Merge pull request #2190 from brianwiddas/espnow-missing-methods
Add missing methods in ESPNOWRadio()
2026-03-31 15:24:27 +11:00
terminalvelocity23
08de3fb01f Make sendNodeDiscoverReq() public for post-boot discovery 2026-03-30 22:35:05 +03:00
liamcottle
30963231ce update docs logo
Some checks failed
Build and deploy Docs site to GitHub Pages / github-pages (push) Has been cancelled
2026-03-31 00:51:15 +13:00
Brian Widdas
811ac1cd02 Add missing methods in ESPNOWRadio()
ESP-NOW radios (ie, Generic_ESPNOW_* variants) do not compile due to
missing methods

Changes in January 2026 (019bbf74) to add additional stats (receive errors)
to CMD_GET_STATS was not implemented in the ESPNOWRadio() class

Changes in March 2026 (9a95e25e) to add setRxBoostedGainMode to all devices
rather than just SX1262/SX1268 were not applied to the ESPNowRadio() driver

Specifically, this change adds the following to ESPNOWRadio()
* getPacketsRecvErrors()    - always returns 0
* getRxBoostedGainMode()    - always returns false
* setRxBoostedGainMode()    - does nothing
2026-03-30 04:25:08 +01:00
ripplebiz
bdeb7d8053
Merge pull request #1982 from weebl2000/radiolib7.6.0
Some checks are pending
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Waiting to run
PR Build Check / build (Heltec_v3_repeater) (push) Waiting to run
PR Build Check / build (Heltec_v3_room_server) (push) Waiting to run
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Waiting to run
PR Build Check / build (PicoW_repeater) (push) Waiting to run
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Waiting to run
PR Build Check / build (RAK_4631_repeater) (push) Waiting to run
PR Build Check / build (RAK_4631_room_server) (push) Waiting to run
PR Build Check / build (wio-e5-mini_repeater) (push) Waiting to run
Bump RadioLib to 7.6.0
2026-03-30 14:02:08 +11:00
Scott Powell
efc875b1b6 * more notes about number_allocations 2026-03-30 13:53:16 +11:00
Scott Powell
6fb8e60b5f * number_allocations.md data-type range changes 2026-03-30 11:53:27 +11:00
uncle lit
ea6ec53709
Fix TOC insertion by Markdown All in One VS Code extension
Fixed an extra TOC jump link inserted by VSCode Markdown All in One VS Code extension.
2026-03-29 16:22:41 -07:00
Scott Powell
515af35b13 * docs changes for PAYLOAD_TYPE_GRP_DATA 2026-03-29 06:33:35 +11:00
Jim Schrempp
7268d7d0d3
Update RAK 4631 entry in FAQ on new bootloader
Removed "see note" from RAK 4631 entry in FAQ.
2026-03-27 15:51:36 -07:00
uncle lit
aad1cf81da
add multibyte FAQ, reference awesome-meshcore community projects, minor changes
- Add multi byte FAQ
- Reword amped radio output setting numbers
- Clarify repeater ID collision including distance, supercede https://github.com/meshcore-dev/MeshCore/pull/1478
- Reference awesome meshcore for community projects. Supercede https://github.com/meshcore-dev/MeshCore/pull/1893
2026-03-27 11:39:29 -07:00
Snayler
bfdd5fb571
Fix formatting of ADC_MULTIPLIER definition 2026-03-27 01:23:04 +00:00
Snayler
4b25f0a3df
Add correct ADC_MULTIPLIER definition to Heltec Wireless Paper 2026-03-27 01:19:46 +00:00
Snayler
50e9456f28
Define ADC_MULTIPLIER for adjustable ADC calculation 2026-03-27 01:17:39 +00:00
MGJ
76be69dcde Reduce unnecessary compilation time 2026-03-26 16:32:00 +08:00
ripplebiz
517f2f1efd
Merge pull request #1961 from weebl2000/dutycycle-command
Some checks failed
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (Heltec_v3_repeater) (push) Has been cancelled
PR Build Check / build (Heltec_v3_room_server) (push) Has been cancelled
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Has been cancelled
PR Build Check / build (PicoW_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Has been cancelled
PR Build Check / build (RAK_4631_repeater) (push) Has been cancelled
PR Build Check / build (RAK_4631_room_server) (push) Has been cancelled
PR Build Check / build (wio-e5-mini_repeater) (push) Has been cancelled
Add get/set dutycycle command
2026-03-26 11:54:41 +11:00