From 309a090958810e22b3fc200fa18171e9e986abc8 Mon Sep 17 00:00:00 2001 From: jirogit Date: Tue, 24 Mar 2026 22:06:14 -0700 Subject: [PATCH] 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. --- src/helpers/BaseChatMesh.h | 9 ++++++++- variants/rak_wismesh_tag/platformio.ini | 3 ++- variants/wio-tracker-l1/platformio.ini | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/helpers/BaseChatMesh.h b/src/helpers/BaseChatMesh.h index b39e7363..9382fd7c 100644 --- a/src/helpers/BaseChatMesh.h +++ b/src/helpers/BaseChatMesh.h @@ -5,7 +5,14 @@ #include #include -#define MAX_TEXT_LEN (10*CIPHER_BLOCK_SIZE) // must be LESS than (MAX_PACKET_PAYLOAD - 4 - CIPHER_MAC_SIZE - 1) +// JP_STRICT: limit MAX_TEXT_LEN to keep TX time under 4s (ARIB STD-T108) +// SF12/BW125/CR4-8: 60 bytes total packet = ~3809ms, overhead ~44 bytes +// leaving 16 bytes (1*CIPHER_BLOCK_SIZE) for text payload +#ifdef JP_STRICT + #define MAX_TEXT_LEN (1*CIPHER_BLOCK_SIZE) // ~16 chars, TX <= 4s for JP +#else + #define MAX_TEXT_LEN (10*CIPHER_BLOCK_SIZE) // must be LESS than (MAX_PACKET_PAYLOAD - 4 - CIPHER_MAC_SIZE - 1) +#endif #include "ContactInfo.h" diff --git a/variants/rak_wismesh_tag/platformio.ini b/variants/rak_wismesh_tag/platformio.ini index 081cb0d0..7091917c 100644 --- a/variants/rak_wismesh_tag/platformio.ini +++ b/variants/rak_wismesh_tag/platformio.ini @@ -25,6 +25,7 @@ build_flags = ${nrf52_base.build_flags} -D PIN_BUZZER=21 -D PIN_BOARD_SDA=PIN_WIRE_SDA -D PIN_BOARD_SCL=PIN_WIRE_SCL + -D JP_STRICT build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak_wismesh_tag> + @@ -118,4 +119,4 @@ build_flags = ; -D MESH_PACKET_LOGGING=1 -D MESH_DEBUG=1 build_src_filter = ${rak4631.build_src_filter} - +<../examples/simple_sensor> \ No newline at end of file + +<../examples/simple_sensor> diff --git a/variants/wio-tracker-l1/platformio.ini b/variants/wio-tracker-l1/platformio.ini index 6c1e8f63..0329dd18 100644 --- a/variants/wio-tracker-l1/platformio.ini +++ b/variants/wio-tracker-l1/platformio.ini @@ -16,6 +16,7 @@ build_flags = ${nrf52_base.build_flags} -D SX126X_RX_BOOSTED_GAIN=1 -D PIN_OLED_RESET=-1 -D GPS_BAUD_RATE=9600 + -D JP_STRICT build_src_filter = ${nrf52_base.build_src_filter} + +<../variants/wio-tracker-l1>