Files
MeshCore-Solo/variants/wio-tracker-l2/platformio.ini
T
JakubandClaude Opus 5.5 b50ecc83d5 fix(wio-tracker-l2): stop the I2S clock between sounds; GPS and TCXO fixes
The speaker's I2S channel was only disabled when idle, which leaves MCLK
running. Its fractional divider (160 MHz / 39 1/16 = 4.096 MHz) makes a
comb of lines every 256 kHz: one at 869.632 MHz, in the EU narrow mesh
channel, lifted the LoRa noise floor from ~-102 to ~-85 dBm, and others
land near GPS L1 and BeiDou B1. The channel is now deleted and its pins
held low after each sound, and made again for the next one. Measured:
noise floor -102 dBm, outdoor first fix 87 s (was 620 s and more).

Also: TCXO at 3.0 V (the L2's part, as Meshtastic has it); GLONASS
enabled on the L76K after each power-up; begin() on a running receiver
no longer resets it (a reset threw away the acquisition in progress).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:54:25 +02:00

87 lines
3.0 KiB
INI

; Seeed Wio Tracker L2 - Wio-S3 module: ESP32-S3R8 + SX1262
; Board layer ported from meshcore-dev/MeshCore PR #3381 (Hacuchino-hash), whose
; pin map was derived from Seeed's Meshtastic support branch (meshtastic/firmware
; PR #10909 + device-ui `wio-l2` branch). Pre-release hardware: verify the pin
; map against a real unit.
[Wio_Tracker_L2]
extends = esp32_base
board = seeed_wio_tracker_l2
; Native USB-Serial/JTAG: the baud rate is virtual (no effect on transfer
; speed); staying at the ROM's 115200 skips esptool's post-stub baud switch,
; one less step to fail on a marginal USB link.
upload_speed = 115200
build_flags = ${esp32_base.build_flags}
${sensor_base.build_flags}
-I variants/wio-tracker-l2
-D SEEED_WIO_TRACKER_L2
-D PIN_BOARD_SDA=47
-D PIN_BOARD_SCL=48
-D PIN_USER_BTN=0
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
-D P_LORA_NSS=21
-D P_LORA_RESET=7
-D P_LORA_BUSY=8
-D P_LORA_DIO_1=9
-D P_LORA_SCLK=4
-D P_LORA_MISO=5
-D P_LORA_MOSI=6
-D SX126X_DIO2_AS_RF_SWITCH=true
-D SX126X_DIO3_TCXO_VOLTAGE=3.0 ; the L2 TCXO is a 3 V part (Meshtastic PR #11960)
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D ENV_INCLUDE_GPS=1
-D PIN_GPS_TX=18 ; L76K TX -> ESP32 RX
-D PIN_GPS_RX=17 ; L76K RX <- ESP32 TX
-D GPS_BAUD_RATE=9600
; ES8311 codec (I2C 0x18) -> class-D amp (power on expander P12) -> speaker.
; A frontend opts in with -D PIN_BUZZER=-1 -D BUZZER_I2S (genericBuzzer's
; I2S path, src/helpers/ui/buzzer.cpp) and +<helpers/ui/buzzer.cpp>.
-D PIN_I2S_MCLK=10
-D PIN_I2S_BCK=11
-D PIN_I2S_WS=12
-D PIN_I2S_DOUT=16
-D BUZZER_CODEC_ES8311=0x18
-D ENV_SKIP_GPS_DETECT=1 ; GPS is always present, powered via IO expander
; disable ALL env sensor I2C probes: this bus carries six onboard chips
; (TCA9535 0x21, AW35615 0x22, LP5814 0x2C, ADS1115 0x48, GT911 0x5D,
; ES8311 0x18) and stray probe matches can hang sensors.begin()
-D ENV_INCLUDE_AHTX0=0
-D ENV_INCLUDE_BME280=0
-D ENV_INCLUDE_BMP280=0
-D ENV_INCLUDE_SHTC3=0
-D ENV_INCLUDE_SHT4X=0
-D ENV_INCLUDE_INA3221=0
-D ENV_INCLUDE_INA219=0
-D ENV_INCLUDE_INA226=0
-D ENV_INCLUDE_INA260=0
-D ENV_INCLUDE_MLX90614=0
-D ENV_INCLUDE_VL53L0X=0
-D ENV_INCLUDE_BME680=0
-D ENV_INCLUDE_BMP085=0
-D ENV_INCLUDE_LPS22HB=0
build_src_filter = ${esp32_base.build_src_filter}
+<../variants/wio-tracker-l2>
+<helpers/sensors/*.cpp>
lib_deps =
${esp32_base.lib_deps}
${sensor_base.lib_deps}
lovyan03/LovyanGFX @ ^1.2.30 ; >=1.2.30 defines Panel_NV3031B::init_cmds itself (PR #3381 needed an ODR fix for older)
[env:Wio_Tracker_L2_repeater]
extends = Wio_Tracker_L2
build_flags =
${Wio_Tracker_L2.build_flags}
-D ADVERT_NAME='"WioL2 Repeater"'
-D ADVERT_LAT=0.0
-D ADVERT_LON=0.0
-D ADMIN_PASSWORD='"password"'
-D MAX_NEIGHBOURS=50
build_src_filter = ${Wio_Tracker_L2.build_src_filter}
+<../examples/simple_repeater/*.cpp>
lib_deps =
${Wio_Tracker_L2.lib_deps}
${esp32_ota.lib_deps}