Skip to content

Commit 5be4053

Browse files
authored
Add support for new SD/RTC and SubGHz boards (#663)
1 parent af0c1c8 commit 5be4053

File tree

8 files changed

+1316
-0
lines changed

8 files changed

+1316
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ See https://arduino-pico.readthedocs.io/en/latest/ along with the examples for m
2828
* Invector Labs Challenger NB RP2040 WiFi
2929
* Invector Labs Challenger RP2040 LTE
3030
* Invector Labs Challenger RP2040 LoRa
31+
* Invector Labs Challenger RP2040 SubGHz
32+
* Invector Labs Challenger RP2040 SD/RTC
3133
* Invector Labs RPICO32
3234
* Melopero Shake RP2040
3335
* Seeed XIAO RP2040

boards.txt

Lines changed: 1058 additions & 0 deletions
Large diffs are not rendered by default.

package/package_pico_index.template.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@
5959
{
6060
"name": "iLabs Challenger 2040 LoRa"
6161
},
62+
{
63+
"name": "iLabs Challenger 2040 SubGHz"
64+
},
6265
{
6366
"name": "iLabs Challenger 2040 WiFi"
6467
},
@@ -71,6 +74,9 @@
7174
{
7275
"name": "iLabs Challenger NB 2040 WiFi"
7376
},
77+
{
78+
"name": "iLabs Challenger 2040 SD/RTC"
79+
},
7480
{
7581
"name": "iLabs RPICO32"
7682
},

tools/json/challenger_2040_sdrtc.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"build": {
3+
"arduino": {
4+
"earlephilhower": {
5+
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
6+
"usb_vid": "0x2e8a",
7+
"usb_pid": "0x102d"
8+
}
9+
},
10+
"core": "earlephilhower",
11+
"cpu": "cortex-m0plus",
12+
"extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_SDRTC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
13+
"f_cpu": "133000000L",
14+
"hwids": [
15+
[
16+
"0x2E8A",
17+
"0x00C0"
18+
]
19+
],
20+
"mcu": "rp2040",
21+
"variant": "challenger_2040_sdrtc"
22+
},
23+
"debug": {
24+
"jlink_device": "RP2040_M0_0",
25+
"openocd_target": "rp2040.cfg",
26+
"svd_path": "rp2040.svd"
27+
},
28+
"frameworks": [
29+
"arduino"
30+
],
31+
"name": "Challenger 2040 SD/RTC",
32+
"upload": {
33+
"maximum_ram_size": 270336,
34+
"maximum_size": 8388608,
35+
"require_upload_port": true,
36+
"native_usb": true,
37+
"use_1200bps_touch": true,
38+
"wait_for_upload_port": false,
39+
"protocol": "picotool",
40+
"protocols": [
41+
"cmsis-dap",
42+
"jlink",
43+
"raspberrypi-swd",
44+
"picotool",
45+
"picoprobe"
46+
]
47+
},
48+
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
49+
"vendor": "iLabs"
50+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"build": {
3+
"arduino": {
4+
"earlephilhower": {
5+
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
6+
"usb_vid": "0x2e8a",
7+
"usb_pid": "0x1032"
8+
}
9+
},
10+
"core": "earlephilhower",
11+
"cpu": "cortex-m0plus",
12+
"extra_flags": "-D ARDUINO_CHALLENGER_2040_SUBGHZ_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
13+
"f_cpu": "133000000L",
14+
"hwids": [
15+
[
16+
"0x2E8A",
17+
"0x00C0"
18+
]
19+
],
20+
"mcu": "rp2040",
21+
"variant": "challenger_2040_subghz"
22+
},
23+
"debug": {
24+
"jlink_device": "RP2040_M0_0",
25+
"openocd_target": "rp2040.cfg",
26+
"svd_path": "rp2040.svd"
27+
},
28+
"frameworks": [
29+
"arduino"
30+
],
31+
"name": "Challenger 2040 SubGHz",
32+
"upload": {
33+
"maximum_ram_size": 270336,
34+
"maximum_size": 8388608,
35+
"require_upload_port": true,
36+
"native_usb": true,
37+
"use_1200bps_touch": true,
38+
"wait_for_upload_port": false,
39+
"protocol": "picotool",
40+
"protocols": [
41+
"cmsis-dap",
42+
"jlink",
43+
"raspberrypi-swd",
44+
"picotool",
45+
"picoprobe"
46+
]
47+
},
48+
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
49+
"vendor": "iLabs"
50+
}

tools/makeboards.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,12 @@ def MakeBoardJSON(name, vendor_name, product_name, vid, pid, pwr, boarddefine, f
273273

274274
# iLabs
275275
MakeBoard("challenger_2040_lora", "iLabs", "Challenger 2040 LoRa", "0x2e8a", "0x1023", 250, "CHALLENGER_2040_LORA_RP2040", 8, "boot2_w25q080_2_padded_checksum")
276+
MakeBoard("challenger_2040_subghz", "iLabs", "Challenger 2040 SubGHz", "0x2e8a", "0x1032", 250, "CHALLENGER_2040_SUBGHZ_RP2040", 8, "boot2_w25q080_2_padded_checksum")
276277
MakeBoard("challenger_2040_wifi", "iLabs", "Challenger 2040 WiFi", "0x2e8a", "0x1006", 250, "CHALLENGER_2040_WIFI_RP2040", 8, "boot2_w25q080_2_padded_checksum")
277278
MakeBoard("challenger_2040_lte", "iLabs", "Challenger 2040 LTE", "0x2e8a", "0x100b", 500, "CHALLENGER_2040_LTE_RP2040", 8, "boot2_w25q080_2_padded_checksum")
278279
MakeBoard("challenger_2040_wifi_ble", "iLabs", "Challenger 2040 WiFi/BLE", "0x2e8a", "0x102C", 500, "CHALLENGER_2040_WIFI_BLE_RP2040", 8, "boot2_w25q080_2_padded_checksum")
279280
MakeBoard("challenger_nb_2040_wifi", "iLabs", "Challenger NB 2040 WiFi", "0x2e8a", "0x100b", 500, "CHALLENGER_NB_2040_WIFI_RP2040", 8, "boot2_w25q080_2_padded_checksum")
281+
MakeBoard("challenger_2040_sdrtc", "iLabs", "Challenger 2040 SD/RTC", "0x2e8a", "0x102d", 250, "CHALLENGER_NB_2040_SDRTC_RP2040", 8, "boot2_w25q080_2_padded_checksum")
280282
MakeBoard("ilabs_rpico32", "iLabs", "RPICO32", "0x2e8a", "0x1010", 250, "ILABS_2040_RPICO32_RP2040", 8, "boot2_w25q080_2_padded_checksum")
281283

282284
# Melopera
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#pragma once
2+
3+
#define PINS_COUNT (26u)
4+
#define NUM_DIGITAL_PINS (26u)
5+
#define NUM_ANALOG_INPUTS (4u)
6+
#define NUM_ANALOG_OUTPUTS (0u)
7+
#define ADC_RESOLUTION (12u)
8+
9+
// LEDs
10+
#define PIN_LED (24u)
11+
12+
// Serial
13+
#define PIN_SERIAL1_TX (16u)
14+
#define PIN_SERIAL1_RX (17u)
15+
16+
// SPI
17+
#define PIN_SPI0_MISO (20u)
18+
#define PIN_SPI0_MOSI (23u)
19+
#define PIN_SPI0_SCK (22u)
20+
#define PIN_SPI0_SS (21u)
21+
22+
// Connected to SD card reader
23+
#define PIN_SPI1_MISO (12u)
24+
#define PIN_SPI1_MOSI (11u)
25+
#define PIN_SPI1_SCK (10u)
26+
#define PIN_SPI1_SS (9u)
27+
#define SD_SS PIN_SPI1_SS
28+
#define SS SD_SS
29+
#define SD_SPI SPI1
30+
#define SD_CARD_DETECT (13u)
31+
#define EXTERNAL_FLASH_USE_SPI SD_SPI
32+
#define EXTERNAL_FLASH_USE_CS SD_SS
33+
#define SDCARD_CS_PIN SD_SS
34+
35+
// Wire
36+
#define PIN_WIRE0_SDA (0u)
37+
#define PIN_WIRE0_SCL (1u)
38+
39+
// Not pinned out
40+
#define PIN_WIRE1_SDA (31u)
41+
#define PIN_WIRE1_SCL (31u)
42+
#define PIN_SERIAL2_RX (31u)
43+
#define PIN_SERIAL2_TX (31u)
44+
45+
#define SERIAL_HOWMANY (1u)
46+
#define SPI_HOWMANY (2u)
47+
#define WIRE_HOWMANY (1u)
48+
49+
#define LED_BUILTIN PIN_LED
50+
51+
static const uint8_t D0 = (16u);
52+
static const uint8_t D1 = (17u);
53+
static const uint8_t D2 = (20u);
54+
static const uint8_t D3 = (23u);
55+
static const uint8_t D4 = (22u);
56+
static const uint8_t D5 = (2u);
57+
static const uint8_t D6 = (3u);
58+
static const uint8_t D7 = (0u);
59+
static const uint8_t D8 = (1u);
60+
static const uint8_t D9 = (4u);
61+
static const uint8_t D10 = (5u);
62+
static const uint8_t D11 = (6u);
63+
static const uint8_t D12 = (7u);
64+
static const uint8_t D13 = (8u);
65+
static const uint8_t D14 = (13u);
66+
static const uint8_t D18 = (24u);
67+
68+
static const uint8_t A0 = (26u);
69+
static const uint8_t A1 = (27u);
70+
static const uint8_t A2 = (28u);
71+
static const uint8_t A3 = (29u);
72+
static const uint8_t A4 = (19u);
73+
static const uint8_t A5 = (21u);
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#pragma once
2+
3+
#define PINS_COUNT (25u)
4+
#define NUM_DIGITAL_PINS (25u)
5+
#define NUM_ANALOG_INPUTS (4u)
6+
#define NUM_ANALOG_OUTPUTS (0u)
7+
#define ADC_RESOLUTION (12u)
8+
9+
// LEDs
10+
#define PIN_LED (24u)
11+
12+
// Serial
13+
#define PIN_SERIAL1_TX (16u)
14+
#define PIN_SERIAL1_RX (17u)
15+
16+
// SPI
17+
#define PIN_SPI0_MISO (20u)
18+
#define PIN_SPI0_MOSI (23u)
19+
#define PIN_SPI0_SCK (22u)
20+
#define PIN_SPI0_SS (21u)
21+
22+
// Connected to sub GHz radio module
23+
#define PIN_SPI1_MISO (12u)
24+
#define PIN_SPI1_MOSI (11u)
25+
#define PIN_SPI1_SCK (10u)
26+
#define PIN_SPI1_SS (9u)
27+
#define RFM69HCW_SS (9u)
28+
#define RFM69HCW_DIO0 (14u)
29+
#define RFM69HCW_DIO1 (15u)
30+
#define RFM69HCW_DIO2 (18u)
31+
#define RFM69HCW_RST (13u)
32+
#define RFM69HCW_SPI SPI1
33+
34+
// Wire
35+
#define PIN_WIRE0_SDA (0u)
36+
#define PIN_WIRE0_SCL (1u)
37+
38+
// Not pinned out
39+
#define PIN_WIRE1_SDA (31u)
40+
#define PIN_WIRE1_SCL (31u)
41+
#define PIN_SERIAL2_RX (31u)
42+
#define PIN_SERIAL2_TX (31u)
43+
44+
#define SERIAL_HOWMANY (1u)
45+
#define SPI_HOWMANY (2u)
46+
#define WIRE_HOWMANY (1u)
47+
48+
#define LED_BUILTIN PIN_LED
49+
50+
static const uint8_t D0 = (16u);
51+
static const uint8_t D1 = (17u);
52+
static const uint8_t D2 = (20u);
53+
static const uint8_t D3 = (23u);
54+
static const uint8_t D4 = (22u);
55+
static const uint8_t D5 = (2u);
56+
static const uint8_t D6 = (3u);
57+
static const uint8_t D7 = (0u);
58+
static const uint8_t D8 = (1u);
59+
static const uint8_t D9 = (4u);
60+
static const uint8_t D10 = (5u);
61+
static const uint8_t D11 = (6u);
62+
static const uint8_t D12 = (7u);
63+
static const uint8_t D13 = (8u);
64+
static const uint8_t D14 = (13u);
65+
static const uint8_t D15 = (14u);
66+
static const uint8_t D16 = (15u);
67+
static const uint8_t D17 = (18u);
68+
static const uint8_t D18 = (24u);
69+
70+
static const uint8_t A0 = (26u);
71+
static const uint8_t A1 = (27u);
72+
static const uint8_t A2 = (28u);
73+
static const uint8_t A3 = (29u);
74+
static const uint8_t A4 = (19u);
75+
static const uint8_t A5 = (21u);

0 commit comments

Comments
 (0)