Migrate all of the Meshtastic API attributes into the ini as a source of truth (#9214)

* Migrate all of the Meshtastic API attributes into the ini as a source of truth

* Cleanup garbage coalescing

* Another spot

* We already account for inkhud and mui

* Consolidate

* Removed them

* Boogers

* Infer

* Copying manifest should always succeed

* Remove portduino guards

* Rename

* None
This commit is contained in:
Ben Meadors
2026-01-07 15:25:38 -06:00
committed by GitHub
parent 70f909d718
commit 1a6cbb5caa
83 changed files with 934 additions and 20 deletions

View File

@@ -1,5 +1,14 @@
; First prototype eink/nrf52840/sx1262 device
[env:thinknode_m1]
custom_meshtastic_hw_model = 89
custom_meshtastic_hw_model_slug = THINKNODE_M1
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = ThinkNode M1
custom_meshtastic_images = thinknode_m1.svg
custom_meshtastic_tags = Elecrow
extends = nrf52840_base
board = ThinkNode-M1
board_check = true

View File

@@ -1,8 +1,17 @@
[env:thinknode_m3]
custom_meshtastic_support_level = 1
custom_meshtastic_images = thinknode_m3.svg
custom_meshtastic_tags = Elecrow
extends = nrf52840_base
board = ThinkNode-M3
board_check = true
debug_tool = jlink
custom_meshtastic_hw_model = 115
custom_meshtastic_hw_model_slug = THINKNODE_M3
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = Elecrow ThinkNode M3
custom_meshtastic_actively_supported = true
build_flags =
${nrf52840_base.build_flags}
-Ivariants/nrf52840/ELECROW-ThinkNode-M3

View File

@@ -1,5 +1,14 @@
; ThinkNode M6 - Outdoor Solar Power nrf52840/sx1262 device
[env:thinknode_m6]
custom_meshtastic_hw_model = 120
custom_meshtastic_hw_model_slug = THINKNODE_M6
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = false
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = ThinkNode M6
custom_meshtastic_images = thinknode_m6.svg
custom_meshtastic_tags = Elecrow
extends = nrf52840_base
board = ThinkNode-M6
board_check = true

View File

@@ -1,5 +1,13 @@
; Public Beta oled/nrf52840/sx1262 device
[env:canaryone]
custom_meshtastic_hw_model = 29
custom_meshtastic_hw_model_slug = CANARYONE
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 3
custom_meshtastic_display_name = Canary One
custom_meshtastic_tags = Canary
extends = nrf52840_base
board = canaryone
debug_tool = jlink

View File

@@ -1,5 +1,15 @@
; Promicro + E22(0)-xxxM / HT-RA62 modules board variant - DIY - with TCXO
[env:nrf52_promicro_diy_tcxo]
custom_meshtastic_hw_model = 63
custom_meshtastic_hw_model_slug = NRF52_PROMICRO_DIY
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 3
custom_meshtastic_display_name = NRF52 Pro-micro DIY
custom_meshtastic_images = promicro.svg
custom_meshtastic_tags = DIY
custom_meshtastic_requires_dfu = true
extends = nrf52840_base
board = promicro-nrf52840
build_flags = ${nrf52840_base.build_flags}

View File

@@ -1,5 +1,14 @@
; First prototype nrf52840/sx1262 device
[env:heltec-mesh-node-t114]
custom_meshtastic_hw_model = 69
custom_meshtastic_hw_model_slug = HELTEC_MESH_NODE_T114
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Heltec Mesh Node T114
custom_meshtastic_images = heltec-mesh-node-t114.svg, heltec-mesh-node-t114-case.svg
custom_meshtastic_tags = Heltec
extends = nrf52840_base
board = heltec_mesh_node_t114
board_level = pr

View File

@@ -1,8 +1,20 @@
; First prototype nrf52840/sx1262 device
[env:heltec-mesh-pocket-5000]
custom_meshtastic_support_level = 1
custom_meshtastic_images = heltec_mesh_pocket.svg
custom_meshtastic_tags = Heltec
extends = nrf52840_base
board = heltec_mesh_pocket
debug_tool = jlink
custom_device_hw_model = 94
custom_meshtastic_hw_model = 94
custom_meshtastic_hw_model_slug = HELTEC_MESH_POCKET
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = Heltec Mesh Pocket
custom_meshtastic_actively_supported = true
custom_meshtastic_variant = 5000mAh
custom_meshtastic_key = heltec_mesh_pocket
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
build_flags = ${nrf52840_base.build_flags}
@@ -31,6 +43,13 @@ lib_deps =
[env:heltec-mesh-pocket-5000-inkhud]
extends = nrf52840_base, inkhud
board = heltec_mesh_pocket
custom_meshtastic_hw_model = 94
custom_meshtastic_hw_model_slug = HELTEC_MESH_POCKET
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = Heltec Mesh Pocket
custom_meshtastic_actively_supported = true
custom_meshtastic_variant = 5000mAh InkHUD
custom_meshtastic_key = heltec_mesh_pocket
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket> ${inkhud.build_src_filter}
build_flags =
${inkhud.build_flags}
@@ -45,9 +64,20 @@ lib_deps =
; First prototype nrf52840/sx1262 device
[env:heltec-mesh-pocket-10000]
custom_meshtastic_support_level = 1
custom_meshtastic_images = heltec_mesh_pocket.svg
custom_meshtastic_tags = Heltec
extends = nrf52840_base
board = heltec_mesh_pocket
debug_tool = jlink
custom_meshtastic_hw_model = 94
custom_meshtastic_hw_model_slug = HELTEC_MESH_POCKET
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = Heltec Mesh Pocket
custom_meshtastic_actively_supported = true
custom_meshtastic_variant = 10000mAh
custom_meshtastic_key = heltec_mesh_pocket
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
build_flags = ${nrf52840_base.build_flags}
@@ -76,6 +106,13 @@ lib_deps =
[env:heltec-mesh-pocket-10000-inkhud]
extends = nrf52840_base, inkhud
board = heltec_mesh_pocket
custom_meshtastic_hw_model = 94
custom_meshtastic_hw_model_slug = HELTEC_MESH_POCKET
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = Heltec Mesh Pocket
custom_meshtastic_actively_supported = true
custom_meshtastic_variant = 10000mAh InkHUD
custom_meshtastic_key = heltec_mesh_pocket
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket> ${inkhud.build_src_filter}
build_flags =
${inkhud.build_flags}

View File

@@ -19,6 +19,15 @@ lib_deps =
bblanchon/ArduinoJson@6.21.4
[env:heltec-mesh-solar]
custom_meshtastic_hw_model = 108
custom_meshtastic_hw_model_slug = HELTEC_MESH_SOLAR
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = false
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Heltec MeshSolar
custom_meshtastic_images = heltec-mesh-solar.svg
custom_meshtastic_tags = Heltec
extends = heltec_mesh_solar_base
build_flags = ${heltec_mesh_solar_base.build_flags}
-DSPI_INTERFACES_COUNT=1

View File

@@ -1,4 +1,13 @@
[env:muzi-base]
custom_meshtastic_hw_model = 93
custom_meshtastic_hw_model_slug = MUZI_BASE
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = muzi BASE
custom_meshtastic_images = muzi_base.svg
custom_meshtastic_tags = muzi
extends = nrf52840_base
board = muzi-base
build_flags = ${nrf52840_base.build_flags}

View File

@@ -1,5 +1,14 @@
; First prototype eink/nrf52840/sx1262 device
[env:nano-g2-ultra]
custom_meshtastic_hw_model = 18
custom_meshtastic_hw_model_slug = NANO_G2_ULTRA
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 2
custom_meshtastic_display_name = Nano G2 Ultra
custom_meshtastic_images = nano-g2-ultra.svg
custom_meshtastic_tags = B&Q
extends = nrf52840_base
board = nano-g2-ultra
debug_tool = jlink

View File

@@ -1,5 +1,14 @@
; The R1 Neo board
[env:r1-neo]
custom_meshtastic_hw_model = 101
custom_meshtastic_hw_model_slug = MUZI_R1_NEO
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = muzi R1 Neo
custom_meshtastic_images = muzi_r1_neo.svg
custom_meshtastic_tags = muzi
extends = nrf52840_base
board = r1-neo
board_check = true

View File

@@ -1,5 +1,14 @@
; Firmware for the WisMesh HUB RAK2560, including a onewire module to talk to the RAK 9154 solar battery.
[env:rak2560]
custom_meshtastic_hw_model = 22
custom_meshtastic_hw_model_slug = WISMESH_HUB
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = RAK WisMesh Repeater
custom_meshtastic_images = rak2560.svg
custom_meshtastic_tags = RAK
extends = nrf52840_base
board = wiscore_rak4631
board_check = true

View File

@@ -1,5 +1,15 @@
; The very slick RAK wireless RAK 4631 / 4630 board - Unified firmware for 5005/19003, with or without OLED RAK 1921
[env:rak3401-1watt]
custom_meshtastic_hw_model = 117
custom_meshtastic_hw_model_slug = RAK3401
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = RAK3401 1W
custom_meshtastic_images = rak3401.svg
custom_meshtastic_tags = RAK
custom_meshtastic_requires_dfu = true
extends = nrf52840_base
board = wiscore_rak4631
board_check = true

View File

@@ -1,5 +1,14 @@
; The very slick RAK wireless RAK 4631 / 4630 board - Unified firmware for 5005/19003, with or without OLED RAK 1921
[env:rak4631]
custom_meshtastic_hw_model = 9
custom_meshtastic_hw_model_slug = RAK4631
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = RAK WisBlock 4631
custom_meshtastic_images = rak4631.svg, rak4631_case.svg
custom_meshtastic_tags = RAK
extends = nrf52840_base
board = wiscore_rak4631
board_level = pr

View File

@@ -1,5 +1,14 @@
; NomadStar Meteor Pro based on RAK4631 with RGBW LED LP5562 support
[env:rak4631_nomadstar_meteor_pro]
custom_meshtastic_hw_model = 96
custom_meshtastic_hw_model_slug = NOMADSTAR_METEOR_PRO
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = NomadStar Meteor Pro
custom_meshtastic_images = meteor_pro.svg
custom_meshtastic_tags = NomadStar
extends = nrf52840_base
board = wiscore_rak4631
board_check = true

View File

@@ -1,8 +1,17 @@
; The very slick RAK wireless RAK 4631 / 4630 board - Unified firmware for 5005/19003, with or without OLED RAK 1921
[env:rak_wismeshtag]
custom_meshtastic_support_level = 1
custom_meshtastic_images = rak_wismesh_tag.svg
custom_meshtastic_tags = RAK
extends = nrf52840_base
board = wiscore_rak4631
board_check = true
custom_meshtastic_hw_model = 105
custom_meshtastic_hw_model_slug = WISMESH_TAG
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = RAK WisMesh Tag
custom_meshtastic_actively_supported = true
build_flags = ${nrf52840_base.build_flags}
-I variants/nrf52840/rak_wismeshtag
-D WISMESH_TAG

View File

@@ -1,5 +1,14 @@
; The very slick RAK wireless RAK10701 Field Tester device. Note you will have to flash to Arduino bootloader to use this firmware. Be aware touch is not currently working.
[env:rak_wismeshtap]
custom_meshtastic_hw_model = 84
custom_meshtastic_hw_model_slug = WISMESH_TAP
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = RAK WisMesh Tap
custom_meshtastic_images = rak-wismeshtap.svg
custom_meshtastic_tags = RAK
extends = nrf52840_base
board = wiscore_rak4631
build_flags = ${nrf52840_base.build_flags}

View File

@@ -1,4 +1,13 @@
[env:seeed_solar_node]
custom_meshtastic_hw_model = 95
custom_meshtastic_hw_model_slug = SEEED_SOLAR_NODE
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Seeed SenseCAP Solar Node
custom_meshtastic_images = seeed_solar.svg
custom_meshtastic_tags = Seeed
board = seeed_solar_node
extends = nrf52840_base
;board_level = extra

View File

@@ -1,4 +1,14 @@
[env:seeed_wio_tracker_L1]
custom_meshtastic_hw_model = 99
custom_meshtastic_hw_model_slug = SEEED_WIO_TRACKER_L1
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Seeed Wio Tracker L1
custom_meshtastic_images = wio_tracker_l1_case.svg
custom_meshtastic_tags = Seeed
custom_meshtastic_requires_dfu = true
board = seeed_wio_tracker_L1
extends = nrf52840_base
build_flags = ${nrf52840_base.build_flags}

View File

@@ -1,4 +1,13 @@
[env:seeed_wio_tracker_L1_eink]
custom_meshtastic_hw_model = 100
custom_meshtastic_hw_model_slug = SEEED_WIO_TRACKER_L1_EINK
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Seeed Wio Tracker L1 E-Ink
custom_meshtastic_images = wio_tracker_l1_eink.svg
custom_meshtastic_tags = Seeed
board = seeed_wio_tracker_L1
extends = nrf52840_base
;board_level = extra

View File

@@ -1,5 +1,14 @@
; Seeed Xiao BLE: https://wiki.seeedstudio.com/XIAO_BLE/
[env:seeed_xiao_nrf52840_kit]
custom_meshtastic_hw_model = 88
custom_meshtastic_hw_model_slug = XIAO_NRF52_KIT
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Seeed Xiao NRF52840 Kit
custom_meshtastic_images = seeed_xiao_nrf52_kit.svg
custom_meshtastic_tags = Seeed
extends = nrf52840_base
board = xiao_ble_sense
board_level = pr

View File

@@ -1,5 +1,14 @@
; Using original screen class
[env:t-echo-lite]
custom_meshtastic_hw_model = 109
custom_meshtastic_hw_model_slug = T_ECHO_LITE
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = false
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = LILYGO T-Echo Lite
custom_meshtastic_images = techo_lite.svg
custom_meshtastic_tags = LilyGo
extends = nrf52840_base
board = t-echo
board_check = true

View File

@@ -1,5 +1,14 @@
; Using original screen class
[env:t-echo]
custom_meshtastic_hw_model = 7
custom_meshtastic_hw_model_slug = T_ECHO
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = LILYGO T-Echo
custom_meshtastic_images = t-echo.svg
custom_meshtastic_tags = LilyGo
extends = nrf52840_base
board = t-echo
board_level = pr

View File

@@ -1,7 +1,16 @@
[env:tracker-t1000-e]
custom_meshtastic_support_level = 1
custom_meshtastic_images = tracker-t1000-e.svg
custom_meshtastic_tags = Seeed
extends = nrf52840_base
board = tracker-t1000-e
board_level = pr
custom_meshtastic_hw_model = 71
custom_meshtastic_hw_model_slug = TRACKER_T1000_E
custom_meshtastic_architecture = nrf52840
custom_meshtastic_display_name = Seeed SenseCAP T1000-E
custom_meshtastic_actively_supported = true
build_flags = ${nrf52840_base.build_flags}
-Ivariants/nrf52840/tracker-t1000-e
-Isrc/platform/nrf52/softdevice

View File

@@ -1,5 +1,15 @@
; The red tracker Dev Board with the WM1110 module
[env:wio-tracker-wm1110]
custom_meshtastic_hw_model = 21
custom_meshtastic_hw_model_slug = WIO_WM1110
custom_meshtastic_architecture = nrf52840
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 3
custom_meshtastic_display_name = Seeed Wio WM1110 Tracker
custom_meshtastic_images = wio-tracker-wm1110.svg
custom_meshtastic_tags = Seeed
custom_meshtastic_requires_dfu = true
extends = nrf52840_base
board = wio-tracker-wm1110
build_flags = ${nrf52840_base.build_flags}