Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
fa48d4f
variants: Nano G2 Ultra: Use common implementation of startOTAUpdate()
fschrempf Dec 22, 2025
57fa1ba
variants: Wio WM1110: Use common implementation of startOTAUpdate()
fschrempf Dec 22, 2025
578d55b
variants: Thinknode M3/M6: Use common Nrf52Board class
fschrempf Dec 22, 2025
24a4b99
variants: Heltec Mesh Solar: Use DC/DC regulator
fschrempf Dec 19, 2025
3b0870e
variants: Heltec T114: Use DC/DC regulator
fschrempf Dec 19, 2025
041f67a
variants: Ikoka NRF: Use DC/DC regulator
fschrempf Dec 19, 2025
bf93d6c
variants: Lilygo T-Echo (Lite): Use DC/DC regulator
fschrempf Dec 19, 2025
465b481
variants: Mesh Pocket: Use DC/DC regulator
fschrempf Dec 19, 2025
137eed3
variants: Minewsemi ME25LS01: Use DC/DC regulator
fschrempf Dec 19, 2025
80ca720
variants: ProMicro: Use DC/DC regulator
fschrempf Dec 19, 2025
1651db8
variants: Sensecap Solar: Use DC/DC regulator
fschrempf Dec 19, 2025
686d887
variants: T1000E: Add OTA support
fschrempf Dec 20, 2025
4f46ec7
Remove NRF52BoardOTA class and integrate it into NRF52Board
fschrempf Dec 20, 2025
266e489
remove serial debug logging from t3s3 sx1276 companion usb
recrof Jan 12, 2026
324eab9
cleanup ikoka variants and add all supported sensors
recrof Jan 12, 2026
77257a3
Merge pull request #1377 from recrof/t3s3-sx1276-fix
liamcottle Jan 12, 2026
4643f4d
Merge pull request #1378 from recrof/ikoka-cleanup
liamcottle Jan 13, 2026
a48b185
DISABLE_DEBUG=1 env variable to build.sh
liquidraver Jan 11, 2026
06c4ca1
added variant rak3401
chrisdavis2110 Jan 13, 2026
56eb5b0
Merge pull request #1373 from liquidraver/buildwithoutdebug
liamcottle Jan 14, 2026
4575800
Turn on register 0x8B5 LSB for improved RX, turn off boosted gain
Socalix Jan 14, 2026
31f98bd
Fix Ikoka Stick builds
mannkind Jan 15, 2026
403ce1d
contacts: granular autoadd and overwrite-oldest
oltaco Jan 12, 2026
741564d
refactor: add populateContactFromAdvert()
oltaco Jan 12, 2026
df66870
bootstrap RTC from contact.lastmod and improve slot overwrite logic
oltaco Jan 12, 2026
d41a968
Merge pull request #1379 from oltaco/improved-contact-mgmt
ripplebiz Jan 15, 2026
23f1f2a
Merge pull request #1399 from mannkind/patch-1
liamcottle Jan 15, 2026
1156567
fix: bump max contacts for v3 companion usb
recrof Jan 15, 2026
7d1f522
Merge pull request #1402 from recrof/v3-usb-contact-fix
liamcottle Jan 15, 2026
c61fde9
always send PUSH_CODE_NEW_ADVERT when advert was not added to contacts[]
oltaco Jan 16, 2026
b919119
only write contacts when changed
oltaco Jan 16, 2026
5c7b28f
Change the Station G2 default tx power
WattleFoxxo Jan 18, 2026
5e4b33a
Merge pull request #4 from chrisdavis2110/var-rak3401
chrisdavis2110 Jan 18, 2026
ed5d290
updated variant rak3401
chrisdavis2110 Jan 18, 2026
bf07778
Merge pull request #1408 from oltaco/improved-contact-mgmt
ripplebiz Jan 19, 2026
56ab59d
Merge pull request #1387 from chrisdavis2110/rak3401
ripplebiz Jan 19, 2026
e51a2d1
Update T114 I2C pins
etienn01 Jan 19, 2026
a7cadc8
Fix Serial and TX LED not working on Heltec Wireless Paper V1.2
Snayler Jan 20, 2026
d68bc74
Remove _serial->isConnected() logic from buzzer notifications
nakoeppen Jan 21, 2026
46e4cc0
Revert boosted gain flag to original
Socalix Jan 22, 2026
b09ddfc
thinknode m1: add missing getLocationProvider() override
oltaco Jan 22, 2026
ea85486
thinknode m1: add missing GPS page to new UI
oltaco Jan 22, 2026
36f230d
thinknode m1: allow GPS to sync clock
oltaco Jan 22, 2026
bccefd6
Merge pull request #1445 from oltaco/thinknode_m1-gps-fix
liamcottle Jan 22, 2026
32230f6
Merge pull request #1415 from WattleFoxxo/StationG2-tx-power-changes
ripplebiz Jan 23, 2026
537acd7
Merge pull request #1437 from nakoeppen/dev
ripplebiz Jan 23, 2026
616eb57
Merge pull request #1428 from etienn01/update-t114-i2c
ripplebiz Jan 23, 2026
fc61018
Fix the issue of inconsistent I2C usage in the environmental sensor.
Quency-D Jan 23, 2026
3c27132
* T1000e BLE - default node name is now the MAC address
Jan 23, 2026
1f59e52
nRF52840 Power Management - Phase 1 - Boot Low VBAT Voltage Lockout
entr0p1 Jan 23, 2026
9dd52bd
build fix for room server with MESH_DEBUG=1
oltaco Jan 23, 2026
e7c72c5
initial port of rak3112
recrof Jan 23, 2026
266f6ee
fixed battery measurement
recrof Jan 23, 2026
b853c7c
Merge pull request #1459 from oltaco/fix-roomserver-debug
liamcottle Jan 24, 2026
e744adf
Merge pull request #1413 from entr0p1/powermgt-nrf52840-v2
ripplebiz Jan 24, 2026
c7b3d34
Merge pull request #1456 from Quency-D/fix-env-i2c
ripplebiz Jan 24, 2026
f46f0d0
* WIO tracker l1: BLE companion. default node name now MAC address
Jan 24, 2026
6336bd5
refactor ClientACL and CommonCLI, add ClientACL::clear()
oltaco Jan 24, 2026
988287b
recalc ClientACL shared_secrets at startup
oltaco Jan 24, 2026
96ef5e5
allow set prv.key from remote, validate new prv.key
oltaco Jan 24, 2026
153bcdc
Merge pull request #1457 from oltaco/remote-set-prvkey
ripplebiz Jan 25, 2026
f0269c9
Merge pull request #1465 from recrof/rak3112-port
ripplebiz Jan 25, 2026
a5f3766
Merge pull request #1429 from Snayler/dev
ripplebiz Jan 25, 2026
c16bcd2
Expose a counter to track RadioLib receive errors
Jan 25, 2026
7ae1642
* region names now don't need '#' prefix. (SHA still adds a '#' for b…
Jan 25, 2026
c7ac16f
Add v4-tft code.
Quency-D Jan 26, 2026
4b7684c
Merge pull request #1477 from Cisien/dev
ripplebiz Jan 26, 2026
ed589f9
boot adverts are now zero hop instead of flood
liamcottle Jan 26, 2026
d13bc44
added build flag to enable/disable boot advert
liamcottle Jan 26, 2026
7e24bd0
increase maximum flood advert interval to 168 hours (7 days)
liamcottle Jan 26, 2026
f1be7d0
Merge pull request #1488 from liamcottle/firmware/boot-adverts
ripplebiz Jan 26, 2026
0805a47
Add output of region cmd via lora cli
mattzzw Jan 24, 2026
d81616e
Merge pull request #1476 from mattzzw/region_via_LoRa
ripplebiz Jan 27, 2026
5a20e86
support for meshtiny
oltaco Jan 27, 2026
5627500
* new "clkreboot" CLI command
Jan 27, 2026
5ff6e81
* Fix: RegionMap build fail on _max
Jan 27, 2026
fedf703
Merge pull request #1486 from Quency-D/fix-heltec-v4-tft
ripplebiz Jan 27, 2026
c0194d8
Merge pull request #1492 from oltaco/meshtiny
ripplebiz Jan 27, 2026
3f3978c
Merge branch 'dev' into nrf-dcdc
fdlamotte Jan 27, 2026
ac79b38
Merge pull request #1246 from fschrempf/nrf-dcdc
fdlamotte Jan 27, 2026
4a83a66
build fix for meshtiny (nrf52board ota refactor)
oltaco Jan 27, 2026
3845a1c
Fix incorrect INA260 address in debug message
piotrmalek Jan 27, 2026
9665fee
Update runArgs in devcontainer.json
jbrazio Jan 27, 2026
58a3782
Merge pull request #1497 from oltaco/meshtiny-build-fix
ripplebiz Jan 27, 2026
edeafde
Fix: Correct validation logic in isValidName function
jbrazio Jan 27, 2026
4e1e8bb
Add a cli command reference document
Jan 27, 2026
3fc736e
Merge pull request #1499 from Meshcore-Portugal/jbrazio/2026_2768c833
liamcottle Jan 28, 2026
93367b9
Merge pull request #1493 from Cisien/dev
ripplebiz Jan 28, 2026
d5a73b2
fix: build errors because of changes in NRF52 base class
recrof Jan 28, 2026
f418724
moved pindefs from board file to variant.h
recrof Jan 28, 2026
dd2a904
Refactor display scaling definitions for HELTEC_VISION_MASTER_T190
litruv Jan 28, 2026
8f605f8
Merge pull request #1507 from recrof/rak3401-board-fix
liamcottle Jan 28, 2026
629adc2
Merge pull request #1508 from recrof/rak4631-cleanup
liamcottle Jan 28, 2026
f7e54ea
Add LilyGO T-Beam 1W Support
stevenlafl Jan 28, 2026
44e7c09
Add battery min/max voltage parameter support
stevenlafl Jan 28, 2026
a9a8299
Set LilyGO T-Beam 1W to use TX0 3.0V (within reference +2.85V~+3.15V)
stevenlafl Jan 28, 2026
465776d
* ver 1.12.0
Jan 29, 2026
3a7ccc0
fixed build errors and typos/inconsistencies
recrof Jan 29, 2026
2a321b5
renamed board files
recrof Jan 29, 2026
acca73f
Merge pull request #1524 from recrof/thinknode-m3-m6-fixes
fdlamotte Jan 29, 2026
31fbb67
Merge branch 'dev' into heltecv4-register1
Socalix Jan 29, 2026
c345f1d
Revert "Remove _serial->isConnected() logic from buzzer notifications"
recrof Jan 29, 2026
e50fe31
Merge pull request #1528 from recrof/revert-1437-dev
liamcottle Jan 29, 2026
e60fb14
Merge pull request #1500 from Meshcore-Portugal/jbrazio/2026_03a6aa94
ripplebiz Jan 30, 2026
cf7d95c
Merge pull request #1509 from stevenlafl/tbeam-1w
ripplebiz Jan 30, 2026
c7eea39
fix: remove esp_wifi.h from esp32board.h
oltaco Jan 30, 2026
019bbf7
Add recv_errors to CMD_GET_STATS STATS_TYPE_PACKETS response
agessaman Jan 30, 2026
06a83c0
Merge pull request #1531 from agessaman/add-recv-errors-stats
liamcottle Jan 30, 2026
c786cfe
Add KISS Modem firmware
ViezeVingertjes Jan 31, 2026
c5b1d30
t114: remove extra DCDC enable
oltaco Jan 31, 2026
e6e1b81
add DataStore::deleteBlobByKey()
oltaco Jan 27, 2026
31ba971
only store advblob when adding/updating contacts
oltaco Jan 27, 2026
8d5eaf5
add makeBlobPath inline helper for esp32
oltaco Jan 27, 2026
b5248fa
Revert "Merge pull request #1428 from etienn01/update-t114-i2c"
jbrazio Jan 31, 2026
1bcb52b
Add new commands and responses for RSSI, channel status, airtime, noi…
ViezeVingertjes Jan 31, 2026
240b5ea
Refactor KissModem to integrate radio and sensor management directly,…
ViezeVingertjes Jan 31, 2026
2b754d4
cli_commands.md: `region` available via remote cli in 1.12.0
mattzzw Jan 31, 2026
852c0b0
Merge pull request #1547 from oltaco/t114-remove-extra-dcdcen
ripplebiz Feb 1, 2026
f231347
Merge pull request #1512 from litruv/dev
ripplebiz Feb 1, 2026
13cfc9a
Merge pull request #1498 from piotrmalek/fix-env-sensor-manager
ripplebiz Feb 1, 2026
699d1cd
Merge pull request #1495 from oltaco/esp32-advblob-removal
ripplebiz Feb 1, 2026
a342ab8
nrf52: allow repeater to sleep when idle
oltaco Feb 1, 2026
2239307
Enable I2C sensors and EnvironmentSensorManager for Heltec T114
pinkolin Feb 1, 2026
ab99466
Merge pull request #1549 from Meshcore-Portugal/jbrazio/t114-fix
ripplebiz Feb 2, 2026
e15503d
Fix low power consumption issues
Quency-D Feb 2, 2026
f0ba14f
Remove sync word handling from KissModem.
ViezeVingertjes Feb 2, 2026
84e68cf
initial port of M5Stack Unit C6L, update pioarduino to newer bugfix r…
recrof Feb 2, 2026
e03f311
Merge pull request #1545 from ViezeVingertjes/kiss-modem-firmware
ripplebiz Feb 3, 2026
598489b
refactor ui with ring buffer and display most recent
oltaco Jan 26, 2026
2360259
Merge pull request #1487 from oltaco/refactor-ui-with-ringbuffer
liamcottle Feb 4, 2026
0fb5703
fix(kiss): periodic noise floor calibration and AGC reset
agessaman Feb 4, 2026
4b9d546
Merge pull request #1532 from oltaco/esp32board.h-removewifi
ripplebiz Feb 5, 2026
76a46a7
Merge pull request #1562 from oltaco/nrf52-sleep-repeater
ripplebiz Feb 5, 2026
f7e92a7
Merge pull request #1398 from Socalix/heltecv4-register1
ripplebiz Feb 5, 2026
f0aa12f
Merge remote-tracking branch 'pikolin/T114_sensors' into 2026/t114-se…
jbrazio Feb 5, 2026
5cb26b9
Refactor Heltec T114 sensor management
jbrazio Feb 5, 2026
1847333
Merge remote-tracking branch 'upstream/dev' into 2026/t114-sensors
jbrazio Feb 5, 2026
c0b81b9
Clean up comments on kiss noise floor changes.
agessaman Feb 5, 2026
d0720c6
Allow negative tx power
weebl2000 Jan 3, 2026
0b1fd58
Fix double claim, eliminate dead code at compile time
weebl2000 Feb 6, 2026
6502067
Merge pull request #1591 from agessaman/fix-kiss-noise-floor
ripplebiz Feb 7, 2026
c1c9848
Merge pull request #1596 from jbrazio/2026/t114-sensors
ripplebiz Feb 7, 2026
bcb7a80
Merge pull request #1578 from recrof/m5stack-unit-c6l
ripplebiz Feb 7, 2026
5dcc377
Rewrite KISS modem to be fully spec-compliant
ViezeVingertjes Feb 6, 2026
f78617d
Add periodic noise floor calibration and AGC reset
ViezeVingertjes Feb 6, 2026
203d86f
Update documentation.
ViezeVingertjes Feb 6, 2026
02ddc05
Reorganise KISS protocol to close gaps.
ViezeVingertjes Feb 6, 2026
1af013c
Clarify data frame limitations in KISS modem documentation.
ViezeVingertjes Feb 6, 2026
f445b5a
fix(kiss_modem): improve RX delivery and noise floor sampling
agessaman Feb 7, 2026
49e7516
Add KISS UART support
ViezeVingertjes Feb 6, 2026
7982d1c
Use high-bit convention for hardware response codes
ViezeVingertjes Feb 7, 2026
5ccd99e
Add toggleable per-packet signal reporting
ViezeVingertjes Feb 7, 2026
362b5eb
Update protocol docs for new response codes and signal reporting
ViezeVingertjes Feb 7, 2026
00b44c4
Remove redundant send/complete/finished callbacks, use Radio interfac…
ViezeVingertjes Feb 7, 2026
5157daf
Remove individual HW_RESP_* defines, use HW_RESP() macro directly
ViezeVingertjes Feb 7, 2026
f6ebbd9
Remove redundant locals in handleSetRadio
ViezeVingertjes Feb 7, 2026
c4c287d
Bridge always has work (prevents sleep)
weebl2000 Feb 7, 2026
776131e
simplify kiss noise floor sampling
agessaman Feb 7, 2026
e8646f5
Parse as signed int
weebl2000 Feb 7, 2026
fcfbb45
Refactor environment names and build flags for RAK variants
jbrazio Feb 7, 2026
10eacc4
Merge pull request #1316 from weebl2000/allow-negative-tx
liamcottle Feb 7, 2026
31a2e74
Correct manufacturer name 'Elecrow ThinkNode M5'
thanegill Feb 8, 2026
736ddbf
Merge pull request #1620 from thanegill/patch-2
liamcottle Feb 8, 2026
f6fc056
Merge pull request #1609 from weebl2000/bridge-always-has-work
ripplebiz Feb 8, 2026
b1094c2
Merge pull request #1616 from jbrazio/2026/raknorm
liamcottle Feb 8, 2026
e4ef6db
Merge pull request #2 from agessaman/fix-simplify-kiss-noise-floor
ViezeVingertjes Feb 8, 2026
3ff1394
build.sh: add list and -l to list firmwares available to build.
thanegill Feb 8, 2026
9efb7cb
Merge pull request #2 from weebl2000/pr-1570-fix-heltec-v4-power
Quency-D Feb 9, 2026
248c310
Merge pull request #1605 from ViezeVingertjes/kiss-modem-spec-compliance
ripplebiz Feb 9, 2026
3f33455
Merge pull request #1570 from Quency-D/fix-heltec-power-consumption
ripplebiz Feb 9, 2026
bafa2cc
fix estimated timeout for multi byte path traces
liamcottle Feb 10, 2026
7d7e88e
Merge pull request #1651 from liamcottle/fix/path-trace-timeout
liamcottle Feb 10, 2026
4944a46
Merge pull request #1638 from thanegill/build_sh-list
liamcottle Feb 10, 2026
d11d8ea
Merge branch 'meshcore-dev:dev' into dev
mattzzw Feb 10, 2026
e418b0c
Merge pull request #1557 from mattzzw/dev
liamcottle Feb 10, 2026
87235d9
Replace remaining hardcoded button polarity checks with USER_BTN_PRESSED
weebl2000 Feb 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@
},
"runArgs": [
"--privileged",
// arch tty* is owned by uucp (986)
// debian tty* is owned by uucp (20) - no change needed
"--group-add=986",
"--network=host",
"--volume=/dev/bus/usb:/dev/bus/usb:ro"
"--volume=/dev/bus/usb:/dev/bus/usb:ro",
// arch tty* is owned by uucp (986)
// debian tty* is owned by dialout (20)
"--group-add=20",
"--group-add=986"
],
"postCreateCommand": {
"platformio": "pipx install platformio"
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,11 @@ For developers;
- Clone and open the MeshCore repository in Visual Studio Code.
- See the example applications you can modify and run:
- [Companion Radio](./examples/companion_radio) - For use with an external chat app, over BLE, USB or WiFi.
- [KISS Modem](./examples/kiss_modem) - Serial KISS protocol bridge for host applications. ([protocol docs](./docs/kiss_modem_protocol.md))
- [Simple Repeater](./examples/simple_repeater) - Extends network coverage by relaying messages.
- [Simple Room Server](./examples/simple_room_server) - A simple BBS server for shared Posts.
- [Simple Secure Chat](./examples/simple_secure_chat) - Secure terminal based text communication between devices.
- [Simple Sensor](./examples/simple_sensor) - Remote sensor node with telemetry and alerting.

The Simple Secure Chat example can be interacted with through the Serial Monitor in Visual Studio Code, or with a Serial USB Terminal on Android.

Expand Down
74 changes: 74 additions & 0 deletions boards/meshtiny.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"build": {
"arduino": {
"ldscript": "nrf52840_s140_v6.ld"
},
"core": "nRF5",
"cpu": "cortex-m4",
"extra_flags": "-DARDUINO_NRF52840_FEATHER -DNRF52840_XXAA",
"f_cpu": "64000000L",
"hwids": [
[
"0x239A",
"0x8029"
],
[
"0x239A",
"0x0029"
],
[
"0x239A",
"0x002A"
],
[
"0x239A",
"0x802A"
]
],
"usb_product": "Meshtiny",
"mcu": "nrf52840",
"variant": "meshtiny",
"bsp": {
"name": "adafruit"
},
"softdevice": {
"sd_flags": "-DS140",
"sd_name": "s140",
"sd_version": "6.1.1",
"sd_fwid": "0x00B6"
},
"bootloader": {
"settings_addr": "0xFF000"
}
},
"connectivity": [
"bluetooth"
],
"debug": {
"jlink_device": "nRF52840_xxAA",
"svd_path": "nrf52840.svd",
"openocd_target": "nrf52840-mdk-rs"
},
"frameworks": [
"arduino",
"freertos"
],
"name": "Meshtiny",
"upload": {
"maximum_ram_size": 248832,
"maximum_size": 815104,
"speed": 115200,
"protocol": "nrfutil",
"protocols": [
"jlink",
"nrfjprog",
"nrfutil",
"stlink"
],
"use_1200bps_touch": true,
"require_upload_port": true,
"wait_for_upload_port": true
},
"url": "https://shop.mtoolstec.com/product/meshtiny",
"vendor": "MTools Tec"
}
72 changes: 72 additions & 0 deletions boards/rak3401.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"build": {
"arduino": {
"ldscript": "nrf52840_s140_v6.ld"
},
"core": "nRF5",
"cpu": "cortex-m4",
"extra_flags": "-DARDUINO_NRF52840_FEATHER -DNRF52840_XXAA",
"f_cpu": "64000000L",
"hwids": [
[
"0x239A",
"0x8029"
],
[
"0x239A",
"0x0029"
],
[
"0x239A",
"0x002A"
],
[
"0x239A",
"0x802A"
]
],
"usb_product": "WisCore RAK3401 Board",
"mcu": "nrf52840",
"variant": "WisCore_RAK3401_Board",
"bsp": {
"name": "adafruit"
},
"softdevice": {
"sd_flags": "-DS140",
"sd_name": "s140",
"sd_version": "6.1.1",
"sd_fwid": "0x00B6"
},
"bootloader": {
"settings_addr": "0xFF000"
}
},
"connectivity": [
"bluetooth"
],
"debug": {
"jlink_device": "nRF52840_xxAA",
"svd_path": "nrf52840.svd"
},
"frameworks": [
"arduino"
],
"name": "WisCore RAK3401 Board",
"upload": {
"maximum_ram_size": 248832,
"maximum_size": 815104,
"speed": 115200,
"protocol": "nrfutil",
"protocols": [
"jlink",
"nrfjprog",
"nrfutil",
"stlink"
],
"use_1200bps_touch": true,
"require_upload_port": true,
"wait_for_upload_port": true
},
"url": "https://www.rakwireless.com",
"vendor": "RAKwireless"
}
50 changes: 50 additions & 0 deletions boards/t_beam_1w.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"memory_type": "qio_opi"
},
"core": "esp32",
"extra_flags": [
"-DBOARD_HAS_PSRAM",
"-DLILYGO_TBEAM_1W",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_USB_MODE=0",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"psram_type": "opi",
"hwids": [
[
"0x303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "lilygo_tbeam_1w"
},
"connectivity": [
"wifi",
"bluetooth",
"lora"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "LilyGo TBeam-1W",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"require_upload_port": true,
"speed": 921600
},
"url": "http://www.lilygo.cn/",
"vendor": "LilyGo"
}
39 changes: 34 additions & 5 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ sh build.sh <command> [target]

Commands:
help|usage|-h|--help: Shows this message.
list|-l: List firmwares available to build.
build-firmware <target>: Build the firmware for the given build target.
build-firmwares: Build all firmwares for all targets.
build-matching-firmwares <build-match-spec>: Build all firmwares for build targets containing the string given for <build-match-spec>.
Expand All @@ -29,23 +30,41 @@ $ sh build.sh build-repeater-firmwares

Build all chat room server firmwares
$ sh build.sh build-room-server-firmwares

Environment Variables:
DISABLE_DEBUG=1: Disables all debug logging flags (MESH_DEBUG, MESH_PACKET_LOGGING, etc.)
If not set, debug flags from variant platformio.ini files are used.

Examples:
Build without debug logging:
$ export FIRMWARE_VERSION=v1.0.0
$ export DISABLE_DEBUG=1
$ sh build.sh build-firmware RAK_4631_repeater

Build with debug logging (default, uses flags from variant files):
$ export FIRMWARE_VERSION=v1.0.0
$ sh build.sh build-firmware RAK_4631_repeater
EOF
}

# get a list of pio env names that start with "env:"
get_pio_envs() {
pio project config | grep 'env:' | sed 's/env://'
}

# Catch cries for help before doing anything else.
case $1 in
help|usage|-h|--help)
global_usage
exit 1
;;
list|-l)
get_pio_envs
exit 0
;;
esac


# get a list of pio env names that start with "env:"
get_pio_envs() {
echo $(pio project config | grep 'env:' | sed 's/env://')
}

# $1 should be the string to find (case insensitive)
get_pio_envs_containing_string() {
shopt -s nocasematch
Expand All @@ -68,6 +87,13 @@ get_pio_envs_ending_with_string() {
done
}

# disable all debug logging flags if DISABLE_DEBUG=1 is set
disable_debug_flags() {
if [ "$DISABLE_DEBUG" == "1" ]; then
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -UMESH_DEBUG -UBLE_DEBUG_LOGGING -UWIFI_DEBUG_LOGGING -UBRIDGE_DEBUG -UGPS_NMEA_DEBUG -UCORE_DEBUG_LEVEL -UESPNOW_DEBUG_LOGGING -UDEBUG_RP2040_WIRE -UDEBUG_RP2040_SPI -UDEBUG_RP2040_CORE -UDEBUG_RP2040_PORT -URADIOLIB_DEBUG_SPI -UCFG_DEBUG -URADIOLIB_DEBUG_BASIC -URADIOLIB_DEBUG_PROTOCOL"
fi
}

# build firmware for the provided pio env in $1
build_firmware() {

Expand All @@ -94,6 +120,9 @@ build_firmware() {
# add firmware version info to end of existing platformio build flags in environment vars
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DFIRMWARE_BUILD_DATE='\"${FIRMWARE_BUILD_DATE}\"' -DFIRMWARE_VERSION='\"${FIRMWARE_VERSION_STRING}\"'"

# disable debug flags if requested
disable_debug_flags

# build firmware target
pio run -e $1

Expand Down
Loading