* Add Meshnology W12 (WiFi LoRa 32 V5) variant with LR2021 radio ESP32-S3R8 + 16 MB flash + Semtech LR2021 dual-band LoRa + SSD1315 OLED, Heltec V3-style pinout. Pin map comes from the vendor pin sheet and vendor Arduino demos, confirmed on hardware: I2C scan finds the OLED at 0x3C on SDA17/SCL18, and the LR2021 answers on NSS=8 SCK=9 MISO=11 MOSI=10 with BUSY=13/NRESET=12 verified by reset-pulse probing. The IRQ line needs LR2021_IRQ_DIO_NUM 8. RadioLib defaults irqDioNum to 5, but DIO5 is not bonded out on this board - the two IRQ lines are DIO7 -> IO7 and DIO8 -> IO14, established by driving each radio DIO as a GPIO output and watching which ESP32 pin followed. Left at the default, every interrupt is routed to a floating pin: RX/TX still appear to work because RadioLibInterface::pollMissedIrqs() falls back to polling the IRQ status register, but the blocking scanChannel() waits on the pin itself and never returns. A shadow pins_arduino.h is needed because the generic esp32s3 one defines RGB_BUILTIN, which pulls the Arduino RMT HAL into the link and fails against this build's FreeRTOS config. * Address review: add W12 variant metadata, trim comments Declares the custom_meshtastic_* metadata the build manifest expects. Without it the emitted .mt.json carried no hwModel, slug, display name or support level, so the board was invisible to the flasher - and board_level = extra kept it out of PR builds entirely, which is why it never appeared in this PR's board list. It now matches the W10 sibling at board_level = pr with support level 1. hwModel stays 255/PRIVATE_HW until a W12 enum lands in the protobufs. Also trims the header comments to the one-or-two-line limit in AGENTS.md; the vendor pin sheet and probing evidence live in the PR description.
27 lines
951 B
INI
27 lines
951 B
INI
; Meshnology W12 "WiFi LoRa 32 V5" - ESP32-S3R8 + LR2021 dual-band LoRa + SSD1315 OLED
|
|
; No MESHNOLOGY_W12 hardware model exists in the protobufs yet, so this reports PRIVATE_HW.
|
|
[env:meshnology_w12]
|
|
custom_meshtastic_hw_model = 255
|
|
custom_meshtastic_hw_model_slug = MESHNOLOGY_W12
|
|
custom_meshtastic_architecture = esp32-s3
|
|
custom_meshtastic_actively_supported = true
|
|
custom_meshtastic_support_level = 1
|
|
custom_meshtastic_display_name = Meshnology W12
|
|
custom_meshtastic_requires_dfu = true
|
|
custom_meshtastic_partition_scheme = 16MB
|
|
|
|
extends = esp32s3_base
|
|
board = esp32-s3-devkitc-1
|
|
board_level = pr
|
|
; ESP32-S3R8: 8 MB OPI PSRAM, 16 MB QIO flash
|
|
board_build.partitions = default_16MB.csv
|
|
board_upload.flash_size = 16MB
|
|
board_build.flash_mode = qio
|
|
board_build.psram_type = opi
|
|
board_build.arduino.memory_type = qio_opi
|
|
build_flags =
|
|
${esp32s3_base.build_flags}
|
|
-D MESHNOLOGY_W12
|
|
-D ARDUINO_USB_CDC_ON_BOOT=1
|
|
-I variants/esp32s3/meshnology-w12
|