Compare commits
198 Commits
Author | SHA1 | Date | |
---|---|---|---|
0eff524981 | |||
|
ac45b109c1 | ||
|
e3446b7526 | ||
|
f9e5a07556 | ||
|
02c5ef4a35 | ||
|
c0acac7838 | ||
|
79e4f615a1 | ||
|
0c33219f53 | ||
|
92f7dcb581 | ||
|
bade1b3dfb | ||
|
9dc638d6ba | ||
|
47763a9948 | ||
|
46ae0c828b | ||
|
d9e97a3364 | ||
|
aa10954dab | ||
|
aeed8d7b45 | ||
|
68e1b5fd82 | ||
|
d3b88746db | ||
|
79a7c05b56 | ||
|
5a533d6b36 | ||
|
ddb4335440 | ||
|
8e7f3fcf79 | ||
|
e9fba631fa | ||
|
139b86b1b4 | ||
|
090343e447 | ||
|
7921d08c11 | ||
|
41b395f30c | ||
|
6499706f58 | ||
|
a2d1cf8e78 | ||
|
19bb196399 | ||
|
0b2e90a430 | ||
|
b9928a2d11 | ||
|
11247e9e40 | ||
|
1b962727b9 | ||
|
d11b0eebdb | ||
|
3cf9e1a265 | ||
|
9f8c10e50b | ||
|
9a13c2575e | ||
|
20c7dbfcfe | ||
|
6ac422138b | ||
|
2e399c94ed | ||
|
bd485fe9b9 | ||
|
fec7ed80ec | ||
|
702b36f009 | ||
|
9a4ef9ff75 | ||
|
19cc4d7502 | ||
|
4c4ed63756 | ||
|
4e39c77ce3 | ||
|
5ce1a228e7 | ||
|
aa79bc55cb | ||
|
ef9fd76413 | ||
|
ff7a675659 | ||
|
2ace1c26f9 | ||
|
47726da601 | ||
|
4c0d7ea35c | ||
|
838e9ed8d3 | ||
|
42e7c851ca | ||
|
f982df23e5 | ||
|
f1d426ef45 | ||
|
28ffe07370 | ||
|
28b575e364 | ||
|
f4a6a4586f | ||
|
a3c7bc9472 | ||
|
5bb8311544 | ||
|
de1a5ef4fa | ||
|
5397a3854d | ||
|
5677d9bfdd | ||
|
5a389a61ac | ||
|
0f1e560f0b | ||
|
bd2f3e756b | ||
|
227b99ad36 | ||
|
81e537a86e | ||
|
dc472b1455 | ||
|
606fe2d193 | ||
|
eb8f864d87 | ||
|
165ade2beb | ||
|
47b206f084 | ||
|
488689c592 | ||
|
17cb99f3fb | ||
|
28e5339cdc | ||
|
5f45696ec1 | ||
|
bc18ccc8ac | ||
|
d24609b89e | ||
|
e0781a4221 | ||
|
9177e55c7c | ||
|
97b862c887 | ||
|
dc38120b89 | ||
|
1e709a2f45 | ||
|
1b43288ac0 | ||
|
baf2bf2f92 | ||
|
750f07c05f | ||
|
15497ac540 | ||
|
40aea9c914 | ||
|
6f7bbd86c8 | ||
|
41da472b81 | ||
|
52bb6e5d7f | ||
|
ab1e380b64 | ||
|
47ad4e9090 | ||
|
4d9eca0c71 | ||
|
8d7a063c99 | ||
|
1b8624b35a | ||
|
e568d578ab | ||
|
4eedf9eac0 | ||
|
ab26ecbf3b | ||
|
bbb2b17614 | ||
|
4d1e3817d7 | ||
|
a587ecab51 | ||
|
c2441e4210 | ||
|
41e26ccd44 | ||
|
936b8d35df | ||
|
5ab36c45d8 | ||
|
096f514e83 | ||
|
228b3d28de | ||
|
509633a366 | ||
|
c4349b1634 | ||
|
c97b377c3e | ||
|
6caac4d451 | ||
|
6de524e45d | ||
|
7d82e08324 | ||
|
e1204e62e0 | ||
|
ddcb4a395d | ||
|
3ddcc3aa9a | ||
|
74a6e8a2cc | ||
|
9870c4cec4 | ||
|
d20e2ed967 | ||
|
75dffaabf8 | ||
|
8bff1812d8 | ||
|
f48a9b921f | ||
|
a65832bc6b | ||
|
27cbf99620 | ||
|
b5359ff956 | ||
|
2b0c071198 | ||
|
2b15f395c7 | ||
|
091af0ecd9 | ||
|
e08da697f0 | ||
|
e49272f13b | ||
|
fbb7cc8183 | ||
|
b75e8ddfbe | ||
|
5806c57b9c | ||
|
1a9864187a | ||
|
a05a0c65e3 | ||
|
458dfacd2f | ||
|
7331a756e7 | ||
|
01a0447aa7 | ||
|
d825c1e531 | ||
|
eca3b40879 | ||
|
e920ef32c3 | ||
|
bda6353697 | ||
|
9811f13f66 | ||
|
e5579ce8b7 | ||
|
7c03bd4909 | ||
|
c7d1a0854c | ||
|
1d9dac6e82 | ||
|
2f3fcce5e4 | ||
|
17d12fa5db | ||
|
b025de9dfe | ||
|
829d328321 | ||
|
f2c1d02d2b | ||
|
b97219d294 | ||
|
7186039f68 | ||
|
76011726a9 | ||
|
ff7f704a42 | ||
|
8e0001450d | ||
|
5fd0124b33 | ||
|
673d327f62 | ||
|
1a37e2dc73 | ||
|
bb18b728ad | ||
|
39b2ae9785 | ||
|
620fe89831 | ||
|
c0653a3d76 | ||
|
7b48a72f89 | ||
|
08233cd7a7 | ||
|
2489c767f4 | ||
|
0dbcaf78bf | ||
|
9916b5ef16 | ||
|
77e0d3a29d | ||
|
87f647de63 | ||
|
630c935d5d | ||
|
128a0826e1 | ||
|
3560177601 | ||
|
e3828b361d | ||
|
4cdb352484 | ||
|
a94fd6258a | ||
|
580b352086 | ||
|
ef26f67e95 | ||
|
9920da0915 | ||
|
3c6cc84610 | ||
|
d0ca5176e1 | ||
|
856d081313 | ||
|
095da74655 | ||
|
64c93ed89c | ||
|
dc4615d43b | ||
|
5cb4a7f9cb | ||
|
4f92149c1c | ||
|
079d5f4e17 | ||
|
5271d828a7 | ||
|
69160582c6 | ||
|
daed439f07 |
39
.github/workflows/examples.yml
vendored
39
.github/workflows/examples.yml
vendored
@ -7,25 +7,46 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-16.04, windows-latest, macos-latest]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
python-version: [3.7]
|
|
||||||
example:
|
example:
|
||||||
- "examples/arduino-blink"
|
- "examples/arduino-blink"
|
||||||
|
- "examples/arduino-wifi-scan"
|
||||||
|
- "examples/arduino-ota"
|
||||||
|
- "examples/arduino-signed-ota"
|
||||||
- "examples/arduino-external-libs"
|
- "examples/arduino-external-libs"
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: "recursive"
|
submodules: "recursive"
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v3
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: "3.9"
|
||||||
|
- name: Enable Long Paths
|
||||||
|
run: |
|
||||||
|
if [ "$RUNNER_OS" == "Windows" ]; then
|
||||||
|
git config --system core.longpaths true
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install -U https://github.com/platformio/platformio/archive/develop.zip
|
pip install -U https://github.com/platformio/platformio/archive/develop.zip
|
||||||
platformio platform install file://.
|
pio pkg install --global --platform symlink://.
|
||||||
|
# OpenSSL needed for signed OTA update example
|
||||||
|
- name: Install OpenSSL
|
||||||
|
run: |
|
||||||
|
if [ "$RUNNER_OS" == "Linux" ]; then
|
||||||
|
sudo apt-get install -y openssl
|
||||||
|
elif [ "$RUNNER_OS" == "Windows" ]; then
|
||||||
|
choco install openssl
|
||||||
|
elif [ "$RUNNER_OS" == "macOS" ]; then
|
||||||
|
brew install openssl
|
||||||
|
else
|
||||||
|
echo "$RUNNER_OS not supported"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
- name: Build examples
|
- name: Build examples
|
||||||
run: |
|
run: |
|
||||||
platformio run -d ${{ matrix.example }}
|
pio run -d ${{ matrix.example }}
|
||||||
|
12
README.md
12
README.md
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
[](https://github.com/platformio/platform-raspberrypi/actions)
|
[](https://github.com/platformio/platform-raspberrypi/actions)
|
||||||
|
|
||||||
RP2040 is a low-cost, high-performance microcontroller device with with a large on-chip memory, symmetric dual-core processor complex, deterministic bus fabric, and rich peripheral set augmented with a unique Programmable I/O (PIO) subsystem, it provides professional users with unrivalled power and flexibility.
|
RP2040 is a low-cost, high-performance microcontroller device with a large on-chip memory, symmetric dual-core processor complex, deterministic bus fabric, and rich peripheral set augmented with a unique Programmable I/O (PIO) subsystem, it provides professional users with unrivalled power and flexibility.
|
||||||
|
|
||||||
* [Home](http://platformio.org/platforms/raspberrypi) (home page in PlatformIO Platform Registry)
|
* [Home](https://registry.platformio.org/platforms/platformio/raspberrypi) (home page in the PlatformIO Registry)
|
||||||
* [Documentation](http://docs.platformio.org/page/platforms/raspberrypi.html) (advanced usage, packages, boards, frameworks, etc.)
|
* [Documentation](https://docs.platformio.org/page/platforms/raspberrypi.html) (advanced usage, packages, boards, frameworks, etc.)
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
1. [Install PlatformIO](http://platformio.org)
|
1. [Install PlatformIO](https://platformio.org)
|
||||||
2. Create PlatformIO project and configure a platform option in [platformio.ini](http://docs.platformio.org/page/projectconf.html) file:
|
2. Create PlatformIO project and configure a platform option in [platformio.ini](https://docs.platformio.org/page/projectconf.html) file:
|
||||||
|
|
||||||
## Stable version
|
## Stable version
|
||||||
|
|
||||||
@ -32,4 +32,4 @@ board = ...
|
|||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
Please navigate to [documentation](http://docs.platformio.org/page/platforms/raspberrypi.html).
|
Please navigate to [documentation](https://docs.platformio.org/page/platforms/raspberrypi.html).
|
||||||
|
56
boards/0xcb_helios.json
Normal file
56
boards/0xcb_helios.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q128jvxq_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x1209",
|
||||||
|
"usb_pid": "0xCB74"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_0XCB_HELIOS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x1209",
|
||||||
|
"0xCB74"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "0xcb_helios"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Helios",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "0xCB"
|
||||||
|
}
|
56
boards/adafruit_feather.json
Normal file
56
boards/adafruit_feather.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25x10cl_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x80F1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x80F1"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_can.json
Normal file
56
boards/adafruit_feather_can.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x812F"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_CAN -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x812F"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_can"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 CAN",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_dvi.json
Normal file
56
boards/adafruit_feather_dvi.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8127"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_DVI -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8127"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_dvi"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 DVI",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_prop_maker.json
Normal file
56
boards/adafruit_feather_prop_maker.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8131"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_PROP_MAKER -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8131"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_prop_maker"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 Prop-Maker",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_rfm.json
Normal file
56
boards/adafruit_feather_rfm.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x812D"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_RFM -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x812D"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_rfm"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 RFM",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_scorpio.json
Normal file
56
boards/adafruit_feather_scorpio.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8121"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_SCORPIO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8121"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_scorpio"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 SCORPIO",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_thinkink.json
Normal file
56
boards/adafruit_feather_thinkink.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x812B"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_THINKINK -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x812B"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_thinkink"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 ThinkINK",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_feather_usb_host.json
Normal file
56
boards/adafruit_feather_usb_host.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8129"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_USB_HOST -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8129"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_feather_usb_host"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Feather RP2040 USB Host",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_itsybitsy.json
Normal file
56
boards/adafruit_itsybitsy.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x80FD"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_ITSYBITSY_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x80FD"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_itsybitsy"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "ItsyBitsy RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_kb2040.json
Normal file
56
boards/adafruit_kb2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8105"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_KB2040_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8105"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_kb2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "KB2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_macropad2040.json
Normal file
56
boards/adafruit_macropad2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8107"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_MACROPAD_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8107"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_macropad2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "MacroPad RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_qtpy.json
Normal file
56
boards/adafruit_qtpy.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x80F7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_QTPY_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x80F7"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_qtpy"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "QT Py RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_stemmafriend.json
Normal file
56
boards/adafruit_stemmafriend.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x80E3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_STEMMAFRIEND_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x80E3"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_stemmafriend"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "STEMMA Friend RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/adafruit_trinkeyrp2040qt.json
Normal file
56
boards/adafruit_trinkeyrp2040qt.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x239A",
|
||||||
|
"usb_pid": "0x8109"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ADAFRUIT_TRINKEYQT_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x239A",
|
||||||
|
"0x8109"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "adafruit_trinkeyrp2040qt"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Trinkey RP2040 QT",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Adafruit"
|
||||||
|
}
|
56
boards/arduino_nano_connect.json
Normal file
56
boards/arduino_nano_connect.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2341",
|
||||||
|
"usb_pid": "0x005E"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_NANO_RP2040_CONNECT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2341",
|
||||||
|
"0x005E"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "arduino_nano_connect"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Nano RP2040 Connect",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Arduino"
|
||||||
|
}
|
56
boards/artronshop_rp2_nano.json
Normal file
56
boards/artronshop_rp2_nano.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x000A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ARTRONSHOP_RP2_NANO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x000A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "artronshop_rp2_nano"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2 Nano",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "ArtronShop"
|
||||||
|
}
|
56
boards/bridgetek_idm2040-7a.json
Normal file
56
boards/bridgetek_idm2040-7a.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1041"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_BRIDGETEK_IDM2040-7A -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 -DFT8XX_TYPE=BT817 -DDISPLAY_RES=WVGA -DPLATFORM_RP2040",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1041"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "bridgetek_idm2040-7a"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "IDM2040-7A",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "BridgeTek"
|
||||||
|
}
|
56
boards/challenger_2040_lora.json
Normal file
56
boards/challenger_2040_lora.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1023"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_LORA_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1023"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_lora"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 LoRa",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_lte.json
Normal file
56
boards/challenger_2040_lte.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x100B"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_LTE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x100B"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_lte"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 LTE",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_nfc.json
Normal file
56
boards/challenger_2040_nfc.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1036"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_NFC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1036"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_nfc"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 NFC",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_sdrtc.json
Normal file
56
boards/challenger_2040_sdrtc.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x102D"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_SDRTC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x102D"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_sdrtc"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 SD/RTC",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_subghz.json
Normal file
56
boards/challenger_2040_subghz.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1032"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_SUBGHZ_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1032"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_subghz"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 SubGHz",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_uwb.json
Normal file
56
boards/challenger_2040_uwb.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1052"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_UWB_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1052"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_uwb"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 UWB",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_wifi.json
Normal file
56
boards/challenger_2040_wifi.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1006"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 -DWIFIESPAT2",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1006"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_wifi"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 WiFi",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_wifi6_ble.json
Normal file
56
boards/challenger_2040_wifi6_ble.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x105F"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI6_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x105F"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_wifi6_ble"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 WiFi6/BLE",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_2040_wifi_ble.json
Normal file
56
boards/challenger_2040_wifi_ble.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x102C"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x102C"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_2040_wifi_ble"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger 2040 WiFi/BLE",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/challenger_nb_2040_wifi.json
Normal file
56
boards/challenger_nb_2040_wifi.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x100D"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x100D"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "challenger_nb_2040_wifi"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Challenger NB 2040 WiFi",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/cytron_maker_nano_rp2040.json
Normal file
56
boards/cytron_maker_nano_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x100F"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CYTRON_MAKER_NANO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x100F"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "cytron_maker_nano_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Maker Nano RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Cytron"
|
||||||
|
}
|
56
boards/cytron_maker_pi_rp2040.json
Normal file
56
boards/cytron_maker_pi_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_CYTRON_MAKER_PI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1000"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "cytron_maker_pi_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Maker Pi RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Cytron"
|
||||||
|
}
|
56
boards/datanoisetv_picoadk.json
Normal file
56
boards/datanoisetv_picoadk.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x000A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_DATANOISETV_PICOADK -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x000A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "datanoisetv_picoadk"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "PicoADK",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "DatanoiseTV"
|
||||||
|
}
|
56
boards/dfrobot_beetle_rp2040.json
Normal file
56
boards/dfrobot_beetle_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x3343",
|
||||||
|
"usb_pid": "0x4253"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_DFROBOT_BEETLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x3343",
|
||||||
|
"0x4253"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "dfrobot_beetle_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Beetle RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "DFRobot"
|
||||||
|
}
|
56
boards/electroniccats_huntercat_nfc.json
Normal file
56
boards/electroniccats_huntercat_nfc.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1037"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ELECTRONICCATS_HUNTERCAT_NFC -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1037"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "electroniccats_huntercat_nfc"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "HunterCat NFC RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "ElectronicCats"
|
||||||
|
}
|
56
boards/extelec_rc2040.json
Normal file
56
boards/extelec_rc2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0xEE20"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_EXTREMEELEXTRONICS_RC2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0xEE20"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "extelec_rc2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RC2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "ExtremeElectronics"
|
||||||
|
}
|
56
boards/flyboard2040_core.json
Normal file
56
boards/flyboard2040_core.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x008A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_FLYBOARD2040_CORE -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x008A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "flyboard2040_core"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "FlyBoard2040Core",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "DeRuiLab"
|
||||||
|
}
|
56
boards/generic.json
Normal file
56
boards/generic.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0xF00A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_GENERIC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0xF00A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "generic"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Generic"
|
||||||
|
}
|
56
boards/ilabs_rpico32.json
Normal file
56
boards/ilabs_rpico32.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1010"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_ILABS_2040_RPICO32_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1010"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "ilabs_rpico32"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RPICO32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "iLabs"
|
||||||
|
}
|
56
boards/melopero_cookie_rp2040.json
Normal file
56
boards/melopero_cookie_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1011"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_MELOPERO_COOKIE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1011"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "melopero_cookie_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Cookie RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Melopero"
|
||||||
|
}
|
56
boards/melopero_shake_rp2040.json
Normal file
56
boards/melopero_shake_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1005"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_MELOPERO_SHAKE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1005"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "melopero_shake_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Shake RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Melopero"
|
||||||
|
}
|
@ -1,8 +1,18 @@
|
|||||||
{
|
{
|
||||||
"build": {
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"variant": "arduino_nano_connect",
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_pid": "0x0058",
|
||||||
|
"usb_vid": "0x2341",
|
||||||
|
"usb_manufacturer": "Arduino",
|
||||||
|
"usb_product" : "Arduino Nano RP2040 Connect"
|
||||||
|
}
|
||||||
|
},
|
||||||
"core": "arduino",
|
"core": "arduino",
|
||||||
"cpu": "cortex-m0plus",
|
"cpu": "cortex-m0plus",
|
||||||
"extra_flags": "-D NANO_RP2040_CONNECT -DARDUINO_ARCH_RP2040",
|
"extra_flags": "-D ARDUINO_NANO_RP2040_CONNECT -DARDUINO_ARCH_RP2040",
|
||||||
"f_cpu": "133000000L",
|
"f_cpu": "133000000L",
|
||||||
"hwids": [
|
"hwids": [
|
||||||
[
|
[
|
||||||
@ -36,8 +46,10 @@
|
|||||||
"protocol": "picotool",
|
"protocol": "picotool",
|
||||||
"protocols": [
|
"protocols": [
|
||||||
"cmsis-dap",
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
"raspberrypi-swd",
|
"raspberrypi-swd",
|
||||||
"picotool"
|
"picotool",
|
||||||
|
"picoprobe"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"url": "https://blog.arduino.cc/2021/01/20/welcome-raspberry-pi-to-the-world-of-microcontrollers/",
|
"url": "https://blog.arduino.cc/2021/01/20/welcome-raspberry-pi-to-the-world-of-microcontrollers/",
|
||||||
|
56
boards/nekosystems_bl2040_mini.json
Normal file
56
boards/nekosystems_bl2040_mini.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_generic_03h_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x000A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_NEKOSYSTEMS_BL2040_MINI -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x000A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "nekosystems_bl2040_mini"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "BL2040 Mini",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Neko Systems"
|
||||||
|
}
|
56
boards/nullbits_bit_c_pro.json
Normal file
56
boards/nullbits_bit_c_pro.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25x10cl_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x6E61"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_NULLBITS_BIT_C_PRO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x6E61"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "nullbits_bit_c_pro"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Bit-C PRO",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "nullbits"
|
||||||
|
}
|
@ -1,8 +1,18 @@
|
|||||||
{
|
{
|
||||||
"build": {
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"variant": "rpipico",
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2e8a",
|
||||||
|
"usb_pid": "0x000a",
|
||||||
|
"usb_manufacturer": "Raspberry Pi",
|
||||||
|
"usb_product": "Pico"
|
||||||
|
}
|
||||||
|
},
|
||||||
"core": "arduino",
|
"core": "arduino",
|
||||||
"cpu": "cortex-m0plus",
|
"cpu": "cortex-m0plus",
|
||||||
"extra_flags": "-D RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040",
|
"extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
"f_cpu": "133000000L",
|
"f_cpu": "133000000L",
|
||||||
"hwids": [
|
"hwids": [
|
||||||
[
|
[
|
||||||
@ -31,9 +41,12 @@
|
|||||||
"wait_for_upload_port": false,
|
"wait_for_upload_port": false,
|
||||||
"protocol": "picotool",
|
"protocol": "picotool",
|
||||||
"protocols": [
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
"cmsis-dap",
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
"raspberrypi-swd",
|
"raspberrypi-swd",
|
||||||
"picotool"
|
"picotool",
|
||||||
|
"picoprobe"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
56
boards/pimoroni_pga2040.json
Normal file
56
boards/pimoroni_pga2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q64jv_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1008"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_PIMORONI_PGA2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1008"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "pimoroni_pga2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "PGA2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Pimoroni"
|
||||||
|
}
|
56
boards/pimoroni_plasma2040.json
Normal file
56
boards/pimoroni_plasma2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x100A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_PIMORONI_PLASMA2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x100A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "pimoroni_plasma2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Plasma2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Pimoroni"
|
||||||
|
}
|
56
boards/rpipico.json
Normal file
56
boards/rpipico.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x000A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x000A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "rpipico"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Pico",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Raspberry Pi"
|
||||||
|
}
|
56
boards/rpipicow.json
Normal file
56
boards/rpipicow.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0xF00A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO_W -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0xF00A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "rpipicow"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Pico W",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Raspberry Pi"
|
||||||
|
}
|
56
boards/seeed_indicator_rp2040.json
Normal file
56
boards/seeed_indicator_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2886",
|
||||||
|
"usb_pid": "0x0050"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_SEEED_INDICATOR_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2886",
|
||||||
|
"0x0050"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "seeed_indicator_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "INDICATOR RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Seeed"
|
||||||
|
}
|
56
boards/seeed_xiao_rp2040.json
Normal file
56
boards/seeed_xiao_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x000A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_SEEED_XIAO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x000A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "seeed_xiao_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "XIAO RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Seeed"
|
||||||
|
}
|
56
boards/solderparty_rp2040_stamp.json
Normal file
56
boards/solderparty_rp2040_stamp.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x1209",
|
||||||
|
"usb_pid": "0xA182"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_SOLDERPARTY_RP2040_STAMP -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x1209",
|
||||||
|
"0xA182"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "solderparty_rp2040_stamp"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 Stamp",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Solder Party"
|
||||||
|
}
|
56
boards/sparkfun_promicrorp2040.json
Normal file
56
boards/sparkfun_promicrorp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x1B4F",
|
||||||
|
"usb_pid": "0x0026"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_SPARKFUN_PROMICRO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x1B4F",
|
||||||
|
"0x0026"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "sparkfun_promicrorp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "ProMicro RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "SparkFun"
|
||||||
|
}
|
56
boards/sparkfun_thingplusrp2040.json
Normal file
56
boards/sparkfun_thingplusrp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x1B4F",
|
||||||
|
"usb_pid": "0x0026"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_SPARKFUN_THINGPLUS_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x1B4F",
|
||||||
|
"0x0026"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "sparkfun_thingplusrp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Thing Plus RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "SparkFun"
|
||||||
|
}
|
56
boards/upesy_rp2040_devkit.json
Normal file
56
boards/upesy_rp2040_devkit.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1007"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_UPESY_RP2040_DEVKIT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1007"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "upesy_rp2040_devkit"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 DevKit",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "uPesy"
|
||||||
|
}
|
56
boards/vccgnd_yd_rp2040.json
Normal file
56
boards/vccgnd_yd_rp2040.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x800A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_YD_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x800A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "vccgnd_yd_rp2040"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "YD RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "VCC-GND"
|
||||||
|
}
|
56
boards/viyalab_mizu.json
Normal file
56
boards/viyalab_mizu.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x000A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_VIYALAB_MIZU_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x000A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "viyalab_mizu"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "Mizu RP2040",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 8388608,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Viyalab"
|
||||||
|
}
|
56
boards/waveshare_rp2040_lcd_0_96.json
Normal file
56
boards/waveshare_rp2040_lcd_0_96.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1021"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WAVESHARE_RP2040_LCD_0_96 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1021"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "waveshare_rp2040_lcd_0_96"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 LCD 0.96",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Waveshare"
|
||||||
|
}
|
56
boards/waveshare_rp2040_lcd_1_28.json
Normal file
56
boards/waveshare_rp2040_lcd_1_28.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1039"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WAVESHARE_RP2040_LCD_1_28 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1039"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "waveshare_rp2040_lcd_1_28"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 LCD 1.28",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Waveshare"
|
||||||
|
}
|
56
boards/waveshare_rp2040_one.json
Normal file
56
boards/waveshare_rp2040_one.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x103A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WAVESHARE_RP2040_ONE -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x103A"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "waveshare_rp2040_one"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 One",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Waveshare"
|
||||||
|
}
|
56
boards/waveshare_rp2040_plus_16mb.json
Normal file
56
boards/waveshare_rp2040_plus_16mb.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1020"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WAVESHARE_RP2040_PLUS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1020"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "waveshare_rp2040_plus_16mb"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 Plus 16MB",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 16777216,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Waveshare"
|
||||||
|
}
|
56
boards/waveshare_rp2040_plus_4mb.json
Normal file
56
boards/waveshare_rp2040_plus_4mb.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1020"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WAVESHARE_RP2040_PLUS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1020"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "waveshare_rp2040_plus_4mb"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 Plus 4MB",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Waveshare"
|
||||||
|
}
|
56
boards/waveshare_rp2040_zero.json
Normal file
56
boards/waveshare_rp2040_zero.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x0003"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WAVESHARE_RP2040_ZERO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x0003"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "waveshare_rp2040_zero"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "RP2040 Zero",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "Waveshare"
|
||||||
|
}
|
56
boards/wiznet_5100s_evb_pico.json
Normal file
56
boards/wiznet_5100s_evb_pico.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1027"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WIZNET_5100S_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1027"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "wiznet_5100s_evb_pico"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "W5100S-EVB-Pico",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "WIZnet"
|
||||||
|
}
|
56
boards/wiznet_5500_evb_pico.json
Normal file
56
boards/wiznet_5500_evb_pico.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1029"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WIZNET_5500_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1029"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "wiznet_5500_evb_pico"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "W5500-EVB-Pico",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "WIZnet"
|
||||||
|
}
|
56
boards/wiznet_wizfi360_evb_pico.json
Normal file
56
boards/wiznet_wizfi360_evb_pico.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"earlephilhower": {
|
||||||
|
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
|
||||||
|
"usb_vid": "0x2E8A",
|
||||||
|
"usb_pid": "0x1028"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core": "earlephilhower",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"extra_flags": "-D ARDUINO_WIZNET_WIZFI360_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
|
||||||
|
"f_cpu": "133000000L",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x00C0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0x2E8A",
|
||||||
|
"0x1028"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "rp2040",
|
||||||
|
"variant": "wiznet_wizfi360_evb_pico"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"jlink_device": "RP2040_M0_0",
|
||||||
|
"openocd_target": "rp2040.cfg",
|
||||||
|
"svd_path": "rp2040.svd"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino"
|
||||||
|
],
|
||||||
|
"name": "WizFi360-EVB-Pico",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 270336,
|
||||||
|
"maximum_size": 2097152,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"native_usb": true,
|
||||||
|
"use_1200bps_touch": true,
|
||||||
|
"wait_for_upload_port": false,
|
||||||
|
"protocol": "picotool",
|
||||||
|
"protocols": [
|
||||||
|
"blackmagic",
|
||||||
|
"cmsis-dap",
|
||||||
|
"jlink",
|
||||||
|
"raspberrypi-swd",
|
||||||
|
"picotool",
|
||||||
|
"picoprobe",
|
||||||
|
"pico-debug"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
|
||||||
|
"vendor": "WIZnet"
|
||||||
|
}
|
@ -21,7 +21,12 @@ from SCons.Script import DefaultEnvironment
|
|||||||
env = DefaultEnvironment()
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
env.Append(
|
env.Append(
|
||||||
ASFLAGS=["-x", "assembler-with-cpp"],
|
ASFLAGS=[
|
||||||
|
"-mthumb",
|
||||||
|
],
|
||||||
|
ASPPFLAGS=[
|
||||||
|
"-x", "assembler-with-cpp",
|
||||||
|
],
|
||||||
|
|
||||||
CCFLAGS=[
|
CCFLAGS=[
|
||||||
"-Os", # optimize for size
|
"-Os", # optimize for size
|
||||||
@ -54,6 +59,9 @@ env.Append(
|
|||||||
|
|
||||||
if "BOARD" in env:
|
if "BOARD" in env:
|
||||||
env.Append(
|
env.Append(
|
||||||
|
ASFLAGS=[
|
||||||
|
"-mcpu=%s" % env.BoardConfig().get("build.cpu")
|
||||||
|
],
|
||||||
CCFLAGS=[
|
CCFLAGS=[
|
||||||
"-mcpu=%s" % env.BoardConfig().get("build.cpu")
|
"-mcpu=%s" % env.BoardConfig().get("build.cpu")
|
||||||
],
|
],
|
||||||
@ -61,6 +69,3 @@ if "BOARD" in env:
|
|||||||
"-mcpu=%s" % env.BoardConfig().get("build.cpu")
|
"-mcpu=%s" % env.BoardConfig().get("build.cpu")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
# copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode)
|
|
||||||
env.Append(ASFLAGS=env.get("CCFLAGS", [])[:])
|
|
||||||
|
39
builder/frameworks/arduino/arduino.py
Normal file
39
builder/frameworks/arduino/arduino.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Copyright 2021-present Maximilian Gerhardt <maximilian.gerhardt@rub.de>
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from os.path import join, isfile
|
||||||
|
|
||||||
|
from SCons.Script import DefaultEnvironment, SConscript
|
||||||
|
|
||||||
|
env = DefaultEnvironment()
|
||||||
|
core = env.BoardConfig().get("build.core", "arduino")
|
||||||
|
build_script = ""
|
||||||
|
|
||||||
|
# select build script as either from the Earle Philhower core or
|
||||||
|
# from the builder script contained in this platform.
|
||||||
|
|
||||||
|
if core == "earlephilhower":
|
||||||
|
build_script = join(
|
||||||
|
env.PioPlatform().get_package_dir("framework-arduinopico"), "tools", "platformio-build.py")
|
||||||
|
else:
|
||||||
|
build_script = join(env.PioPlatform().get_dir(), "builder",
|
||||||
|
"frameworks", "arduino", "mbed-core", "arduino-core-mbed.py")
|
||||||
|
|
||||||
|
if not isfile(build_script):
|
||||||
|
sys.stderr.write(
|
||||||
|
"Error: Missing PlatformIO build script %s!\n" % build_script)
|
||||||
|
env.Exit(1)
|
||||||
|
|
||||||
|
SConscript(build_script)
|
@ -1 +1 @@
|
|||||||
Subproject commit ceb4f608f9b4834ac4fa5472e1db2a2c2f9d216e
|
Subproject commit 6174f769bfc8610a397ed0c912cd059246e547cd
|
353
builder/main.py
353
builder/main.py
@ -14,14 +14,91 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
from platform import system
|
from platform import system
|
||||||
from os import makedirs
|
from os import makedirs, remove
|
||||||
from os.path import isdir, join
|
from os.path import isdir, join, isfile
|
||||||
|
import re
|
||||||
|
import time
|
||||||
|
from shutil import copyfile
|
||||||
|
|
||||||
from platformio.util import get_serial_ports
|
from platformio.public import list_serial_ports
|
||||||
|
|
||||||
from SCons.Script import (ARGUMENTS, COMMAND_LINE_TARGETS, AlwaysBuild,
|
from SCons.Script import (ARGUMENTS, COMMAND_LINE_TARGETS, AlwaysBuild,
|
||||||
Builder, Default, DefaultEnvironment)
|
Builder, Default, DefaultEnvironment)
|
||||||
|
|
||||||
|
def convert_size_expression_to_int(expression):
|
||||||
|
conversion_factors = {
|
||||||
|
"M": 1024*1024,
|
||||||
|
"MB": 1024*1024,
|
||||||
|
"K": 1024,
|
||||||
|
"KB": 1024,
|
||||||
|
"B": 1,
|
||||||
|
"": 1 # giving no conversion factor is factor 1.
|
||||||
|
}
|
||||||
|
# match <floating pointer number><conversion factor>.
|
||||||
|
extract_regex = r'^((?:[0-9]*[.])?[0-9]+)([mkbMKB]*)$'
|
||||||
|
res = re.findall(extract_regex, expression)
|
||||||
|
# unparsable expression? Warning.
|
||||||
|
if len(res) == 0:
|
||||||
|
sys.stderr.write(
|
||||||
|
"Error: Could not parse filesystem size expression '%s'."
|
||||||
|
" Will treat as size = 0.\n" % str(expression))
|
||||||
|
return 0
|
||||||
|
# access first result
|
||||||
|
number, factor = res[0]
|
||||||
|
number = float(number)
|
||||||
|
number *= conversion_factors[factor.upper()]
|
||||||
|
return int(number)
|
||||||
|
|
||||||
|
def fetch_fs_size(env):
|
||||||
|
# follow generation formulas from makeboards.py for Earle Philhower core
|
||||||
|
# given the total flash size, a user can specify
|
||||||
|
# the amount for the filesystem (0MB, 2MB, 4MB, 8MB, 16MB)
|
||||||
|
# via board_build.filesystem_size,
|
||||||
|
# and we will calculate the flash size and eeprom size from that.
|
||||||
|
flash_size = board.get("upload.maximum_size")
|
||||||
|
filesystem_size = board.get("build.filesystem_size", "0MB")
|
||||||
|
filesystem_size_int = convert_size_expression_to_int(filesystem_size)
|
||||||
|
# last 4K are allocated for EEPROM emulation in flash.
|
||||||
|
# see https://github.com/earlephilhower/arduino-pico/blob/3414b73172d307e9dc901f7fee83b41112f73457/libraries/EEPROM/EEPROM.cpp#L43-L46
|
||||||
|
eeprom_size = 4096
|
||||||
|
|
||||||
|
maximum_sketch_size = flash_size - eeprom_size - filesystem_size_int
|
||||||
|
|
||||||
|
print("Flash size: %.2fMB" % (flash_size / 1024.0 / 1024.0))
|
||||||
|
print("Sketch size: %.2fMB" % (maximum_sketch_size / 1024.0 / 1024.0))
|
||||||
|
print("Filesystem size: %.2fMB" % (filesystem_size_int / 1024.0 / 1024.0))
|
||||||
|
|
||||||
|
eeprom_start = 0x10000000 + flash_size - eeprom_size
|
||||||
|
fs_start = 0x10000000 + flash_size - eeprom_size - filesystem_size_int
|
||||||
|
fs_end = 0x10000000 + flash_size - eeprom_size
|
||||||
|
|
||||||
|
if maximum_sketch_size <= 0:
|
||||||
|
sys.stderr.write(
|
||||||
|
"Error: Filesystem too large for given flash. "
|
||||||
|
"Can at max be flash size - 4096 bytes. "
|
||||||
|
"Available sketch size with current "
|
||||||
|
"config would be %d bytes.\n" % maximum_sketch_size)
|
||||||
|
sys.stderr.flush()
|
||||||
|
env.Exit(1)
|
||||||
|
|
||||||
|
env["PICO_FLASH_LENGTH"] = maximum_sketch_size
|
||||||
|
env["PICO_EEPROM_START"] = eeprom_start
|
||||||
|
env["FS_START"] = fs_start
|
||||||
|
env["FS_END"] = fs_end
|
||||||
|
# LittleFS configuration parameters taken from
|
||||||
|
# https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/src/PicoLittleFS.java
|
||||||
|
env["FS_PAGE"] = 256
|
||||||
|
env["FS_BLOCK"] = 4096
|
||||||
|
|
||||||
|
print("Maximium Sketch size: %d "
|
||||||
|
"EEPROM start: %s Filesystem start: %s "
|
||||||
|
"Filesystem end: %s" %
|
||||||
|
(maximum_sketch_size, hex(eeprom_start), hex(fs_start), hex(fs_end)))
|
||||||
|
|
||||||
|
|
||||||
|
def __fetch_fs_size(target, source, env):
|
||||||
|
fetch_fs_size(env)
|
||||||
|
return (target, source)
|
||||||
|
|
||||||
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
||||||
upload_options = {}
|
upload_options = {}
|
||||||
@ -29,7 +106,7 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
|||||||
upload_options = env.BoardConfig().get("upload", {})
|
upload_options = env.BoardConfig().get("upload", {})
|
||||||
|
|
||||||
env.AutodetectUploadPort()
|
env.AutodetectUploadPort()
|
||||||
before_ports = get_serial_ports()
|
before_ports = list_serial_ports()
|
||||||
|
|
||||||
if upload_options.get("use_1200bps_touch", False):
|
if upload_options.get("use_1200bps_touch", False):
|
||||||
env.TouchSerialPort("$UPLOAD_PORT", 1200)
|
env.TouchSerialPort("$UPLOAD_PORT", 1200)
|
||||||
@ -43,7 +120,7 @@ def generate_uf2(target, source, env):
|
|||||||
env.Execute(
|
env.Execute(
|
||||||
" ".join(
|
" ".join(
|
||||||
[
|
[
|
||||||
join(platform.get_package_dir("tool-rp2040tools") or "", "elf2uf2"),
|
"elf2uf2",
|
||||||
'"%s"' % elf_file,
|
'"%s"' % elf_file,
|
||||||
'"%s"' % elf_file.replace(".elf", ".uf2"),
|
'"%s"' % elf_file.replace(".elf", ".uf2"),
|
||||||
]
|
]
|
||||||
@ -56,6 +133,8 @@ platform = env.PioPlatform()
|
|||||||
board = env.BoardConfig()
|
board = env.BoardConfig()
|
||||||
|
|
||||||
env.Replace(
|
env.Replace(
|
||||||
|
__fetch_fs_size=fetch_fs_size,
|
||||||
|
|
||||||
AR="arm-none-eabi-ar",
|
AR="arm-none-eabi-ar",
|
||||||
AS="arm-none-eabi-as",
|
AS="arm-none-eabi-as",
|
||||||
CC="arm-none-eabi-gcc",
|
CC="arm-none-eabi-gcc",
|
||||||
@ -67,6 +146,9 @@ env.Replace(
|
|||||||
|
|
||||||
ARFLAGS=["rc"],
|
ARFLAGS=["rc"],
|
||||||
|
|
||||||
|
MKFSTOOL="mklittlefs",
|
||||||
|
PICO_FS_IMAGE_NAME=env.get("PICO_FS_IMAGE_NAME", "littlefs"),
|
||||||
|
|
||||||
SIZEPROGREGEXP=r"^(?:\.text|\.data|\.rodata|\.text.align|\.ARM.exidx)\s+(\d+).*",
|
SIZEPROGREGEXP=r"^(?:\.text|\.data|\.rodata|\.text.align|\.ARM.exidx)\s+(\d+).*",
|
||||||
SIZEDATAREGEXP=r"^(?:\.data|\.bss|\.noinit)\s+(\d+).*",
|
SIZEDATAREGEXP=r"^(?:\.data|\.bss|\.noinit)\s+(\d+).*",
|
||||||
SIZECHECKCMD="$SIZETOOL -A -d $SOURCES",
|
SIZECHECKCMD="$SIZETOOL -A -d $SOURCES",
|
||||||
@ -102,6 +184,22 @@ env.Append(
|
|||||||
"$TARGET"
|
"$TARGET"
|
||||||
]), "Building $TARGET"),
|
]), "Building $TARGET"),
|
||||||
suffix=".hex"
|
suffix=".hex"
|
||||||
|
),
|
||||||
|
BinToSignedBin=Builder(
|
||||||
|
action=env.VerboseAction(" ".join([
|
||||||
|
'"$PYTHONEXE" "%s"' % join(
|
||||||
|
platform.get_package_dir("framework-arduinopico") or "",
|
||||||
|
"tools", "signing.py"),
|
||||||
|
"--mode",
|
||||||
|
"sign",
|
||||||
|
"--privatekey",
|
||||||
|
'"%s"' % join("$PROJECT_SRC_DIR", "private.key"),
|
||||||
|
"--bin",
|
||||||
|
"$SOURCES",
|
||||||
|
"--out",
|
||||||
|
"$TARGET"
|
||||||
|
]), "Building $TARGET"),
|
||||||
|
suffix=".bin.signed"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -109,26 +207,81 @@ env.Append(
|
|||||||
if not env.get("PIOFRAMEWORK"):
|
if not env.get("PIOFRAMEWORK"):
|
||||||
env.SConscript("frameworks/_bare.py")
|
env.SConscript("frameworks/_bare.py")
|
||||||
|
|
||||||
|
env.Append(
|
||||||
|
BUILDERS=dict(
|
||||||
|
DataToBin=Builder(
|
||||||
|
action=env.VerboseAction(" ".join([
|
||||||
|
'"$MKFSTOOL"',
|
||||||
|
"-c", "$SOURCES",
|
||||||
|
"-p", "$FS_PAGE",
|
||||||
|
"-b", "$FS_BLOCK",
|
||||||
|
"-s", "${FS_END - FS_START}",
|
||||||
|
"$TARGET"
|
||||||
|
]), "Building file system image from '$SOURCES' directory to $TARGET"),
|
||||||
|
emitter=__fetch_fs_size,
|
||||||
|
source_factory=env.Dir,
|
||||||
|
suffix=".bin"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
is_arduino_pico_build = env.BoardConfig().get("build.core", "arduino") == "earlephilhower" and "arduino" in env.get("PIOFRAMEWORK")
|
||||||
|
if is_arduino_pico_build:
|
||||||
|
pubkey = join(env.subst("$PROJECT_SRC_DIR"), "public.key")
|
||||||
|
if isfile(pubkey):
|
||||||
|
header_file = join(env.subst("$BUILD_DIR"), "core", "Updater_Signing.h")
|
||||||
|
env.Prepend(CCFLAGS=['-I"%s"' % join("$BUILD_DIR", "core")])
|
||||||
|
env.Execute(" ".join([
|
||||||
|
'"$PYTHONEXE" "%s"' % join(
|
||||||
|
platform.get_package_dir("framework-arduinopico"), "tools", "signing.py"),
|
||||||
|
"--mode", "header",
|
||||||
|
"--publickey", '"%s"' % join("$PROJECT_SRC_DIR", "public.key"),
|
||||||
|
"--out", '"%s"' % join("$BUILD_DIR", "core", "Updater_Signing.h")
|
||||||
|
]))
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = None
|
target_elf = None
|
||||||
|
target_signed_bin = None
|
||||||
if "nobuild" in COMMAND_LINE_TARGETS:
|
if "nobuild" in COMMAND_LINE_TARGETS:
|
||||||
target_elf = join("$BUILD_DIR", "${PROGNAME}.elf")
|
target_elf = join("$BUILD_DIR", "${PROGNAME}.elf")
|
||||||
target_firm = join("$BUILD_DIR", "${PROGNAME}.bin")
|
target_firm = join("$BUILD_DIR", "${PROGNAME}.bin")
|
||||||
|
target_firm = join("$BUILD_DIR", "${PROGNAME}.bin.signed")
|
||||||
else:
|
else:
|
||||||
target_elf = env.BuildProgram()
|
target_elf = env.BuildProgram()
|
||||||
target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), target_elf)
|
if set(["buildfs", "uploadfs"]) & set(COMMAND_LINE_TARGETS):
|
||||||
env.Depends(target_firm, "checkprogsize")
|
target_firm = env.DataToBin(
|
||||||
|
join("$BUILD_DIR", "${PICO_FS_IMAGE_NAME}"), "$PROJECTDATA_DIR")
|
||||||
|
AlwaysBuild(target_firm)
|
||||||
|
else:
|
||||||
|
target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), target_elf)
|
||||||
|
if is_arduino_pico_build:
|
||||||
|
target_signed_bin = env.BinToSignedBin(join("$BUILD_DIR", "${PROGNAME}"), target_firm)
|
||||||
|
env.Depends(target_signed_bin, "checkprogsize")
|
||||||
|
env.Depends(target_firm, "checkprogsize")
|
||||||
|
|
||||||
|
env.AddPlatformTarget("buildfs", target_firm, target_firm, "Build Filesystem Image")
|
||||||
AlwaysBuild(env.Alias("nobuild", target_firm))
|
AlwaysBuild(env.Alias("nobuild", target_firm))
|
||||||
target_buildprog = env.Alias("buildprog", target_firm, target_firm)
|
target_buildprog = env.Alias("buildprog", [target_firm, target_signed_bin], target_firm)
|
||||||
|
|
||||||
env.AddPostAction(
|
env.AddPostAction(
|
||||||
target_elf, env.VerboseAction(generate_uf2, "Generating UF2 image")
|
target_elf, env.VerboseAction(generate_uf2, "Generating UF2 image")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _update_max_upload_size(env):
|
||||||
|
fetch_fs_size(env)
|
||||||
|
env.BoardConfig().update("upload.maximum_size", env["PICO_FLASH_LENGTH"])
|
||||||
|
|
||||||
|
# update max upload size based on set sketch size (or raw maximum size)
|
||||||
|
if env.get("PIOMAINPROG"):
|
||||||
|
env.AddPreAction(
|
||||||
|
"checkprogsize",
|
||||||
|
env.VerboseAction(
|
||||||
|
lambda source, target, env: _update_max_upload_size(env),
|
||||||
|
"Retrieving maximum program size $SOURCE"))
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Print binary size
|
# Target: Print binary size
|
||||||
#
|
#
|
||||||
@ -138,6 +291,12 @@ target_size = env.Alias(
|
|||||||
env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE"))
|
env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE"))
|
||||||
AlwaysBuild(target_size)
|
AlwaysBuild(target_size)
|
||||||
|
|
||||||
|
def RebootPico(target, source, env):
|
||||||
|
time.sleep(0.5)
|
||||||
|
env.Execute(
|
||||||
|
'"%s" reboot' %
|
||||||
|
join(platform.get_package_dir("tool-rp2040tools") or "", "picotool")
|
||||||
|
)
|
||||||
#
|
#
|
||||||
# Target: Upload by default .bin file
|
# Target: Upload by default .bin file
|
||||||
#
|
#
|
||||||
@ -147,23 +306,157 @@ upload_protocol = env.subst("$UPLOAD_PROTOCOL") or "picotool"
|
|||||||
upload_actions = []
|
upload_actions = []
|
||||||
upload_source = target_firm
|
upload_source = target_firm
|
||||||
|
|
||||||
|
def UploadUF2ToDisk(target, source, env):
|
||||||
|
assert "UPLOAD_PORT" in env
|
||||||
|
progname = env.subst("$PROGNAME")
|
||||||
|
ext = "uf2"
|
||||||
|
fpath = join(env.subst("$BUILD_DIR"), "%s.%s" % (progname, ext))
|
||||||
|
if not isfile(fpath):
|
||||||
|
print(
|
||||||
|
"Firmware file %s not found.\n" % fpath
|
||||||
|
)
|
||||||
|
return
|
||||||
|
copyfile(fpath, join(env.subst("$UPLOAD_PORT"), "%s.%s" % (progname, ext)))
|
||||||
|
print(
|
||||||
|
"Firmware has been successfully uploaded.\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
def TryResetPico(target, source, env):
|
||||||
|
upload_options = {}
|
||||||
|
if "BOARD" in env:
|
||||||
|
upload_options = env.BoardConfig().get("upload", {})
|
||||||
|
ports = list_serial_ports()
|
||||||
|
if len(ports) != 0:
|
||||||
|
last_port = ports[-1]["port"]
|
||||||
|
if upload_options.get("use_1200bps_touch", False):
|
||||||
|
env.TouchSerialPort(last_port, 1200)
|
||||||
|
time.sleep(2.0)
|
||||||
|
|
||||||
|
from platformio.device.list.util import list_logical_devices
|
||||||
|
from platformio.device.finder import is_pattern_port
|
||||||
|
from fnmatch import fnmatch
|
||||||
|
|
||||||
|
def find_rpi_disk(initial_port):
|
||||||
|
msdlabels = ("RPI-RP2")
|
||||||
|
item:str
|
||||||
|
for item in list_logical_devices():
|
||||||
|
if item["path"].startswith("/net"):
|
||||||
|
continue
|
||||||
|
if (
|
||||||
|
initial_port
|
||||||
|
and is_pattern_port(initial_port)
|
||||||
|
and not fnmatch(item["path"], initial_port)
|
||||||
|
):
|
||||||
|
continue
|
||||||
|
mbed_pages = [join(item["path"], n) for n in ("INDEX.HTM", "INFO_UF2.TXT")]
|
||||||
|
if any(isfile(p) for p in mbed_pages):
|
||||||
|
return item["path"]
|
||||||
|
if item["name"] and any(l in item["name"].lower() for l in msdlabels):
|
||||||
|
return item["path"]
|
||||||
|
return None
|
||||||
|
|
||||||
|
def AutodetectPicoDisk(target, source, env):
|
||||||
|
initial_port = env.subst("$UPLOAD_PORT")
|
||||||
|
if initial_port and not is_pattern_port(initial_port):
|
||||||
|
print(env.subst("Using manually specified: $UPLOAD_PORT"))
|
||||||
|
return
|
||||||
|
|
||||||
|
if upload_protocol == "mbed":
|
||||||
|
env.Replace(UPLOAD_PORT=find_rpi_disk(initial_port))
|
||||||
|
|
||||||
|
if env.subst("$UPLOAD_PORT"):
|
||||||
|
print(env.subst("Auto-detected: $UPLOAD_PORT"))
|
||||||
|
else:
|
||||||
|
sys.stderr.write(
|
||||||
|
"Error: Please specify `upload_port` for environment or use "
|
||||||
|
"global `--upload-port` option.\n"
|
||||||
|
"For some development platforms it can be a USB flash "
|
||||||
|
"drive (i.e. /media/<user>/<device name>)\n"
|
||||||
|
)
|
||||||
|
env.Exit(1)
|
||||||
|
|
||||||
if upload_protocol == "mbed":
|
if upload_protocol == "mbed":
|
||||||
upload_actions = [
|
upload_actions = [
|
||||||
env.VerboseAction(env.AutodetectUploadPort, "Looking for upload disk..."),
|
env.VerboseAction(TryResetPico, "Trying to reset Pico into bootloader mode..."),
|
||||||
env.VerboseAction(env.UploadToDisk, "Uploading $SOURCE")
|
env.VerboseAction(AutodetectPicoDisk, "Looking for upload disk..."),
|
||||||
|
env.VerboseAction(UploadUF2ToDisk, "Uploading $SOURCE")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
elif upload_protocol.startswith("blackmagic"):
|
||||||
|
env.Replace(
|
||||||
|
UPLOADER="$GDB",
|
||||||
|
UPLOADERFLAGS=[
|
||||||
|
"-nx",
|
||||||
|
"--batch",
|
||||||
|
"-ex", "target extended-remote $UPLOAD_PORT",
|
||||||
|
"-ex", "monitor %s_scan" %
|
||||||
|
("jtag" if upload_protocol == "blackmagic-jtag" else "swdp"),
|
||||||
|
"-ex", "attach 1",
|
||||||
|
"-ex", "load",
|
||||||
|
"-ex", "compare-sections",
|
||||||
|
"-ex", "kill"
|
||||||
|
],
|
||||||
|
UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCE"
|
||||||
|
)
|
||||||
|
upload_source = target_elf
|
||||||
|
upload_actions = [
|
||||||
|
env.VerboseAction(env.AutodetectUploadPort, "Looking for BlackMagic port..."),
|
||||||
|
env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")
|
||||||
|
]
|
||||||
|
elif upload_protocol == "espota":
|
||||||
|
if not env.subst("$UPLOAD_PORT"):
|
||||||
|
sys.stderr.write(
|
||||||
|
"Error: Please specify IP address or host name of ESP device "
|
||||||
|
"using `upload_port` for build environment or use "
|
||||||
|
"global `--upload-port` option.\n"
|
||||||
|
"See https://docs.platformio.org/page/platforms/"
|
||||||
|
"espressif8266.html#over-the-air-ota-update\n")
|
||||||
|
env.Replace(
|
||||||
|
UPLOADER=join(
|
||||||
|
platform.get_package_dir("framework-arduinopico") or "",
|
||||||
|
"tools", "espota.py"),
|
||||||
|
UPLOADERFLAGS=["--debug", "--progress", "-i", "$UPLOAD_PORT", "-p", "2040"],
|
||||||
|
UPLOADCMD='"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS -f $SOURCE'
|
||||||
|
)
|
||||||
|
if "uploadfs" in COMMAND_LINE_TARGETS:
|
||||||
|
env.Append(UPLOADERFLAGS=["-s"])
|
||||||
|
else:
|
||||||
|
# check if we have a .bin.signed file available.
|
||||||
|
# since the file may not be build yet, we try to predict that we will
|
||||||
|
# have that file if they private signing key exists.
|
||||||
|
if isfile(join(env.subst("$PROJECT_SRC_DIR"), "private.key")):
|
||||||
|
sys.stdout.write("Using signed OTA update file.")
|
||||||
|
upload_source = target_signed_bin
|
||||||
|
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
||||||
elif upload_protocol == "picotool":
|
elif upload_protocol == "picotool":
|
||||||
env.Replace(
|
env.Replace(
|
||||||
UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "rp2040load"),
|
UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "rp2040load"),
|
||||||
UPLOADERFLAGS=["-v", "-D"],
|
UPLOADERFLAGS=["-v", "-D"],
|
||||||
UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES"
|
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if "uploadfs" in COMMAND_LINE_TARGETS:
|
||||||
|
env.Replace(
|
||||||
|
UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "picotool"),
|
||||||
|
UPLOADERFLAGS=[
|
||||||
|
"load",
|
||||||
|
"--verify"
|
||||||
|
],
|
||||||
|
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES --offset ${hex(FS_START)}',
|
||||||
|
)
|
||||||
|
|
||||||
upload_actions = [
|
upload_actions = [
|
||||||
env.VerboseAction(BeforeUpload, "Looking for upload port..."),
|
env.VerboseAction(BeforeUpload, "Looking for upload port..."),
|
||||||
env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE"),
|
env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# picotool seems to need just a tiny bit of delay, but rp2040 load not..
|
||||||
|
if "uploadfs" in COMMAND_LINE_TARGETS:
|
||||||
|
upload_actions.insert(1, env.VerboseAction(
|
||||||
|
lambda source, target, env: time.sleep(0.5), "Delaying a tiny bit..."))
|
||||||
|
# reboot after filesystem upload
|
||||||
|
upload_actions.append(env.VerboseAction(RebootPico, "Rebooting device..."))
|
||||||
|
|
||||||
upload_source = target_elf
|
upload_source = target_elf
|
||||||
|
|
||||||
elif upload_protocol.startswith("jlink"):
|
elif upload_protocol.startswith("jlink"):
|
||||||
@ -173,10 +466,11 @@ elif upload_protocol.startswith("jlink"):
|
|||||||
if not isdir(build_dir):
|
if not isdir(build_dir):
|
||||||
makedirs(build_dir)
|
makedirs(build_dir)
|
||||||
script_path = join(build_dir, "upload.jlink")
|
script_path = join(build_dir, "upload.jlink")
|
||||||
|
upload_addr = hex(env["FS_START"]) if "uploadfs" in COMMAND_LINE_TARGETS else board.get(
|
||||||
|
"upload.offset_address", "0x0")
|
||||||
commands = [
|
commands = [
|
||||||
"h",
|
"h",
|
||||||
"loadbin %s, %s" % (source, board.get(
|
"loadbin %s, %s" % (source, upload_addr),
|
||||||
"upload.offset_address", "0x0")),
|
|
||||||
"r",
|
"r",
|
||||||
"q"
|
"q"
|
||||||
]
|
]
|
||||||
@ -197,6 +491,7 @@ elif upload_protocol.startswith("jlink"):
|
|||||||
UPLOADCMD='$UPLOADER $UPLOADERFLAGS -CommanderScript "${__jlink_cmd_script(__env__, SOURCE)}"'
|
UPLOADCMD='$UPLOADER $UPLOADERFLAGS -CommanderScript "${__jlink_cmd_script(__env__, SOURCE)}"'
|
||||||
)
|
)
|
||||||
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
||||||
|
upload_source = env.ElfToHex(join("$BUILD_DIR", "${PROGNAME}"), target_elf)
|
||||||
|
|
||||||
elif upload_protocol in debug_tools:
|
elif upload_protocol in debug_tools:
|
||||||
openocd_args = [
|
openocd_args = [
|
||||||
@ -204,23 +499,34 @@ elif upload_protocol in debug_tools:
|
|||||||
]
|
]
|
||||||
openocd_args.extend(
|
openocd_args.extend(
|
||||||
debug_tools.get(upload_protocol).get("server").get("arguments", []))
|
debug_tools.get(upload_protocol).get("server").get("arguments", []))
|
||||||
if env.GetProjectOption("debug_speed"):
|
# always use a default speed directive of 1000khz or an otherwise configured speed
|
||||||
openocd_args.extend(
|
# otherwise, flash failures were observed
|
||||||
["-c", "adapter speed %s" % env.GetProjectOption("debug_speed")]
|
speed = env.GetProjectOption("debug_speed") or "1000"
|
||||||
)
|
openocd_args.extend(
|
||||||
openocd_args.extend([
|
["-c", "adapter speed %s" % speed]
|
||||||
"-c", "program {$SOURCE} %s verify reset; shutdown;" %
|
)
|
||||||
board.get("upload.offset_address", "")
|
if "uploadfs" in COMMAND_LINE_TARGETS:
|
||||||
])
|
# filesystem upload. use FS_START.
|
||||||
|
openocd_args.extend([
|
||||||
|
"-c", "program {$SOURCE} ${hex(FS_START)} verify reset; shutdown;"
|
||||||
|
])
|
||||||
|
else:
|
||||||
|
# normal firmware upload. flash starts at 0x10000000
|
||||||
|
openocd_args.extend([
|
||||||
|
"-c", "program {$SOURCE} %s verify reset; shutdown;" %
|
||||||
|
board.get("upload.offset_address", "")
|
||||||
|
])
|
||||||
openocd_args = [
|
openocd_args = [
|
||||||
f.replace("$PACKAGE_DIR", platform.get_package_dir(
|
f.replace("$PACKAGE_DIR", platform.get_package_dir(
|
||||||
"tool-openocd-raspberrypi") or "")
|
"tool-openocd-rp2040-earlephilhower") or "")
|
||||||
for f in openocd_args
|
for f in openocd_args
|
||||||
]
|
]
|
||||||
env.Replace(
|
env.Replace(
|
||||||
UPLOADER="openocd",
|
UPLOADER="openocd",
|
||||||
UPLOADERFLAGS=openocd_args,
|
UPLOADERFLAGS=openocd_args,
|
||||||
UPLOADCMD="$UPLOADER $UPLOADERFLAGS")
|
UPLOADCMD="$UPLOADER $UPLOADERFLAGS")
|
||||||
|
if not board.get("upload").get("offset_address"):
|
||||||
|
upload_source = target_elf
|
||||||
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
||||||
|
|
||||||
# custom upload tool
|
# custom upload tool
|
||||||
@ -231,9 +537,8 @@ if not upload_actions:
|
|||||||
sys.stderr.write("Warning! Unknown upload protocol %s\n" % upload_protocol)
|
sys.stderr.write("Warning! Unknown upload protocol %s\n" % upload_protocol)
|
||||||
|
|
||||||
AlwaysBuild(env.Alias("upload", upload_source, upload_actions))
|
AlwaysBuild(env.Alias("upload", upload_source, upload_actions))
|
||||||
|
env.AddPlatformTarget("uploadfs", target_firm, upload_actions, "Upload Filesystem Image")
|
||||||
#
|
#
|
||||||
# Default targets
|
# Default targets
|
||||||
#
|
#
|
||||||
|
|
||||||
Default([target_buildprog, target_size])
|
Default([target_buildprog, target_size])
|
||||||
|
29
examples/arduino-blink/README.md
Normal file
29
examples/arduino-blink/README.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
How to build PlatformIO based project
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html)
|
||||||
|
2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip)
|
||||||
|
3. Extract ZIP archive
|
||||||
|
4. Run these commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Change directory to example
|
||||||
|
$ cd platform-raspberrypi/examples/arduino-blink
|
||||||
|
|
||||||
|
# Build project
|
||||||
|
$ pio run
|
||||||
|
|
||||||
|
# Upload firmware
|
||||||
|
$ pio run --target upload
|
||||||
|
|
||||||
|
# Clean build files
|
||||||
|
$ pio run --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
For Raspberry Pi Pico devices, two Arduino cores exist:
|
||||||
|
* https://github.com/arduino/ArduinoCore-mbed
|
||||||
|
* https://github.com/earlephilhower/arduino-pico
|
||||||
|
|
||||||
|
This examples showcases how to use both of these cores in the `platformio.ini`.
|
@ -1,32 +0,0 @@
|
|||||||
.. Copyright 2014-present PlatformIO <contact@platformio.org>
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
How to build PlatformIO based project
|
|
||||||
=====================================
|
|
||||||
|
|
||||||
1. `Install PlatformIO Core <http://docs.platformio.org/page/core.html>`_
|
|
||||||
2. Download `development platform with examples <https://github.com/platformio/platform-raspberrypi/archive/develop.zip>`_
|
|
||||||
3. Extract ZIP archive
|
|
||||||
4. Run these commands:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
# Change directory to example
|
|
||||||
> cd platform-raspberrypi/examples/arduino-blink
|
|
||||||
|
|
||||||
# Build project
|
|
||||||
> platformio run
|
|
||||||
|
|
||||||
# Upload firmware
|
|
||||||
> platformio run --target upload
|
|
||||||
|
|
||||||
# Clean build files
|
|
||||||
> platformio run --target clean
|
|
@ -5,7 +5,7 @@
|
|||||||
; Library options: dependencies, extra library storages
|
; Library options: dependencies, extra library storages
|
||||||
;
|
;
|
||||||
; Please visit documentation for the other options and examples
|
; Please visit documentation for the other options and examples
|
||||||
; http://docs.platformio.org/page/projectconf.html
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
[env]
|
[env]
|
||||||
platform = raspberrypi
|
platform = raspberrypi
|
||||||
@ -16,3 +16,32 @@ board = pico
|
|||||||
|
|
||||||
[env:nanorp2040connect]
|
[env:nanorp2040connect]
|
||||||
board = nanorp2040connect
|
board = nanorp2040connect
|
||||||
|
|
||||||
|
[env:pico_earle]
|
||||||
|
board = pico
|
||||||
|
; "pico" board can use both mbed and earlephilhower core, must select here
|
||||||
|
board_build.core = earlephilhower
|
||||||
|
|
||||||
|
[env:nanorp2040connect_earle]
|
||||||
|
board = nanorp2040connect
|
||||||
|
; "nanorp2040connect" board can use both mbed and earlephilhower core, must select here
|
||||||
|
board_build.core = earlephilhower
|
||||||
|
|
||||||
|
; earlephilhower-only boards
|
||||||
|
[env:rpipico]
|
||||||
|
board = rpipico
|
||||||
|
|
||||||
|
[env:adafruit_feather]
|
||||||
|
board = adafruit_feather
|
||||||
|
|
||||||
|
[env:seeed_xiao_rp2040]
|
||||||
|
board = seeed_xiao_rp2040
|
||||||
|
|
||||||
|
[env:sparkfun_thingplusrp2040]
|
||||||
|
board = sparkfun_thingplusrp2040
|
||||||
|
|
||||||
|
[env:pimoroni_pga2040]
|
||||||
|
board = pimoroni_pga2040
|
||||||
|
|
||||||
|
[env:rpipicow]
|
||||||
|
board = rpipicow
|
||||||
|
27
examples/arduino-external-libs/README.md
Normal file
27
examples/arduino-external-libs/README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
How to build PlatformIO based project
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html)
|
||||||
|
2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip)
|
||||||
|
3. Extract ZIP archive
|
||||||
|
4. Run these commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Change directory to example
|
||||||
|
$ cd platform-raspberrypi/examples/arduino-external-libs
|
||||||
|
|
||||||
|
# Build project
|
||||||
|
$ pio run
|
||||||
|
|
||||||
|
# Upload firmware
|
||||||
|
$ pio run --target upload
|
||||||
|
|
||||||
|
# Build specific environment
|
||||||
|
$ pio run -e pico
|
||||||
|
|
||||||
|
# Upload firmware for the specific environment
|
||||||
|
$ pio run -e pico --target upload
|
||||||
|
|
||||||
|
# Clean build files
|
||||||
|
$ pio run --target clean
|
||||||
|
```
|
@ -1,38 +0,0 @@
|
|||||||
.. Copyright 2014-present PlatformIO <contact@platformio.org>
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
How to build PlatformIO based project
|
|
||||||
=====================================
|
|
||||||
|
|
||||||
1. `Install PlatformIO Core <http://docs.platformio.org/page/core.html>`_
|
|
||||||
2. Download `development platform with examples <https://github.com/platformio/platform-raspberrypi/archive/develop.zip>`_
|
|
||||||
3. Extract ZIP archive
|
|
||||||
4. Run these commands:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
# Change directory to example
|
|
||||||
> cd platform-raspberrypi/examples/arduino-external-libs
|
|
||||||
|
|
||||||
# Build project
|
|
||||||
> platformio run
|
|
||||||
|
|
||||||
# Upload firmware
|
|
||||||
> platformio run --target upload
|
|
||||||
|
|
||||||
# Build specific environment
|
|
||||||
> platformio run -e pico
|
|
||||||
|
|
||||||
# Upload firmware for the specific environment
|
|
||||||
> platformio run -e pico --target upload
|
|
||||||
|
|
||||||
# Clean build files
|
|
||||||
> platformio run --target clean
|
|
@ -5,7 +5,7 @@
|
|||||||
; Library options: dependencies, extra library storages
|
; Library options: dependencies, extra library storages
|
||||||
;
|
;
|
||||||
; Please visit documentation for the other options and examples
|
; Please visit documentation for the other options and examples
|
||||||
; http://docs.platformio.org/page/projectconf.html
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
[env]
|
[env]
|
||||||
platform = raspberrypi
|
platform = raspberrypi
|
||||||
|
1
examples/arduino-ota/.gitignore
vendored
Normal file
1
examples/arduino-ota/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.pio
|
33
examples/arduino-ota/README.md
Normal file
33
examples/arduino-ota/README.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
How to build PlatformIO based project
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html)
|
||||||
|
2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip)
|
||||||
|
3. Extract ZIP archive
|
||||||
|
4. Run these commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Change directory to example
|
||||||
|
$ cd platform-raspberrypi/examples/arduino-ota
|
||||||
|
|
||||||
|
# Build project
|
||||||
|
$ pio run
|
||||||
|
|
||||||
|
# Upload firmware
|
||||||
|
$ pio run --target upload
|
||||||
|
|
||||||
|
# Clean build files
|
||||||
|
$ pio run --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
This examples showcases the usage of Over-The-Air (OTA) updates with the Raspberry Pi Pico W.
|
||||||
|
|
||||||
|
For more details, see the [documentation](https://arduino-pico.readthedocs.io/en/latest/ota.html).
|
||||||
|
|
||||||
|
For the initial firmware update, use the `rpipicow_via_usb` environment.
|
||||||
|
|
||||||
|
Then, open the serial monitor and note down the IP of the Pico that it outputs.
|
||||||
|
|
||||||
|
Use this IP as the `upload_port` in the `rpipicow_via_ota` environment and use the "Upload" project task there.
|
39
examples/arduino-ota/include/README
Normal file
39
examples/arduino-ota/include/README
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
This directory is intended for project header files.
|
||||||
|
|
||||||
|
A header file is a file containing C declarations and macro definitions
|
||||||
|
to be shared between several project source files. You request the use of a
|
||||||
|
header file in your project source file (C, C++, etc) located in `src` folder
|
||||||
|
by including it, with the C preprocessing directive `#include'.
|
||||||
|
|
||||||
|
```src/main.c
|
||||||
|
|
||||||
|
#include "header.h"
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Including a header file produces the same results as copying the header file
|
||||||
|
into each source file that needs it. Such copying would be time-consuming
|
||||||
|
and error-prone. With a header file, the related declarations appear
|
||||||
|
in only one place. If they need to be changed, they can be changed in one
|
||||||
|
place, and programs that include the header file will automatically use the
|
||||||
|
new version when next recompiled. The header file eliminates the labor of
|
||||||
|
finding and changing all the copies as well as the risk that a failure to
|
||||||
|
find one copy will result in inconsistencies within a program.
|
||||||
|
|
||||||
|
In C, the usual convention is to give header files names that end with `.h'.
|
||||||
|
It is most portable to use only letters, digits, dashes, and underscores in
|
||||||
|
header file names, and at most one dot.
|
||||||
|
|
||||||
|
Read more about using header files in official GCC documentation:
|
||||||
|
|
||||||
|
* Include Syntax
|
||||||
|
* Include Operation
|
||||||
|
* Once-Only Headers
|
||||||
|
* Computed Includes
|
||||||
|
|
||||||
|
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
|
46
examples/arduino-ota/lib/README
Normal file
46
examples/arduino-ota/lib/README
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
This directory is intended for project specific (private) libraries.
|
||||||
|
PlatformIO will compile them to static libraries and link into executable file.
|
||||||
|
|
||||||
|
The source code of each library should be placed in a an own separate directory
|
||||||
|
("lib/your_library_name/[here are source files]").
|
||||||
|
|
||||||
|
For example, see a structure of the following two libraries `Foo` and `Bar`:
|
||||||
|
|
||||||
|
|--lib
|
||||||
|
| |
|
||||||
|
| |--Bar
|
||||||
|
| | |--docs
|
||||||
|
| | |--examples
|
||||||
|
| | |--src
|
||||||
|
| | |- Bar.c
|
||||||
|
| | |- Bar.h
|
||||||
|
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
|
||||||
|
| |
|
||||||
|
| |--Foo
|
||||||
|
| | |- Foo.c
|
||||||
|
| | |- Foo.h
|
||||||
|
| |
|
||||||
|
| |- README --> THIS FILE
|
||||||
|
|
|
||||||
|
|- platformio.ini
|
||||||
|
|--src
|
||||||
|
|- main.c
|
||||||
|
|
||||||
|
and a contents of `src/main.c`:
|
||||||
|
```
|
||||||
|
#include <Foo.h>
|
||||||
|
#include <Bar.h>
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
PlatformIO Library Dependency Finder will find automatically dependent
|
||||||
|
libraries scanning project source files.
|
||||||
|
|
||||||
|
More information about PlatformIO Library Dependency Finder
|
||||||
|
- https://docs.platformio.org/page/librarymanager/ldf.html
|
23
examples/arduino-ota/platformio.ini
Normal file
23
examples/arduino-ota/platformio.ini
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter, extra scripting
|
||||||
|
; Upload options: custom port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[env]
|
||||||
|
platform = raspberrypi
|
||||||
|
framework = arduino
|
||||||
|
|
||||||
|
; upload via USB
|
||||||
|
[env:rpipicow_via_usb]
|
||||||
|
board = rpipicow
|
||||||
|
upload_protocol = mbed
|
||||||
|
|
||||||
|
; upload via OTA (change IP)
|
||||||
|
[env:rpipicow_via_ota]
|
||||||
|
board = rpipicow
|
||||||
|
upload_protocol = espota
|
||||||
|
upload_port = 192.168.0.206
|
78
examples/arduino-ota/src/main.cpp
Normal file
78
examples/arduino-ota/src/main.cpp
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#include <ESP8266WiFi.h>
|
||||||
|
#include <ESP8266mDNS.h>
|
||||||
|
#include <WiFiUdp.h>
|
||||||
|
#include <ArduinoOTA.h>
|
||||||
|
#include "Updater_Signing.h"
|
||||||
|
|
||||||
|
#ifndef STASSID
|
||||||
|
#define STASSID "YourSSID"
|
||||||
|
#define STAPSK "YourPassword"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char* ssid = STASSID;
|
||||||
|
const char* password = STAPSK;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
Serial.println("Booting");
|
||||||
|
WiFi.mode(WIFI_STA);
|
||||||
|
WiFi.begin(ssid, password);
|
||||||
|
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
||||||
|
Serial.println("Connection Failed! Rebooting...");
|
||||||
|
delay(5000);
|
||||||
|
rp2040.restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Port defaults to 8266
|
||||||
|
// ArduinoOTA.setPort(8266);
|
||||||
|
|
||||||
|
// Hostname defaults to esp8266-[ChipID]
|
||||||
|
// ArduinoOTA.setHostname("myesp8266");
|
||||||
|
|
||||||
|
// No authentication by default
|
||||||
|
// ArduinoOTA.setPassword("admin");
|
||||||
|
|
||||||
|
// Password can be set with it's md5 value as well
|
||||||
|
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
|
||||||
|
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
|
||||||
|
|
||||||
|
ArduinoOTA.onStart([]() {
|
||||||
|
String type;
|
||||||
|
if (ArduinoOTA.getCommand() == U_FLASH) {
|
||||||
|
type = "sketch";
|
||||||
|
} else { // U_FS
|
||||||
|
type = "filesystem";
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: if updating FS this would be the place to unmount FS using FS.end()
|
||||||
|
Serial.println("Start updating " + type);
|
||||||
|
});
|
||||||
|
ArduinoOTA.onEnd([]() {
|
||||||
|
Serial.println("\nEnd");
|
||||||
|
});
|
||||||
|
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
|
||||||
|
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
|
||||||
|
});
|
||||||
|
ArduinoOTA.onError([](ota_error_t error) {
|
||||||
|
Serial.printf("Error[%u]: ", error);
|
||||||
|
if (error == OTA_AUTH_ERROR) {
|
||||||
|
Serial.println("Auth Failed");
|
||||||
|
} else if (error == OTA_BEGIN_ERROR) {
|
||||||
|
Serial.println("Begin Failed");
|
||||||
|
} else if (error == OTA_CONNECT_ERROR) {
|
||||||
|
Serial.println("Connect Failed");
|
||||||
|
} else if (error == OTA_RECEIVE_ERROR) {
|
||||||
|
Serial.println("Receive Failed");
|
||||||
|
} else if (error == OTA_END_ERROR) {
|
||||||
|
Serial.println("End Failed");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ArduinoOTA.begin();
|
||||||
|
Serial.println("Ready");
|
||||||
|
Serial.print("IP address: ");
|
||||||
|
Serial.println(WiFi.localIP());
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
ArduinoOTA.handle();
|
||||||
|
}
|
11
examples/arduino-ota/test/README
Normal file
11
examples/arduino-ota/test/README
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
This directory is intended for PIO Unit Testing and project tests.
|
||||||
|
|
||||||
|
Unit Testing is a software testing method by which individual units of
|
||||||
|
source code, sets of one or more MCU program modules together with associated
|
||||||
|
control data, usage procedures, and operating procedures, are tested to
|
||||||
|
determine whether they are fit for use. Unit testing finds problems early
|
||||||
|
in the development cycle.
|
||||||
|
|
||||||
|
More information about PIO Unit Testing:
|
||||||
|
- https://docs.platformio.org/page/plus/unit-testing.html
|
1
examples/arduino-signed-ota/.gitignore
vendored
Normal file
1
examples/arduino-signed-ota/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.pio
|
37
examples/arduino-signed-ota/README.md
Normal file
37
examples/arduino-signed-ota/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
How to build PlatformIO based project
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html)
|
||||||
|
2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip)
|
||||||
|
3. Extract ZIP archive
|
||||||
|
4. Run these commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Change directory to example
|
||||||
|
$ cd platform-raspberrypi/examples/arduino-signed-ota
|
||||||
|
|
||||||
|
# Build project
|
||||||
|
$ pio run
|
||||||
|
|
||||||
|
# Upload firmware
|
||||||
|
$ pio run --target upload
|
||||||
|
|
||||||
|
# Clean build files
|
||||||
|
$ pio run --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
This examples showcases the usage of **signed** Over-The-Air (OTA) updates with the Raspberry Pi Pico W.
|
||||||
|
|
||||||
|
The difference to regular OTA updates is that update binaries are signed using the `private.key` to produce a `firmware.bin.signed` file.
|
||||||
|
|
||||||
|
The firmware then uses the `public.key` file to verify the signature on the binary it receives in an OTA update. It will reject OTA update binaries that were not properly signed.
|
||||||
|
|
||||||
|
For more details, see the [documentation](https://arduino-pico.readthedocs.io/en/latest/ota.html).
|
||||||
|
|
||||||
|
For the initial firmware update, use the `rpipicow_via_usb` environment.
|
||||||
|
|
||||||
|
Then, open the serial monitor and note down the IP of the Pico that it outputs.
|
||||||
|
|
||||||
|
Use this IP as the `upload_port` in the `rpipicow_via_ota` environment and use the "Upload" project task there.
|
39
examples/arduino-signed-ota/include/README
Normal file
39
examples/arduino-signed-ota/include/README
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
This directory is intended for project header files.
|
||||||
|
|
||||||
|
A header file is a file containing C declarations and macro definitions
|
||||||
|
to be shared between several project source files. You request the use of a
|
||||||
|
header file in your project source file (C, C++, etc) located in `src` folder
|
||||||
|
by including it, with the C preprocessing directive `#include'.
|
||||||
|
|
||||||
|
```src/main.c
|
||||||
|
|
||||||
|
#include "header.h"
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Including a header file produces the same results as copying the header file
|
||||||
|
into each source file that needs it. Such copying would be time-consuming
|
||||||
|
and error-prone. With a header file, the related declarations appear
|
||||||
|
in only one place. If they need to be changed, they can be changed in one
|
||||||
|
place, and programs that include the header file will automatically use the
|
||||||
|
new version when next recompiled. The header file eliminates the labor of
|
||||||
|
finding and changing all the copies as well as the risk that a failure to
|
||||||
|
find one copy will result in inconsistencies within a program.
|
||||||
|
|
||||||
|
In C, the usual convention is to give header files names that end with `.h'.
|
||||||
|
It is most portable to use only letters, digits, dashes, and underscores in
|
||||||
|
header file names, and at most one dot.
|
||||||
|
|
||||||
|
Read more about using header files in official GCC documentation:
|
||||||
|
|
||||||
|
* Include Syntax
|
||||||
|
* Include Operation
|
||||||
|
* Once-Only Headers
|
||||||
|
* Computed Includes
|
||||||
|
|
||||||
|
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
|
46
examples/arduino-signed-ota/lib/README
Normal file
46
examples/arduino-signed-ota/lib/README
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
This directory is intended for project specific (private) libraries.
|
||||||
|
PlatformIO will compile them to static libraries and link into executable file.
|
||||||
|
|
||||||
|
The source code of each library should be placed in a an own separate directory
|
||||||
|
("lib/your_library_name/[here are source files]").
|
||||||
|
|
||||||
|
For example, see a structure of the following two libraries `Foo` and `Bar`:
|
||||||
|
|
||||||
|
|--lib
|
||||||
|
| |
|
||||||
|
| |--Bar
|
||||||
|
| | |--docs
|
||||||
|
| | |--examples
|
||||||
|
| | |--src
|
||||||
|
| | |- Bar.c
|
||||||
|
| | |- Bar.h
|
||||||
|
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
|
||||||
|
| |
|
||||||
|
| |--Foo
|
||||||
|
| | |- Foo.c
|
||||||
|
| | |- Foo.h
|
||||||
|
| |
|
||||||
|
| |- README --> THIS FILE
|
||||||
|
|
|
||||||
|
|- platformio.ini
|
||||||
|
|--src
|
||||||
|
|- main.c
|
||||||
|
|
||||||
|
and a contents of `src/main.c`:
|
||||||
|
```
|
||||||
|
#include <Foo.h>
|
||||||
|
#include <Bar.h>
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
PlatformIO Library Dependency Finder will find automatically dependent
|
||||||
|
libraries scanning project source files.
|
||||||
|
|
||||||
|
More information about PlatformIO Library Dependency Finder
|
||||||
|
- https://docs.platformio.org/page/librarymanager/ldf.html
|
23
examples/arduino-signed-ota/platformio.ini
Normal file
23
examples/arduino-signed-ota/platformio.ini
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter, extra scripting
|
||||||
|
; Upload options: custom port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[env]
|
||||||
|
platform = raspberrypi
|
||||||
|
framework = arduino
|
||||||
|
|
||||||
|
; upload via USB
|
||||||
|
[env:rpipicow_via_usb]
|
||||||
|
board = rpipicow
|
||||||
|
upload_protocol = mbed
|
||||||
|
|
||||||
|
; upload via OTA (change IP)
|
||||||
|
[env:rpipicow_via_ota]
|
||||||
|
board = rpipicow
|
||||||
|
upload_protocol = espota
|
||||||
|
upload_port = 192.168.0.206
|
78
examples/arduino-signed-ota/src/main.cpp
Normal file
78
examples/arduino-signed-ota/src/main.cpp
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#include <ESP8266WiFi.h>
|
||||||
|
#include <ESP8266mDNS.h>
|
||||||
|
#include <WiFiUdp.h>
|
||||||
|
#include <ArduinoOTA.h>
|
||||||
|
#include "Updater_Signing.h"
|
||||||
|
|
||||||
|
#ifndef STASSID
|
||||||
|
#define STASSID "YourSSID"
|
||||||
|
#define STAPSK "YourPassword"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char* ssid = STASSID;
|
||||||
|
const char* password = STAPSK;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
Serial.println("Booting");
|
||||||
|
WiFi.mode(WIFI_STA);
|
||||||
|
WiFi.begin(ssid, password);
|
||||||
|
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
||||||
|
Serial.println("Connection Failed! Rebooting...");
|
||||||
|
delay(5000);
|
||||||
|
rp2040.restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Port defaults to 8266
|
||||||
|
// ArduinoOTA.setPort(8266);
|
||||||
|
|
||||||
|
// Hostname defaults to esp8266-[ChipID]
|
||||||
|
// ArduinoOTA.setHostname("myesp8266");
|
||||||
|
|
||||||
|
// No authentication by default
|
||||||
|
// ArduinoOTA.setPassword("admin");
|
||||||
|
|
||||||
|
// Password can be set with it's md5 value as well
|
||||||
|
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
|
||||||
|
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
|
||||||
|
|
||||||
|
ArduinoOTA.onStart([]() {
|
||||||
|
String type;
|
||||||
|
if (ArduinoOTA.getCommand() == U_FLASH) {
|
||||||
|
type = "sketch";
|
||||||
|
} else { // U_FS
|
||||||
|
type = "filesystem";
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: if updating FS this would be the place to unmount FS using FS.end()
|
||||||
|
Serial.println("Start updating " + type);
|
||||||
|
});
|
||||||
|
ArduinoOTA.onEnd([]() {
|
||||||
|
Serial.println("\nEnd");
|
||||||
|
});
|
||||||
|
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
|
||||||
|
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
|
||||||
|
});
|
||||||
|
ArduinoOTA.onError([](ota_error_t error) {
|
||||||
|
Serial.printf("Error[%u]: ", error);
|
||||||
|
if (error == OTA_AUTH_ERROR) {
|
||||||
|
Serial.println("Auth Failed");
|
||||||
|
} else if (error == OTA_BEGIN_ERROR) {
|
||||||
|
Serial.println("Begin Failed");
|
||||||
|
} else if (error == OTA_CONNECT_ERROR) {
|
||||||
|
Serial.println("Connect Failed");
|
||||||
|
} else if (error == OTA_RECEIVE_ERROR) {
|
||||||
|
Serial.println("Receive Failed");
|
||||||
|
} else if (error == OTA_END_ERROR) {
|
||||||
|
Serial.println("End Failed");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ArduinoOTA.begin();
|
||||||
|
Serial.println("Ready");
|
||||||
|
Serial.print("IP address: ");
|
||||||
|
Serial.println(WiFi.localIP());
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
ArduinoOTA.handle();
|
||||||
|
}
|
27
examples/arduino-signed-ota/src/private.key
Normal file
27
examples/arduino-signed-ota/src/private.key
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAu1Pt7yEk/xI+6cozLj5Bu4xV8gXDXcHS0rSJFfl4wBTk4UXp
|
||||||
|
aJRaLfR1k0juEEa5LBRZaoA0iLj2e6kfCibONx0VVoWmeqN2HBc3zkA1eqCksI0Q
|
||||||
|
Uudzto4KhKHp0odiZ2zo6c/2Tn1zqD/m3OLoSjVTbsJmGuwx8RGMBXozpg/uL0hH
|
||||||
|
flihX+HND4Xfw92QXv7SaPBhgvM9xyRxn0/w3J2nNjtuPuVN5vcQkd8ncMexVfy9
|
||||||
|
AWp+HSA5AT5N8CJ/EeIsdDMY1US28bUePzj1WIo75bZHKZNFw/iXe2xoPpm74qri
|
||||||
|
MNSlW2craFP2K3KYnI28vJeUU6t9I6LS9zt2zQIDAQABAoIBAE5GpuDKb8Qp4qIc
|
||||||
|
fMBxAVSWMn+cSuONj0O+bp4BDaTt1ioP5ZVukDQtt0ehLOEePFgf9LEc+1a6Ozy3
|
||||||
|
EaJTTs4W2Ai8djE+xqa8SPRlPjOMluSzPUP3NRHuTpTXd3YiXksrZjP1U02+/Cos
|
||||||
|
8ZIROtFvcPqSPso3MjMyitjrFFPqEtf1P+UiamjDrMSM72YX4W55kOkiCWCnAOmw
|
||||||
|
mGTlXOIqDSTBb1lloKWJfpB3RdnNo2izkU1HMBn7hVi433NUBA22o+RZhDFSZdD4
|
||||||
|
3kbkUqXd4p+vc/sh6muJtWS/COSIPFkLzdEYpBdt3XQ4FhlsRtILJaPWXa4OPjR6
|
||||||
|
ZoOwMB0CgYEA6OHfIofQiu4+HlTDN5YdyTmtYEYcrtbaQUxuQSEa2mshBphHP8uT
|
||||||
|
mYRVl2BzuprFmXZPz+FcjnPnfxqEehljvA3wMjA/PE+nQo9yyOC0N4ulXpkkqHdR
|
||||||
|
f+4KZVR7D+hesGe+57OQmvTqYZSHEt/ubjC9wZ90UFonLjsa4zibbrsCgYEAzexn
|
||||||
|
XDnThb3ffyBgvprP0IJjgMAEY0pXD++PKPQqPu9JMz68t7roYzkKFCFVOsaWpKxC
|
||||||
|
vX9mvYjTBjLpWh+ltIAN+EFz6seIbeSJ0RNybsAXYwT/mFWGHx2tMtlW6DgBu3UD
|
||||||
|
J2Yf76n0JaddBkfNMQI00Dl41+MU+AwwTB9fTBcCgYB2+f6Pm6d1cyYVROS/X1g0
|
||||||
|
V9011FwPDwFOXwftCka31Ad5YQ71jsIHqk44GjTF3xCYyJMZ917cAGcCzr9jydjk
|
||||||
|
WJKgcXm9DEy9ep//9Jzdy+BepgrObrcajriM8E424FaP9VDY+yojoICl/cXMZM9h
|
||||||
|
SFGJvDcmXgiqW9PuxhrSxQKBgAMN2oqXoPd+1W3BQS4ShbqF9IvYTThbxebKmsj0
|
||||||
|
thuw2NkVuR7Qetnd4rRhui3g/CL9GxBMb22oNdkFsEhR59dBfvOLpPh6dR+MIC8l
|
||||||
|
prDV0IL7c/8CZbbYbdUvPAa9rejl12IiNZ8MWj6kuNB7CCQN8FKWR6CMEaeMJrs6
|
||||||
|
S+OJAoGAbehNOUwEzmUKkfxf+279kBkgabcQ3NTaeSx0QOnI9KWHFGLYLQk9cMSu
|
||||||
|
maQJ1TYpbIoP1njzJ4bI2tynhwEuSMEhh4afP6U5H10NJX4PqSd0Rqc1vSJYcszr
|
||||||
|
5mUWil8FfbCBZ8jod2NQ55KYMVY5CphCqaK/s2bw2pvIR3uqJGg=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
9
examples/arduino-signed-ota/src/public.key
Normal file
9
examples/arduino-signed-ota/src/public.key
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1Pt7yEk/xI+6cozLj5B
|
||||||
|
u4xV8gXDXcHS0rSJFfl4wBTk4UXpaJRaLfR1k0juEEa5LBRZaoA0iLj2e6kfCibO
|
||||||
|
Nx0VVoWmeqN2HBc3zkA1eqCksI0QUudzto4KhKHp0odiZ2zo6c/2Tn1zqD/m3OLo
|
||||||
|
SjVTbsJmGuwx8RGMBXozpg/uL0hHflihX+HND4Xfw92QXv7SaPBhgvM9xyRxn0/w
|
||||||
|
3J2nNjtuPuVN5vcQkd8ncMexVfy9AWp+HSA5AT5N8CJ/EeIsdDMY1US28bUePzj1
|
||||||
|
WIo75bZHKZNFw/iXe2xoPpm74qriMNSlW2craFP2K3KYnI28vJeUU6t9I6LS9zt2
|
||||||
|
zQIDAQAB
|
||||||
|
-----END PUBLIC KEY-----
|
11
examples/arduino-signed-ota/test/README
Normal file
11
examples/arduino-signed-ota/test/README
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
This directory is intended for PIO Unit Testing and project tests.
|
||||||
|
|
||||||
|
Unit Testing is a software testing method by which individual units of
|
||||||
|
source code, sets of one or more MCU program modules together with associated
|
||||||
|
control data, usage procedures, and operating procedures, are tested to
|
||||||
|
determine whether they are fit for use. Unit testing finds problems early
|
||||||
|
in the development cycle.
|
||||||
|
|
||||||
|
More information about PIO Unit Testing:
|
||||||
|
- https://docs.platformio.org/page/plus/unit-testing.html
|
25
examples/arduino-wifi-scan/README.md
Normal file
25
examples/arduino-wifi-scan/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
How to build PlatformIO based project
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html)
|
||||||
|
2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip)
|
||||||
|
3. Extract ZIP archive
|
||||||
|
4. Run these commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Change directory to example
|
||||||
|
$ cd platform-raspberrypi/examples/arduino-wifi-scan
|
||||||
|
|
||||||
|
# Build project
|
||||||
|
$ pio run
|
||||||
|
|
||||||
|
# Upload firmware
|
||||||
|
$ pio run --target upload
|
||||||
|
|
||||||
|
# Clean build files
|
||||||
|
$ pio run --target clean
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
This example is only intended for the Raspberry Pi Pico W with the [Earle Philhower](https://github.com/earlephilhower/arduino-pico) core.
|
39
examples/arduino-wifi-scan/include/README
Normal file
39
examples/arduino-wifi-scan/include/README
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
This directory is intended for project header files.
|
||||||
|
|
||||||
|
A header file is a file containing C declarations and macro definitions
|
||||||
|
to be shared between several project source files. You request the use of a
|
||||||
|
header file in your project source file (C, C++, etc) located in `src` folder
|
||||||
|
by including it, with the C preprocessing directive `#include'.
|
||||||
|
|
||||||
|
```src/main.c
|
||||||
|
|
||||||
|
#include "header.h"
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Including a header file produces the same results as copying the header file
|
||||||
|
into each source file that needs it. Such copying would be time-consuming
|
||||||
|
and error-prone. With a header file, the related declarations appear
|
||||||
|
in only one place. If they need to be changed, they can be changed in one
|
||||||
|
place, and programs that include the header file will automatically use the
|
||||||
|
new version when next recompiled. The header file eliminates the labor of
|
||||||
|
finding and changing all the copies as well as the risk that a failure to
|
||||||
|
find one copy will result in inconsistencies within a program.
|
||||||
|
|
||||||
|
In C, the usual convention is to give header files names that end with `.h'.
|
||||||
|
It is most portable to use only letters, digits, dashes, and underscores in
|
||||||
|
header file names, and at most one dot.
|
||||||
|
|
||||||
|
Read more about using header files in official GCC documentation:
|
||||||
|
|
||||||
|
* Include Syntax
|
||||||
|
* Include Operation
|
||||||
|
* Once-Only Headers
|
||||||
|
* Computed Includes
|
||||||
|
|
||||||
|
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
|
46
examples/arduino-wifi-scan/lib/README
Normal file
46
examples/arduino-wifi-scan/lib/README
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
This directory is intended for project specific (private) libraries.
|
||||||
|
PlatformIO will compile them to static libraries and link into executable file.
|
||||||
|
|
||||||
|
The source code of each library should be placed in a an own separate directory
|
||||||
|
("lib/your_library_name/[here are source files]").
|
||||||
|
|
||||||
|
For example, see a structure of the following two libraries `Foo` and `Bar`:
|
||||||
|
|
||||||
|
|--lib
|
||||||
|
| |
|
||||||
|
| |--Bar
|
||||||
|
| | |--docs
|
||||||
|
| | |--examples
|
||||||
|
| | |--src
|
||||||
|
| | |- Bar.c
|
||||||
|
| | |- Bar.h
|
||||||
|
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
|
||||||
|
| |
|
||||||
|
| |--Foo
|
||||||
|
| | |- Foo.c
|
||||||
|
| | |- Foo.h
|
||||||
|
| |
|
||||||
|
| |- README --> THIS FILE
|
||||||
|
|
|
||||||
|
|- platformio.ini
|
||||||
|
|--src
|
||||||
|
|- main.c
|
||||||
|
|
||||||
|
and a contents of `src/main.c`:
|
||||||
|
```
|
||||||
|
#include <Foo.h>
|
||||||
|
#include <Bar.h>
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
PlatformIO Library Dependency Finder will find automatically dependent
|
||||||
|
libraries scanning project source files.
|
||||||
|
|
||||||
|
More information about PlatformIO Library Dependency Finder
|
||||||
|
- https://docs.platformio.org/page/librarymanager/ldf.html
|
15
examples/arduino-wifi-scan/platformio.ini
Normal file
15
examples/arduino-wifi-scan/platformio.ini
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter, extra scripting
|
||||||
|
; Upload options: custom port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[env]
|
||||||
|
platform = raspberrypi
|
||||||
|
framework = arduino
|
||||||
|
|
||||||
|
[env:rpipicow]
|
||||||
|
board = rpipicow
|
43
examples/arduino-wifi-scan/src/main.cpp
Normal file
43
examples/arduino-wifi-scan/src/main.cpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
// Simple WiFi network scanner application
|
||||||
|
// Released to the public domain in 2022 by Earle F. Philhower, III
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *macToString(uint8_t mac[6]) {
|
||||||
|
static char s[20];
|
||||||
|
sprintf(s, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *encToString(uint8_t enc) {
|
||||||
|
switch (enc) {
|
||||||
|
case ENC_TYPE_NONE: return "NONE";
|
||||||
|
case ENC_TYPE_TKIP: return "WPA";
|
||||||
|
case ENC_TYPE_CCMP: return "WPA2";
|
||||||
|
case ENC_TYPE_AUTO: return "AUTO";
|
||||||
|
}
|
||||||
|
return "UNKN";
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
delay(5000);
|
||||||
|
Serial.printf("Beginning scan at %d\n", millis());
|
||||||
|
auto cnt = WiFi.scanNetworks();
|
||||||
|
if (!cnt) {
|
||||||
|
Serial.printf("No networks found\n");
|
||||||
|
} else {
|
||||||
|
Serial.printf("Found %d networks\n\n", cnt);
|
||||||
|
Serial.printf("%32s %5s %17s %2s %4s\n", "SSID", "ENC", "BSSID ", "CH", "RSSI");
|
||||||
|
for (auto i = 0; i < cnt; i++) {
|
||||||
|
uint8_t bssid[6];
|
||||||
|
WiFi.BSSID(i, bssid);
|
||||||
|
Serial.printf("%32s %5s %17s %2d %4d\n", WiFi.SSID(i), encToString(WiFi.encryptionType(i)), macToString(bssid), WiFi.channel(i), WiFi.RSSI(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Serial.printf("\n--- Sleeping ---\n\n\n");
|
||||||
|
delay(5000);
|
||||||
|
}
|
11
examples/arduino-wifi-scan/test/README
Normal file
11
examples/arduino-wifi-scan/test/README
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
This directory is intended for PIO Unit Testing and project tests.
|
||||||
|
|
||||||
|
Unit Testing is a software testing method by which individual units of
|
||||||
|
source code, sets of one or more MCU program modules together with associated
|
||||||
|
control data, usage procedures, and operating procedures, are tested to
|
||||||
|
determine whether they are fit for use. Unit testing finds problems early
|
||||||
|
in the development cycle.
|
||||||
|
|
||||||
|
More information about PIO Unit Testing:
|
||||||
|
- https://docs.platformio.org/page/plus/unit-testing.html
|
6310
misc/svd/rp2040.svd
6310
misc/svd/rp2040.svd
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "raspberrypi",
|
"name": "raspberrypi",
|
||||||
"title": "Raspberry Pi RP2040",
|
"title": "Raspberry Pi RP2040",
|
||||||
"description": "RP2040 is a low-cost, high-performance microcontroller device with with a large on-chip memory, symmetric dual-core processor complex, and rich peripheral.",
|
"description": "RP2040 is a low-cost, high-performance microcontroller device with a large on-chip memory, symmetric dual-core processor complex, and rich peripheral.",
|
||||||
"homepage": "https://www.raspberrypi.org/documentation/rp2040/getting-started/",
|
"homepage": "https://www.raspberrypi.org/documentation/rp2040/getting-started/",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@ -12,48 +12,65 @@
|
|||||||
"RP2040"
|
"RP2040"
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"platformio": "^5"
|
"platformio": "^6"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/platformio/platform-raspberrypi.git"
|
"url": "https://github.com/platformio/platform-raspberrypi.git"
|
||||||
},
|
},
|
||||||
"version": "1.0.0",
|
"version": "1.9.0",
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"arduino": {
|
"arduino": {
|
||||||
"package": "framework-arduino-mbed",
|
"package": "framework-arduino-mbed",
|
||||||
"script": "builder/frameworks/arduino/mbed-core/arduino-core-mbed.py"
|
"script": "builder/frameworks/arduino/arduino.py"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"toolchain-gccarmnoneeabi": {
|
"toolchain-gccarmnoneeabi": {
|
||||||
"type": "toolchain",
|
"type": "toolchain",
|
||||||
"owner": "platformio",
|
"owner": "platformio",
|
||||||
"version": "~1.90201.0"
|
"version": ">=1.90201.0,<1.90302.0"
|
||||||
|
},
|
||||||
|
"toolchain-rp2040-earlephilhower": {
|
||||||
|
"type": "toolchain",
|
||||||
|
"optional": true,
|
||||||
|
"owner": "earlephilhower",
|
||||||
|
"version": "~5.100300.0"
|
||||||
},
|
},
|
||||||
"framework-arduino-mbed": {
|
"framework-arduino-mbed": {
|
||||||
"type": "framework",
|
"type": "framework",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"owner": "platformio",
|
"owner": "platformio",
|
||||||
"version": "~2.0.0"
|
"version": "~4.0.2"
|
||||||
|
},
|
||||||
|
"framework-arduinopico": {
|
||||||
|
"type": "framework",
|
||||||
|
"optional": true,
|
||||||
|
"owner": "earlephilhower",
|
||||||
|
"version": "https://github.com/earlephilhower/arduino-pico.git#456b474a48175328ec251711761dcf957bf09801"
|
||||||
},
|
},
|
||||||
"tool-rp2040tools": {
|
"tool-rp2040tools": {
|
||||||
"type": "uploader",
|
"type": "uploader",
|
||||||
"optional": true,
|
|
||||||
"owner": "platformio",
|
"owner": "platformio",
|
||||||
"version": "~1.0.2"
|
"version": "~1.0.2"
|
||||||
},
|
},
|
||||||
"tool-openocd-raspberrypi": {
|
"tool-openocd-rp2040-earlephilhower": {
|
||||||
"type": "uploader",
|
"type": "uploader",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"owner": "platformio",
|
"owner": "earlephilhower",
|
||||||
"version": "~2.1100.0"
|
"version": "~5.100300.0"
|
||||||
},
|
},
|
||||||
"tool-jlink": {
|
"tool-jlink": {
|
||||||
"type": "uploader",
|
"type": "uploader",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"owner": "platformio",
|
"owner": "platformio",
|
||||||
"version": "~1.72000.0"
|
"version": "^1.72000.0"
|
||||||
|
},
|
||||||
|
"tool-mklittlefs-rp2040-earlephilhower": {
|
||||||
|
"type": "uploader",
|
||||||
|
"optional": true,
|
||||||
|
"owner": "earlephilhower",
|
||||||
|
"version": "~5.100300.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user