Austin
a541957480
ESP32: Migrate to Arduino 3.x (pioarduino) ( #9122 )
...
* Migrate esp32 families to pioarduino platform
* ESP32c6 align text.handler_execute same as C3
* Use pioarduino `develop`
The latest fixes and the latest bugs!
* preliminary esp32p4.ini
* pioarduino: Update LovyanGFX
Includes Manuel's recent commit
* pioarduino 3.3.6
* pioarduino 3.3.6 *release*
chasing the release
* pioarduino: Fix OG ESP32 duplicate libs
* pioarduino: T-Beam 1W CDC mode
* pioarduino: disable network provisioning (wifiprov)
* pioarduino: use legacy esptoolpy naming (forward-compatible)
* Update lovyangfx from `develop` commit to 1.2.19
* fix esp32p4.ini
* check for esp32 w/ wifi
* esp32-p4 specific adaptations
* Switch to meshtastic/esp32_https_server fork (idf5 branch)
* don't ignore esp_lcd
* config for MUI
* fix/workaround SDMMC
* revert a6f6175 , update to 3.3.8
* enable esp_hosted for esp32-p4 (experimental)
* Pioarduino 55.03.38-1
* NimBLE-Arduino -> Arduino "BLE" (3.3.x) migration (#10164 )
* NimBLE-Arduino -> Arduino "BLE" (3.3.x) migration
* More NimBLE
* Fix Device Name in ATT Read Request (0x2A00).
Device Name is exposed in two places:
- Advertisement data: this is set properly in startAdvertising.
- GATT attribute Device Name (0x2A00). This one is handled internally in NimBLE
and comes from ble_svc_gap_device_name_set. This is set initially, but then
BLEDevice::createServer calls ble_svc_gap_init which resets the device name.
This causes the device to apparently "change name after pairing":
< ACL Data TX:... flags 0x00 dlen 7 #113 [hci0] 14.241149
ATT: Read Request (0x0a) len 2
Handle: 0x0003 Type: Device Name (0x2a00)
> ACL Data RX: Handle 2048 flags 0x02 dlen 11 #115 [hci0] 14.269050
ATT: Read Response (0x0b) len 6
Value[6]: 6e696d626c65 # "nimble"
Workaround this by setting the device name once again after
BLEDevice::createServer.
* Temporarily lower CORE_DEBUG_LEVEL to INFO to avoid triggering an apparent ESP-IDF Bluetooth bug when re-connecting to Pixel 8 Android devices.
Initial pairing works, but after ESP32 is rebooted, phone fails to reconnect. Meshtastic app shows it as disconnecting immediately. LightBlue shows a more detailed error "Peripheral Connection - Warning: onConnectionStatusChange: status 61" (0x3D - MIC Failure).
Bug report to Espresssif: https://github.com/espressif/esp-idf/issues/18126#issuecomment-4286197744
* Temporarily disable ble_gap_set_data_len, causes crash with Pixel 8 Android reconnect.
Crash looks like this:
[ 11966][E][BLEAdvertising.cpp:341] setScanResponseData(): ble_gap_adv_rsp_set_data: 22
[ 11975][E][BLEAdvertising.cpp:1554] start(): Host reset, wait for sync.
ERROR | ??:??:?? 11 BLE failed to start advertising
Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC : 0x420e6190 PS : 0x00060730 A0 : 0x820e158b A1 : 0x3fce50c0
A2 : 0x00000000 A3 : 0x3fcb8600 A4 : 0x3fcb85cc A5 : 0x00000000
A6 : 0x00000000 A7 : 0x00000c03 A8 : 0x00000000 A9 : 0x3fce50b0
A10 : 0x0000000e A11 : 0x00000000 A12 : 0x00000010 A13 : 0x3fce50e0
A14 : 0x00000c03 A15 : 0x00000001 SAR : 0x0000001e EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x400570e8 LEND : 0x400570f3 LCOUNT : 0x00000000
Backtrace: 0x420e618d:0x3fce50c0 0x420e1588:0x3fce5110 0x420dfe87:0x3fce5200 0x420dfefb:0x3fce5220 0x420dff3f:0x3fce5240 0x4219602b:0x3fce5260 0x4037b0e5:0x3fce5280 0x4201edf3:0x3fce52a0
Connection seems fast enough even without this. We'll investigate the
reason for the crash and re-enable once it's safe.
---------
Co-authored-by: Catalin Patulea <cronos586@gmail.com >
* Add extension from pioarduino nag
"Jason2866.esp-decoder"
* Cleanup after merge
* ESP32: Disable classic bluetooth
* Cleanup: Fix ADC channels on new variants
* InkHUD: Fix type casting for message size in saveToFlash method
inkhud compiles again!
* update p4 esp_hosted for BT
* I thought I fixed this
* fix linker error using response file (p4 only)
* fix infinite loop
* Fix Power.cpp check warning
Local variable 'config' shadows outer variable [shadowVariable]
* Build ESP32 original with NimBLE ('custom_sdkconfig' approach). (#10235 )
* Re-enable littlefs json manifest
This works locally again :)
Not sure what changed
* Re-add tool-mklittlefs
* sensecap indicator fixes after upgrade arduino-esp & lovyanGFX libs
* hackaday fix
* robot tbeam cache error fix
Co-authored-by: Copilot <copilot@github.com >
* trunk fmt
* ignore trunk
* BLEDevice::deinit() added
Co-authored-by: Copilot <copilot@github.com >
* platformio-custom: Modify mtjson target dependency to prevent fake-success. (#10291 )
Co-authored-by: Copilot <copilot@github.com >
* Fix ESP32-C6 linker errors.
Align .text.handler_execute section to 4 bytes and update watchdog timer core mask configuration
Co-authored-by: Copilot <copilot@github.com >
* tlora-c6: Disable Screen
MESHTASTIC_EXCLUDE_SCREEN=1 on tlora-c6.
It doesn't have a screen, and this gets it compiling again (saving flash).
* Use mverch's iram_memset hack for all OG-ESP32
* Refactor watchdog timer initialization and handling
* use adc_channel_t in variant.h
* Fix variant headers
* More idiomatic default ethernet that doesn't break the build
* Elecrows: Delete problematic variant.cpp
Not needed after USE_ETHERNET_DEFAULT
---------
Co-authored-by: mverch67 <manuel.verch@gmx.de >
Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com >
Co-authored-by: Catalin Patulea <cronos586@gmail.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com >
Co-authored-by: Copilot <copilot@github.com >
Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com >
Co-authored-by: Ben Meadors <benmmeadors@gmail.com >
2026-05-17 18:53:32 -05:00
Ben Meadors
ded4f57cb7
Partition name in manifest script ( #9294 )
...
* Fix up T-Beam 1W HW_MODEL
* Add part_name for bin files
* app0
2026-01-13 05:47:08 -06:00
Austin
bafdeb4275
CI: Unified ESP32 OTA firmware + manifests ( #9258 )
2026-01-11 14:30:42 -06:00
Ben Meadors
1a6cbb5caa
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
2026-01-07 15:25:38 -06:00
Ben Meadors
cbd40faa89
Fix -ota.zip in manifest and build output
2025-12-26 22:22:32 -06:00
Austin
bcfe069997
Optimize builds to reduce duplicate dependency checks ( #8943 )
...
'mtjson' will now build all required pieces when they don't exist
2025-12-11 19:01:31 -06:00
Austin
66ff1536f3
Meshtastic build manifest ( #8248 )
2025-12-08 17:21:23 -06:00
Ken Piper
0e38fef5bf
Fix build script failure under certain conditions for devices that use UF2 binaries ( #8150 )
...
* Validate CR and SF lora config (#8146 )
* Validate CR and SF lora config
* No zero-bw
* Update src/modules/AdminModule.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix braces
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Quote firmware paths given to uf2conv
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-03 18:53:18 -05:00
Ben Meadors
701028b749
Unify build epoch to add flag in platformio-custom.py ( #7917 )
...
* Unify build_epoch replacement logic in platformio-custom
* Missed one
2025-09-11 06:29:50 +10:00
Thomas Göttgens
ac3e5684d6
get git url part from local repo ( #7331 )
2025-07-14 05:11:26 -05:00
Austin
f99ac2104c
Add customizable boot logo based on resolution ( #7146 )
2025-07-02 11:53:12 -07:00
Bob Reese
22aa2d7582
Fixed UF2 generation problem with sys.executable path has spaces in it ( #6346 )
2025-03-18 20:20:15 -05:00
Austin
b96b027926
Consume device-ui as a pio library ( #6193 )
2025-03-05 16:19:59 -06:00
Ben Meadors
b5cad2b65e
Fix negative decimal value detection in userPrefs ( #5963 )
2025-01-29 20:52:24 -06:00
Ben Meadors
d00e0f6911
Convert userprefs to a json file instead of header file which has to be included everywhere ( #5471 )
...
* WIP
* Got string quoting and macro expansion working
* Need the placeholder
* Cleanup
* Missed a user prefs reference
* Update jsonc
2024-12-03 06:17:25 -06:00
Thomas Göttgens
0a82fd28b3
PIO_ENV ( #5239 )
...
* add hw_env to packet
needs https://github.com/meshtastic/protobufs/pull/616
* rename to pio_env
* Move to mynodeinfo
* Includy doody
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com >
2024-11-03 20:02:13 -06:00
Tom Fifield
06eaf2ba5d
Use sys.executable to refer to python. ( #4402 )
...
Thanks to @mrekin for testing the build on Windows.
The previous fix for this UF2 call did not work.
sys.executable should fix it.
2024-08-06 06:48:05 -05:00
Tom Fifield
1f458d6397
Make UF2 build command windows-friendly ( #4399 )
...
As reported by @mrekin, the previous changes to the platformio
custom build script may not work on windows. Change to use
python3 instead of a call to /usr/bin/env python3.
2024-08-05 19:25:47 -05:00
Tom Fifield
66a4632f34
Fix python call in UF2 generation. ( #4392 )
...
The call to generate UF2 files in the platformio custom script was
a bare call to python. In some environments, this command won't
exist in this way. Instead, use the standard env approach to find
the right python.
Additionally, add the shebang line on line 1 so this script can be
executed standalone if needed.
2024-08-05 10:00:52 -05:00
geeksville
09ea198205
Automatically generate .uf2 files anytime we generate a .hex file for nrf52 ( #4370 )
...
* Automatically generate .uf2 files (which are often used by nrf52 bootloaders for installing
app loads) anytime we generate a new hex file. This tool takes very little time to run and it is handy
for development
* Remove an old custom target I had tried to add to autogen uf2 files (that never worked)
Build output now looks like:
$ pio run --environment tracker-t1000-e
Processing tracker-t1000-e (board: tracker-t1000-e; platform: platformio/nordicnrf52@^10.5.0; framework: arduino)
...
Generating UF2 file
Converting to uf2, output size: 1395200, start address: 0x27000
Wrote 1395200 bytes to /home/kevinh/development/meshtastic/firmware/.pio/build/tracker-t1000-e/firmware.uf2
Building .pio/build/tracker-t1000-e/firmware.zip
Zip created at .pio/build/tracker-t1000-e/firmware.zip
=================================================================================== [SUCCESS] Took 9.33 seconds ===================================================================================
Environment Status Duration
--------------- -------- ------------
tracker-t1000-e SUCCESS 00:00:09.327
=================================================================================== 1 succeeded in 00:00:09.327 ===================================================================================
Co-authored-by: Ben Meadors <benmmeadors@gmail.com >
2024-08-02 18:55:04 -05:00
Nestpebble
8641777bac
Add the UF2 conversion script to the p.io task menu ( #4337 )
...
* Add the UF2 conversion script to the p.io task menu
Update platformio-custom.py to include the UF2 conversion script as a project task. Saves you dropping into the command line every time.
Tested on Windows only...
* Forgot the build target...
2024-07-26 20:14:31 -05:00
Mike
f138eaa970
Fix original esp32 boot init panic ( #3985 )
...
Co-authored-by: Ben Meadors <benmmeadors@gmail.com >
2024-05-30 10:59:10 -05:00
Mike
0c9da9aec7
Update platformio/espressif32 to the latest 6.7.0 ( #3899 )
...
* Bump platfomio/espressif32 version to latest 6.7.0
* Fix deprecated constants
* Remove pin defs already defined by the framework
* ESP_EXT1_WAKEUP_ALL_LOW is deprecated for any target except esp32
* Enable LTO and use newlib nano flavor
* Make trunk happy
* Respect build_unflags of base env
* Recover float printfing
* Disable BLE_SM_PAIR_AUTHREQ_SC
* Distribute BLE_SM_PAIR_KEY_DIST_ID too
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com >
2024-05-21 21:02:09 -05:00
Jorropo
04837b3302
bin: remove unused imports from platformio-custom.py
2024-05-16 02:39:42 +02:00
Thomas Göttgens
b0712c4186
make other platforms happy again
2022-09-29 21:23:01 +02:00
Thomas Göttgens
c571fc9e24
generate a monolithic flash image for the app.
2022-09-29 17:04:56 +02:00
Thomas Göttgens
c53434539b
use the native littlefs builder of newer framework
2022-09-27 00:16:12 +02:00
Ben Meadors
13a287ce5c
firmare ( #1575 )
2022-07-29 17:58:42 -05:00
Nerijus Bendžiūnas
9e87be4f22
Correctly print script name in platformio-custom.py
2022-06-07 12:26:01 +03:00
Mike Kinney
0f862edc47
remove the --user
2022-03-03 04:29:34 +00:00
Thomas Göttgens
e7e001c159
Install littlefs-python during pio run ( #1220 )
...
Install only if it is missing from the ENV. Caveat: this python module is essentially lib binding and needs Cython and a working compiler as well. this MAY or MAY NOT work.
2022-02-18 11:42:24 -06:00
Thomas Göttgens
8e9b852faa
Littlefs rebased to Master ( #1205 )
...
* Littlefs
2022-02-14 11:45:29 -06:00
Kevin Hester
218d841511
use short version string on bootscreen
2021-05-03 09:50:06 +08:00
Kevin Hester
361556a6a7
use sha in build filenames
2021-04-16 10:59:46 +08:00
Kevin Hester
1b1431f9ad
include SHA in version strings
2021-04-16 10:35:10 +08:00
Kevin Hester
2edc6b363d
fix #587 thanks @cronyx
2020-12-27 12:53:23 +08:00
Kevin Hester
901ff6bb1e
bug #587 try to work with old (2.x?) versions of python
2020-12-25 10:16:49 +08:00
Kevin Hester
2d4849e0d0
remote try catch in new build tool - file was missing
2020-12-10 14:04:19 +08:00
Kevin Hester
99c8df8e7d
try to fix CI again
2020-12-10 13:17:43 +08:00
Kevin Hester
45d72bd51b
fix CI build - make projectdir relative
2020-12-10 12:44:35 +08:00
Kevin Hester
b1c30f0650
Use a custom platformio py file to always set build version
2020-12-10 11:28:15 +08:00