Compare commits
84 commits
master
...
ci-wippers
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf23f456c2 | ||
|
|
13e4c5177c | ||
|
|
0c51dc01c7 | ||
|
|
e74ec1640f | ||
|
|
ea8dfa1677 | ||
|
|
a51bab0b56 | ||
|
|
66622baed3 | ||
|
|
909fc32885 | ||
|
|
b48303f918 | ||
|
|
7d7d5308f6 | ||
|
|
6f2978d54f | ||
|
|
d0c35074c5 | ||
|
|
7a10d6d6b2 | ||
|
|
f95039b3ba | ||
|
|
ea51e4a7df | ||
|
|
743e8172a1 | ||
|
|
6d645edf01 | ||
|
|
7daacdebce | ||
|
|
321aabcfaa | ||
|
|
ef12f66aca | ||
|
|
568defe08e | ||
|
|
e960ab25cc | ||
|
|
a6a09b3d8f | ||
|
|
8a380fccd7 | ||
|
|
de0edb92f1 | ||
|
|
7763926b2c | ||
|
|
1bcaeb59a9 | ||
|
|
99a04cdb70 | ||
|
|
ef6093907c | ||
|
|
12727c6f78 | ||
|
|
a0fd9ccd0e | ||
|
|
6814c27dba | ||
|
|
afc30d8f8f | ||
|
|
3f6d0137ac | ||
|
|
a74b00a886 | ||
|
|
e6d9926369 | ||
|
|
c2e01cc815 | ||
|
|
abc5a15cc9 | ||
|
|
d905e35cae | ||
|
|
f063a4d066 | ||
|
|
ab4f966fe0 | ||
|
|
8e975b9772 | ||
|
|
7e3a451732 | ||
|
|
2b01d6a8f7 | ||
|
|
4159d79259 | ||
|
|
0355a1e35e | ||
|
|
89561c871c | ||
|
|
cde7df554e | ||
|
|
7ce92e912d | ||
|
|
c08b0a03bc | ||
|
|
69b0743853 | ||
|
|
10eaead7a2 | ||
|
|
24edd32075 | ||
|
|
d98f3134c3 | ||
|
|
cfd8cd7bb9 | ||
|
|
12ce4e0be1 | ||
|
|
e3578369ee | ||
|
|
afbac9326e | ||
|
|
0c47922a12 | ||
|
|
55d4d00438 | ||
|
|
ce96be8653 | ||
|
|
da309b4079 | ||
|
|
734b5c464d | ||
|
|
253c3b260a | ||
|
|
ee99782488 | ||
|
|
cfd59ff88c | ||
|
|
bb001c2199 | ||
|
|
e5baa42b78 | ||
|
|
e12965137c | ||
|
|
0a7670343f | ||
|
|
e087695616 | ||
|
|
9e105676c5 | ||
|
|
6cf30fd00c | ||
|
|
4eac0e55f5 | ||
|
|
8809337489 | ||
|
|
ff858f5dbd | ||
|
|
1a5114cb1e | ||
|
|
6a687dc3d8 | ||
|
|
0061277410 | ||
|
|
bb6058b764 | ||
|
|
43b072702b | ||
|
|
3f74c32201 | ||
|
|
16647cf860 | ||
|
|
aa3eaf0be5 |
2 changed files with 197 additions and 46 deletions
|
|
@ -9,47 +9,59 @@ ALL_PLATFORMS={
|
|||
"cpx" : ["arduino:samd:adafruit_circuitplayground_m0", "0x68ed2b88", None],
|
||||
# Espressif
|
||||
"esp8266" : ["esp8266:esp8266:huzzah:eesz=4M3M,xtal=80", None, None],
|
||||
"esp32" : ["esp32:esp32:featheresp32:FlashFreq=80", None, None],
|
||||
"itsybitsy_esp32" : ["esp32:esp32:adafruit_itsybitsy_esp32:FlashFreq=80", None, None],
|
||||
"esp32" : ["espressif:esp32:featheresp32:FlashFreq=80", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"itsybitsy_esp32" : ["espressif:esp32:adafruit_itsybitsy_esp32:FlashFreq=80", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp8266" : ["esp8266:esp8266:huzzah:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200", None, None],
|
||||
"feather_esp32" : ["esp32:esp32:featheresp32:FlashFreq=80", None, None],
|
||||
"wippersnapper_feather_esp32" : ["esp32:esp32:featheresp32:FlashFreq=80,PartitionScheme=min_spiffs", None, None],
|
||||
"feather_esp32_v2" : ["esp32:esp32:adafruit_feather_esp32_v2", None, None],
|
||||
"qtpy_esp32" : ["esp32:esp32:adafruit_qtpy_esp32_pico", None, None],
|
||||
"sparklemotion_esp32" : ["esp32:esp32:sparklemotion", None, None],
|
||||
"sparklemotionmini_esp32" : ["esp32:esp32:sparklemotionmini", None, None],
|
||||
"feather_esp32" : ["espressif:esp32:featheresp32:FlashFreq=80", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32" : ["espressif:esp32:featheresp32:FlashFreq=80,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32_v2" : ["espressif:esp32:adafruit_feather_esp32_v2", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"qtpy_esp32" : ["espressif:esp32:adafruit_qtpy_esp32_pico", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"sparklemotion_esp32" : ["espressif:esp32:sparklemotion:PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"sparklemotionmini_esp32" : ["espressif:esp32:sparklemotionmini:PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"sparklemotionstick_esp32" : ["espressif:esp32:sparklemotionstick:PartitionScheme=min_spiffs", None, "adafruit/master"],
|
||||
## ESP32-C3/C6
|
||||
"feather_esp32c6" : ["esp32:esp32:adafruit_feather_esp32c6:FlashMode=qio", None, None],
|
||||
"wippersnapper_feather_esp32c6" : ["esp32:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, None],
|
||||
"wippersnapper_feather_esp32c6_debug" : ["esp32:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,DebugLevel=verbose,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, None],
|
||||
"qtpy_esp32c3" : ["esp32:esp32:adafruit_qtpy_esp32c3:FlashMode=qio", None, None],
|
||||
"wippersnapper_qtpy_esp32c3" : ["esp32:esp32:adafruit_qtpy_esp32c3:FlashMode=qio,PartitionScheme=min_spiffs", None, None],
|
||||
"dfrobot_beetle_esp32c3" : ["espressif:esp32:dfrobot_beetle_esp32c3:CDCOnBoot=cdc,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32c6" : ["espressif:esp32:adafruit_feather_esp32c6:FlashMode=qio", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32c6" : ["espressif:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32c6_debug" : ["espressif:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,DebugLevel=verbose,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"qtpy_esp32c3" : ["espressif:esp32:adafruit_qtpy_esp32c3:FlashMode=qio", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_qtpy_esp32c3" : ["espressif:esp32:adafruit_qtpy_esp32c3:FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
## ESP32-S2
|
||||
"magtag" : ["esp32:esp32:adafruit_magtag29_esp32s2", "0xbfdd4eee", None],
|
||||
"funhouse" : ["esp32:esp32:adafruit_funhouse_esp32s2", "0xbfdd4eee", None],
|
||||
"funhouse_noota" : ["esp32:esp32:adafruit_funhouse_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", None],
|
||||
"metroesp32s2" : ["esp32:esp32:adafruit_metro_esp32s2", "0xbfdd4eee", None],
|
||||
"qtpy_esp32s2" : ["esp32:esp32:adafruit_qtpy_esp32s2", "0xbfdd4eee", None],
|
||||
"feather_esp32s2" : ["esp32:esp32:adafruit_feather_esp32s2", "0xbfdd4eee", None],
|
||||
"feather_esp32s2_debug" : ["esp32:esp32:adafruit_feather_esp32s2:DebugLevel=verbose", "0xbfdd4eee", None],
|
||||
"feather_esp32s2_tft" : ["esp32:esp32:adafruit_feather_esp32s2_tft", "0xbfdd4eee", None],
|
||||
"feather_esp32s2_tft_debug" : ["esp32:esp32:adafruit_feather_esp32s2_tft:DebugLevel=verbose", "0xbfdd4eee", None],
|
||||
"feather_esp32s2_reverse_tft" : ["esp32:esp32:adafruit_feather_esp32s2_reversetft", "0xbfdd4eee", None],
|
||||
## ESP32-S3
|
||||
"feather_esp32s3" : ["esp32:esp32:adafruit_feather_esp32s3_nopsram", "0xc47e5767", None],
|
||||
"feather_esp32s3_debug" : ["esp32:esp32:adafruit_feather_esp32s3_nopsram:DebugLevel=verbose", "0xc47e5767", None],
|
||||
"feather_esp32s3_4mbflash_2mbpsram" : ["esp32:esp32:adafruit_feather_esp32s3", "0xc47e5767", None],
|
||||
"feather_esp32s3_4mbflash_2mbpsram_debug" : ["esp32:esp32:adafruit_feather_esp32s3:DebugLevel=verbose", "0xc47e5767", None],
|
||||
"feather_esp32s3_tft" : ["esp32:esp32:adafruit_feather_esp32s3_tft", "0xc47e5767", None],
|
||||
"feather_esp32s3_tft_debug" : ["esp32:esp32:adafruit_feather_esp32s3_tft:DebugLevel=verbose", "0xc47e5767", None],
|
||||
"feather_esp32s3_reverse_tft" : ["esp32:esp32:adafruit_feather_esp32s3_reversetft", "0xc47e5767", None],
|
||||
"feather_esp32s3_reverse_tft_debug" : ["esp32:esp32:adafruit_feather_esp32s3_reversetft:DebugLevel=verbose", "0xc47e5767", None],
|
||||
"magtag" : ["espressif:esp32:adafruit_magtag29_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"funhouse" : ["espressif:esp32:adafruit_funhouse_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"funhouse_noota" : ["espressif:esp32:adafruit_funhouse_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||
"metroesp32s2" : ["espressif:esp32:adafruit_metro_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"metroesp32s2_debug" : ["espressif:esp32:adafruit_metro_esp32s2:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"qtpy_esp32s2" : ["espressif:esp32:adafruit_qtpy_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s2" : ["espressif:esp32:adafruit_feather_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s2_debug" : ["espressif:esp32:adafruit_feather_esp32s2:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s2_tft" : ["espressif:esp32:adafruit_feather_esp32s2_tft:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s2_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s2_tft:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s2_reverse_tft" : ["espressif:esp32:adafruit_feather_esp32s2_reversetft:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
## ESP32_S3
|
||||
"esp32s3_devkitc_1_n8" : ["espressif:esp32:esp32s3:FlashSize=8M,PartitionScheme=noota_ffat,FlashMode=qio,PSRAM=disabled,USBMode=default,CDCOnBoot=cdc,LoopCore=1,EventsCore=1", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"esp32s3_devkitc_1_n8_debug" : ["espressif:esp32:esp32s3:FlashSize=8M,PartitionScheme=noota_ffat,FlashMode=qio,PSRAM=disabled,DebugLevel=verbose,USBMode=default,CDCOnBoot=cdc,LoopCore=1,EventsCore=1", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3" : ["espressif:esp32:adafruit_feather_esp32s3_nopsram", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32s3" : ["espressif:esp32:adafruit_feather_esp32s3_nopsram:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_debug" : ["espressif:esp32:adafruit_feather_esp32s3_nopsram:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32s3_4mbflash_2mbpsram" : ["espressif:esp32:adafruit_feather_esp32s3:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_4mbflash_2mbpsram" : ["espressif:esp32:adafruit_feather_esp32s3:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_4mbflash_2mbpsram_debug" : ["espressif:esp32:adafruit_feather_esp32s3:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_tft" : ["espressif:esp32:adafruit_feather_esp32s3_tft:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32s3_tft" : ["espressif:esp32:adafruit_feather_esp32s3_tft:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s3_tft:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_reverse_tft" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"feather_esp32s3_reverse_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:DebugLevel=verbose", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32s3_reverse_tft" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"wippersnapper_feather_esp32s3_reverse_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"matrixportal_s3" : ["esp32:esp32:adafruit_matrixportal_esp32s3", "0xc47e5767", None],
|
||||
"metro_esp32s3" : ["esp32:esp32:adafruit_metro_esp32s3", "0xc47e5767", None],
|
||||
"metro_esp32s3" : ["espressif:esp32:adafruit_metro_esp32s3", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"metro_esp32s3_debug" : ["espressif:esp32:adafruit_metro_esp32s3:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"pycamera_s3" : ["esp32:esp32:adafruit_camera_esp32s3", "0xc47e5767", None],
|
||||
"qualia_s3_rgb666" : ["esp32:esp32:adafruit_qualia_s3_rgb666", "0xc47e5767", None],
|
||||
"qtpy_esp32s3" : ["esp32:esp32:adafruit_qtpy_esp32s3_nopsram", "0xc47e5767", None],
|
||||
"qtpy_esp32s3_n4r2" : ["esp32:esp32:adafruit_qtpy_esp32s3_n4r2", "0xc47e5767", None],
|
||||
"qtpy_esp32s3" : ["espressif:esp32:adafruit_qtpy_esp32s3_nopsram", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"qtpy_esp32s3_n4r2" : ["espressif:esp32:adafruit_qtpy_esp32s3_n4r2:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3"],
|
||||
"xiao_esp32s3" : ["espressif:esp32:XIAO_ESP32S3:PartitionScheme=tinyuf2,PSRAM=opi,FlashMode=qio,USBMode=default,DebugLevel=warn", "0xc47e5767", "adafruit/wipper-3.1.3-idf-5.3-xiao-tinyuf2"],
|
||||
# Adafruit AVR
|
||||
"trinket_3v" : ["adafruit:avr:trinket3", None, None],
|
||||
"trinket_5v" : ["adafruit:avr:trinket5", None, None],
|
||||
|
|
@ -105,9 +117,6 @@ ALL_PLATFORMS={
|
|||
"X_m0" : ["adafruit:samd:adafruit_X_m0", "0x68ed2b88", None],
|
||||
"qtpy_m0" : ["adafruit:samd:adafruit_qtpy_m0", "0x68ed2b88", None],
|
||||
"qtpy_m0_tinyusb" : ["adafruit:samd:adafruit_qtpy_m0:usbstack=tinyusb", "0x68ed2b88", None],
|
||||
# Arduino SAMD
|
||||
"mkrwifi1010" : ["arduino:samd:mkrwifi1010", "0x8054", None],
|
||||
"nano_33_iot" : ["arduino:samd:nano_33_iot", "0x8057", None],
|
||||
# Arduino nRF
|
||||
"microbit" : ["sandeepmistry:nRF5:BBCmicrobit:softdevice=s110", None, None],
|
||||
# Adafruit nRF
|
||||
|
|
@ -118,17 +127,20 @@ ALL_PLATFORMS={
|
|||
"ledglasses_nrf52840" : ["adafruit:nrf52:ledglasses_nrf52840:softdevice=s140v6,debug=l0", "0xada52840", None],
|
||||
# RP2040 (Philhower)
|
||||
"pico_rp2040" : ["rp2040:rp2040:rpipico:freq=125,flash=2097152_0", "0xe48bff56", None],
|
||||
"pico_rp2040_tinyusb" : ["rp2040:rp2040:rpipico:flash=2097152_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"pico_rp2040_tinyusb" : ["rp2040:rp2040:rpipico:flash=2097152_524288,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"pico_rp2040_tinyusb_host" : ["rp2040:rp2040:rpipico:flash=2097152_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb_host", "0xe48bff56", None],
|
||||
"pico_rp2350" : ["rp2040:rp2040:rpipico2:freq=125,flash=4194304_0", "0xe48bff56", None],
|
||||
"pico_rp2350_tinyusb" : ["rp2040:rp2040:rpipico2:flash=4194304_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"pico_rp2350_tinyusb" : ["rp2040:rp2040:rpipico2:flash=4194304_524288,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"pico_rp2350_tinyusb_host" : ["rp2040:rp2040:rpipico2:flash=4194304_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb_host", "0xe48bff56", None],
|
||||
"picow_rp2040" : ["rp2040:rp2040:rpipicow:flash=2097152_0,freq=125", "0xe48bff56", None],
|
||||
"picow_rp2040_tinyusb" : ["rp2040:rp2040:rpipicow:flash=2097152_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"picow_rp2350" : ["rp2040:rp2040:rpipico2w:freq=125,flash=4194304_0", "0xe48bff56", None],
|
||||
"picow_rp2350_tinyusb" : ["rp2040:rp2040:rpipico2w:flash=4194304_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"picow_rp2350_tinyusb_host" : ["rp2040:rp2040:rpipico2w:flash=4194304_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb_host", "0xe48bff56", None],
|
||||
"feather_rp2040" : ["rp2040:rp2040:adafruit_feather:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||
"feather_rp2040_tinyusb" : ["rp2040:rp2040:adafruit_feather:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"feather_rp2040_adalogger" : ["rp2040:rp2040:adafruit_feather_adalogger:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||
"feather_rp2040_adalogger_tinyusb" : ["rp2040:rp2040:adafruit_feather_adalogger:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"feather_rp2040_adalogger" : ["rp2040:rp2040:adafruit_feather_adalogger:freq=125,flash=8388608_524288", "0xe48bff56", None],
|
||||
"feather_rp2040_adalogger_tinyusb" : ["rp2040:rp2040:adafruit_feather_adalogger:flash=8388608_524288,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"feather_rp2040_rfm" : ["rp2040:rp2040:adafruit_feather_rfm:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||
"feather_rp2040_rfm_tinyusb" : ["rp2040:rp2040:adafruit_feather_rfm:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"feather_rp2040_dvi" : ["rp2040:rp2040:adafruit_feather_dvi:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||
|
|
@ -137,7 +149,7 @@ ALL_PLATFORMS={
|
|||
"feather_rp2350" : ["rp2040:rp2040:adafruit_feather_rp2350_hstx:arch=arm,flash=8388608_0,freq=150,dbgport=Disabled,dbglvl=None,usbstack=picosdk", "0xe48bff56", None],
|
||||
"feather_rp2350_tinyusb" : ["rp2040:rp2040:adafruit_feather_rp2350_hstx:arch=arm,flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"metro_rp2350" : ["rp2040:rp2040:adafruit_metro_rp2350:arch=arm,flash=16777216_0,freq=150,dbgport=Disabled,dbglvl=None,usbstack=picosdk", "0xe48bff56", None],
|
||||
"metro_rp2350_tinyusb" : ["rp2040:rp2040:adafruit_metro_rp2350:arch=arm,flash=16777216_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"metro_rp2350_tinyusb" : ["rp2040:rp2040:adafruit_metro_rp2350:arch=arm,flash=16777216_524288,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"qt2040_trinkey" : ["rp2040:rp2040:adafruit_trinkeyrp2040qt:flash=8388608_0,freq=125","0xe48bff56", None],
|
||||
"qt2040_trinkey_tinyusb" : ["rp2040:rp2040:adafruit_trinkeyrp2040qt:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||
"qt_py_rp2040": ["rp2040:rp2040:adafruit_qtpy:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||
|
|
|
|||
|
|
@ -29,6 +29,35 @@ if "--build_timeout" in sys.argv:
|
|||
sys.argv.pop(sys.argv.index("--build_timeout") + 1)
|
||||
sys.argv.remove("--build_timeout")
|
||||
|
||||
# optional --boards-local-txt argument to copy boards.local.txt
|
||||
# to the appropriate folder after installing the platform BSP.
|
||||
COPY_BOARDS_LOCAL_TXT = False
|
||||
boards_local_txt = None
|
||||
if "--boards-local-txt" in sys.argv:
|
||||
COPY_BOARDS_LOCAL_TXT = True
|
||||
if sys.argv.index("--boards-local-txt") + 1 == len(sys.argv):
|
||||
# check if in cwd
|
||||
if os.path.exists("boards.local.txt"):
|
||||
boards_local_txt = "boards.local.txt"
|
||||
else:
|
||||
sys.stderr.write("Error: --boards-local-txt option requires a path to boards.local.txt file or to be present in current directory\n")
|
||||
sys.exit(1)
|
||||
else:
|
||||
# check second arg is file or another flag:
|
||||
if sys.argv[sys.argv.index("--boards-local-txt") + 1].startswith("--"):
|
||||
if os.path.exists("boards.local.txt"):
|
||||
boards_local_txt = "boards.local.txt"
|
||||
else:
|
||||
sys.stderr.write("Error: --boards-local-txt option requires a path to boards.local.txt file (or to be present in current directory)\n")
|
||||
sys.exit(1)
|
||||
# get the boards.local.txt file from the command line (index exists checked earlier)
|
||||
if not os.path.exists(sys.argv[sys.argv.index("--boards-local-txt") + 1]):
|
||||
sys.stderr.write("Error: boards.local.txt file does not exist\n")
|
||||
sys.exit(1)
|
||||
boards_local_txt = sys.argv[sys.argv.index("--boards-local-txt") + 1]
|
||||
sys.argv.pop(sys.argv.index("--boards-local-txt") + 1)
|
||||
sys.argv.remove("--boards-local-txt")
|
||||
|
||||
# add user bin to path!
|
||||
BUILD_DIR = ''
|
||||
# add user bin to path!
|
||||
|
|
@ -144,6 +173,8 @@ def install_platform(fqbn, full_platform_name=None):
|
|||
install_platform("arduino:avr", full_platform_name)
|
||||
if full_platform_name[2] is not None:
|
||||
manually_install_esp32_bsp(full_platform_name[2]) # build esp32 bsp from desired source and branch
|
||||
print(os.popen('arduino-cli core list | grep {}'.format(fqbn)).read(), end='')
|
||||
return # bail out
|
||||
for retry in range(0, 3):
|
||||
print("arduino-cli core install "+fqbn+" --additional-urls "+BSP_URLS)
|
||||
if os.system("arduino-cli core install "+fqbn+" --additional-urls "+BSP_URLS+" > /dev/null") == 0:
|
||||
|
|
@ -249,7 +280,7 @@ def glob1(pattern):
|
|||
def download_uf2_utils():
|
||||
"""Downloads uf2conv tools if we don't already have them
|
||||
"""
|
||||
cmd = "wget -nc --no-check-certificate http://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2families.json https://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2conv.py"
|
||||
cmd = "wget --retry-on-http-error=429,503 -nc --no-check-certificate http://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2families.json https://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2conv.py"
|
||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
||||
r = proc.wait(timeout=60)
|
||||
out = proc.stdout.read()
|
||||
|
|
@ -282,7 +313,7 @@ def generate_uf2(platform, fqbn, example_path):
|
|||
return output_file
|
||||
|
||||
# Generate using a hex file for all platforms except for ESP32-S2, ESP32-S3 (exports as .bin files)
|
||||
if not any (x in fqbn for x in ["esp32s2", "esp32s3"]):
|
||||
if not any (x in fqbn.lower() for x in ["esp32s2", "esp32s3"]):
|
||||
cli_build_hex_path = "build/*.*." + fqbn.split(':')[2] + "/*.hex"
|
||||
hex_input_file = glob1(os.path.join(example_path, cli_build_hex_path))
|
||||
output_file = os.path.splitext(hex_input_file)[0] + ".uf2"
|
||||
|
|
@ -378,6 +409,24 @@ def test_examples_in_folder(platform, folderpath):
|
|||
if os.path.exists(gen_file_name):
|
||||
ColorPrint.print_info("generating")
|
||||
|
||||
|
||||
# check if root or example-specific boards.local.txt should be copied
|
||||
if COPY_BOARDS_LOCAL_TXT:
|
||||
root_boards_local_txt = boards_local_txt
|
||||
example_boards_local_txt = folderpath+"/boards.local.txt"
|
||||
board_specific_example_boards_local_txt = folderpath+"/."+platform+".boards.local.txt"
|
||||
|
||||
if os.path.exists(board_specific_example_boards_local_txt):
|
||||
ColorPrint.print_info("Copying boards.local.txt from "+board_specific_example_boards_local_txt)
|
||||
install_boards_local_txt(":".join(fqbn.split(':')[0:2]), board_specific_example_boards_local_txt)
|
||||
elif os.path.exists(example_boards_local_txt):
|
||||
ColorPrint.print_info("Copying boards.local.txt from "+example_boards_local_txt)
|
||||
install_boards_local_txt(":".join(fqbn.split(':')[0:2]), example_boards_local_txt)
|
||||
else: # effectively does the revert if subsequent example doesn't have a specific boards.local.txt
|
||||
ColorPrint.print_info("No example-specific boards.local.txt found to copy, using root version")
|
||||
install_boards_local_txt(":".join(fqbn.split(':')[0:2]), root_boards_local_txt)
|
||||
|
||||
|
||||
if BUILD_WARN:
|
||||
if os.path.exists(gen_file_name):
|
||||
cmd = ['arduino-cli', 'compile', '--warnings', 'all', '--fqbn', fqbn, '-e', folderpath]
|
||||
|
|
@ -426,6 +475,89 @@ def test_examples_in_folder(platform, folderpath):
|
|||
success = 1
|
||||
|
||||
|
||||
def install_boards_local_txt(core_fqbn, boards_local_txt):
|
||||
"""Copies boards.local.txt to the appropriate folder for the given core_fqbn.
|
||||
:param str core_fqbn: The first two segments of fully qualified board
|
||||
name, vendor:architecture (e.g., "adafruit:samd").
|
||||
:param str boards_local_txt: The path to the boards.local.txt file.
|
||||
"""
|
||||
local_app_data_dir = os.environ.get('HOME', '')
|
||||
data_dir = None
|
||||
try:
|
||||
if os.path.exists(os.path.join(local_app_data_dir, '.arduino15')):
|
||||
data_dir = os.path.join(local_app_data_dir, '.arduino15')
|
||||
elif os.path.exists(os.path.join(local_app_data_dir, '.arduino')):
|
||||
data_dir = os.path.join(local_app_data_dir, '.arduino')
|
||||
|
||||
# Get arduino-cli data directory
|
||||
import json
|
||||
if data_dir:
|
||||
config_output = subprocess.check_output(["arduino-cli", "config", "dump", "--format", "json", "--config-dir", data_dir]).decode()
|
||||
else:
|
||||
config_output = subprocess.check_output(["arduino-cli", "config", "dump", "--format", "json"]).decode()
|
||||
config = json.loads(config_output)
|
||||
ColorPrint.print_info(f"Using arduino-cli config: {config_output.strip()}")
|
||||
|
||||
# Extract data directory, with fallback to default
|
||||
data_dir = config.get("directories", {}).get("data", "")
|
||||
if not data_dir:
|
||||
if os.path.exists(os.path.join(local_app_data_dir, 'Arduino')):
|
||||
data_dir = os.path.join(local_app_data_dir, 'Arduino')
|
||||
else:
|
||||
ColorPrint.print_warn("No valid data directory found, cannot copy boards.local.txt")
|
||||
return
|
||||
|
||||
ColorPrint.print_info(f"Using data directory: {data_dir}")
|
||||
|
||||
# Parse platform vendor and architecture from core_fqbn (e.g., "adafruit:samd")
|
||||
parts = core_fqbn.split(':')
|
||||
if len(parts) >= 2:
|
||||
vendor = parts[0]
|
||||
architecture = parts[1]
|
||||
else:
|
||||
vendor = core_fqbn
|
||||
architecture = vendor
|
||||
|
||||
ColorPrint.print_info(f"Using vendor: {vendor}, architecture: {architecture}")
|
||||
|
||||
# Construct base platform path, fall back to architecture if vendor rebadged BSP.
|
||||
platform_base = os.path.join(data_dir, "packages", vendor, "hardware", architecture) if \
|
||||
os.path.exists(os.path.join(data_dir, "packages", vendor, "hardware", architecture)) else \
|
||||
os.path.join(data_dir, "packages", architecture, "hardware", architecture) if \
|
||||
os.path.exists(os.path.join(data_dir, "packages", architecture, "hardware", architecture)) else \
|
||||
os.path.join(data_dir, "hardware", vendor, architecture) if \
|
||||
os.path.exists(os.path.join(data_dir, "hardware", vendor, architecture)) else \
|
||||
os.path.join(data_dir, "hardware", architecture, architecture)
|
||||
|
||||
# Find the latest version directory
|
||||
if os.path.exists(platform_base):
|
||||
if os.path.exists(os.path.join(platform_base, "boards.txt")):
|
||||
shutil.copyfile(boards_local_txt, os.path.join(platform_base, "boards.local.txt"))
|
||||
ColorPrint.print_info(f"Copied boards.local.txt to {os.path.join(platform_base, 'boards.local.txt')}")
|
||||
else:
|
||||
versions = [d for d in os.listdir(platform_base) if os.path.isdir(os.path.join(platform_base, d))]
|
||||
ColorPrint.print_info(f"Found subdirectories for {platform_base}:\n {versions}")
|
||||
# Filter out non-version directories (e.g., 'tools', 'libraries') while supporting 1.0-dev 1.0.0-offline-mode.102 etc
|
||||
versions = [v for v in versions if re.match(r'^(v)?\d+\.\d+(\.\d+(-\w+)?)?(\.\d+)?$', v)]
|
||||
ColorPrint.print_info(f"Filtered versions: {versions}")
|
||||
if versions:
|
||||
# Sort versions and take the latest (could be improved with proper version sorting)
|
||||
latest_version = sorted(versions)[-1]
|
||||
platform_path = os.path.join(platform_base, latest_version)
|
||||
|
||||
dest_path = os.path.join(platform_path, "boards.local.txt")
|
||||
shutil.copyfile(boards_local_txt, dest_path)
|
||||
ColorPrint.print_info(f"Copied boards.local.txt to {dest_path}")
|
||||
|
||||
else:
|
||||
ColorPrint.print_warn(f"No version directories found in {platform_base}")
|
||||
else:
|
||||
ColorPrint.print_warn(f"Platform path {platform_base} does not exist")
|
||||
|
||||
except Exception as e:
|
||||
ColorPrint.print_fail(f"Error injecting boards.local.txt for {core_fqbn}: {e}")
|
||||
|
||||
|
||||
def main():
|
||||
# Test platforms
|
||||
platforms = []
|
||||
|
|
@ -449,8 +581,15 @@ def main():
|
|||
fqbn = ALL_PLATFORMS[platform][0]
|
||||
print('#'*80)
|
||||
ColorPrint.print_info("SWITCHING TO "+fqbn)
|
||||
install_platform(":".join(fqbn.split(':', 2)[0:2]), ALL_PLATFORMS[platform]) # take only first two elements
|
||||
core_fqbn = ":".join(fqbn.split(':', 2)[0:2]) # take only first two elements
|
||||
install_platform(core_fqbn, ALL_PLATFORMS[platform])
|
||||
|
||||
# Inject boards.local.txt if requested
|
||||
if COPY_BOARDS_LOCAL_TXT and boards_local_txt:
|
||||
install_boards_local_txt(core_fqbn, boards_local_txt)
|
||||
print('#'*80)
|
||||
|
||||
# Test examples in the platform folder
|
||||
if not IS_LEARNING_SYS:
|
||||
test_examples_in_folder(platform, BUILD_DIR+"/examples")
|
||||
else:
|
||||
|
|
|
|||
Loading…
Reference in a new issue