Add MyMakers RP2040 board (#2692)

This commit is contained in:
mr.chaiwat chainvong 2024-12-17 10:28:03 +07:00 committed by GitHub
parent dc0dc50e36
commit 06e3ef9556
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 341 additions and 1 deletions

View file

@ -68,10 +68,11 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
* Melopero Cookie RP2040
* Melopero Shake RP2040
* METE HOCA Akana R1
* MyMakers RP2040
* Neko Systems BL2040 Mini
* Olimex RP2040-Pico30
* Newsan Archi
* nullbits Bit-C PRO
* Olimex RP2040-Pico30
* Pimoroni PGA2040
* Pimoroni Pico Plus 2
* Pimoroni Pico Plus 2W

View file

@ -20711,6 +20711,244 @@ olimex_rp2040pico30_16mb.menu.uploadmethod.picoprobe_cmsis_dap.upload.maximum_da
olimex_rp2040pico30_16mb.menu.uploadmethod.picoprobe_cmsis_dap.upload.tool=picoprobe_cmsis_dap
olimex_rp2040pico30_16mb.menu.uploadmethod.picoprobe_cmsis_dap.upload.tool.default=picoprobe_cmsis_dap
# -----------------------------------
# MyMakers RP2040
# -----------------------------------
MyRP_bot.name=MyMakers RP2040
MyRP_bot.vid.0=0x2e8a
MyRP_bot.pid.0=0x000a
MyRP_bot.vid.1=0x2e8a
MyRP_bot.pid.1=0x010a
MyRP_bot.vid.2=0x2e8a
MyRP_bot.pid.2=0x400a
MyRP_bot.vid.3=0x2e8a
MyRP_bot.pid.3=0x410a
MyRP_bot.vid.4=0x2e8a
MyRP_bot.pid.4=0x800a
MyRP_bot.vid.5=0x2e8a
MyRP_bot.pid.5=0x810a
MyRP_bot.vid.6=0x2e8a
MyRP_bot.pid.6=0xc00a
MyRP_bot.vid.7=0x2e8a
MyRP_bot.pid.7=0xc10a
MyRP_bot.upload_port.0.vid=0x2e8a
MyRP_bot.upload_port.0.pid=0x000a
MyRP_bot.upload_port.1.vid=0x2e8a
MyRP_bot.upload_port.1.pid=0x010a
MyRP_bot.upload_port.2.vid=0x2e8a
MyRP_bot.upload_port.2.pid=0x400a
MyRP_bot.upload_port.3.vid=0x2e8a
MyRP_bot.upload_port.3.pid=0x410a
MyRP_bot.upload_port.4.vid=0x2e8a
MyRP_bot.upload_port.4.pid=0x800a
MyRP_bot.upload_port.5.vid=0x2e8a
MyRP_bot.upload_port.5.pid=0x810a
MyRP_bot.upload_port.6.vid=0x2e8a
MyRP_bot.upload_port.6.pid=0xc00a
MyRP_bot.upload_port.7.vid=0x2e8a
MyRP_bot.upload_port.7.pid=0xc10a
MyRP_bot.build.usbvid=-DUSBD_VID=0x2e8a
MyRP_bot.build.usbpid=-DUSBD_PID=0x000a
MyRP_bot.build.usbpwr=-DUSBD_MAX_POWER_MA=250
MyRP_bot.build.board=MyRP_2040
MyRP_bot.build.mcu=cortex-m0plus
MyRP_bot.build.chip=rp2040
MyRP_bot.build.toolchain=arm-none-eabi
MyRP_bot.build.toolchainpkg=pqt-gcc
MyRP_bot.build.toolchainopts=-march=armv6-m -mcpu=cortex-m0plus -mthumb
MyRP_bot.build.uf2family=--family rp2040
MyRP_bot.build.variant=MyRP_bot
MyRP_bot.upload.maximum_size=2097152
MyRP_bot.upload.wait_for_upload_port=true
MyRP_bot.upload.erase_cmd=
MyRP_bot.serial.disableDTR=false
MyRP_bot.serial.disableRTS=false
MyRP_bot.build.f_cpu=125000000
MyRP_bot.build.led=
MyRP_bot.build.core=rp2040
MyRP_bot.build.ldscript=memmap_default.ld
MyRP_bot.build.boot2=boot2_generic_03h_4_padded_checksum
MyRP_bot.build.usb_manufacturer="MyMakers"
MyRP_bot.build.usb_product="RP2040"
MyRP_bot.menu.flash.2097152_0=2MB (no FS)
MyRP_bot.menu.flash.2097152_0.upload.maximum_size=2093056
MyRP_bot.menu.flash.2097152_0.build.flash_total=2097152
MyRP_bot.menu.flash.2097152_0.build.flash_length=2093056
MyRP_bot.menu.flash.2097152_0.build.eeprom_start=270528512
MyRP_bot.menu.flash.2097152_0.build.fs_start=270528512
MyRP_bot.menu.flash.2097152_0.build.fs_end=270528512
MyRP_bot.menu.flash.2097152_65536=2MB (Sketch: 1984KB, FS: 64KB)
MyRP_bot.menu.flash.2097152_65536.upload.maximum_size=2027520
MyRP_bot.menu.flash.2097152_65536.build.flash_total=2097152
MyRP_bot.menu.flash.2097152_65536.build.flash_length=2027520
MyRP_bot.menu.flash.2097152_65536.build.eeprom_start=270528512
MyRP_bot.menu.flash.2097152_65536.build.fs_start=270462976
MyRP_bot.menu.flash.2097152_65536.build.fs_end=270528512
MyRP_bot.menu.flash.2097152_131072=2MB (Sketch: 1920KB, FS: 128KB)
MyRP_bot.menu.flash.2097152_131072.upload.maximum_size=1961984
MyRP_bot.menu.flash.2097152_131072.build.flash_total=2097152
MyRP_bot.menu.flash.2097152_131072.build.flash_length=1961984
MyRP_bot.menu.flash.2097152_131072.build.eeprom_start=270528512
MyRP_bot.menu.flash.2097152_131072.build.fs_start=270397440
MyRP_bot.menu.flash.2097152_131072.build.fs_end=270528512
MyRP_bot.menu.flash.2097152_262144=2MB (Sketch: 1792KB, FS: 256KB)
MyRP_bot.menu.flash.2097152_262144.upload.maximum_size=1830912
MyRP_bot.menu.flash.2097152_262144.build.flash_total=2097152
MyRP_bot.menu.flash.2097152_262144.build.flash_length=1830912
MyRP_bot.menu.flash.2097152_262144.build.eeprom_start=270528512
MyRP_bot.menu.flash.2097152_262144.build.fs_start=270266368
MyRP_bot.menu.flash.2097152_262144.build.fs_end=270528512
MyRP_bot.menu.flash.2097152_524288=2MB (Sketch: 1536KB, FS: 512KB)
MyRP_bot.menu.flash.2097152_524288.upload.maximum_size=1568768
MyRP_bot.menu.flash.2097152_524288.build.flash_total=2097152
MyRP_bot.menu.flash.2097152_524288.build.flash_length=1568768
MyRP_bot.menu.flash.2097152_524288.build.eeprom_start=270528512
MyRP_bot.menu.flash.2097152_524288.build.fs_start=270004224
MyRP_bot.menu.flash.2097152_524288.build.fs_end=270528512
MyRP_bot.menu.flash.2097152_1048576=2MB (Sketch: 1MB, FS: 1MB)
MyRP_bot.menu.flash.2097152_1048576.upload.maximum_size=1044480
MyRP_bot.menu.flash.2097152_1048576.build.flash_total=2097152
MyRP_bot.menu.flash.2097152_1048576.build.flash_length=1044480
MyRP_bot.menu.flash.2097152_1048576.build.eeprom_start=270528512
MyRP_bot.menu.flash.2097152_1048576.build.fs_start=269479936
MyRP_bot.menu.flash.2097152_1048576.build.fs_end=270528512
MyRP_bot.menu.freq.133=133 MHz
MyRP_bot.menu.freq.133.build.f_cpu=133000000L
MyRP_bot.menu.freq.50=50 MHz
MyRP_bot.menu.freq.50.build.f_cpu=50000000L
MyRP_bot.menu.freq.100=100 MHz
MyRP_bot.menu.freq.100.build.f_cpu=100000000L
MyRP_bot.menu.freq.120=120 MHz
MyRP_bot.menu.freq.120.build.f_cpu=120000000L
MyRP_bot.menu.freq.125=125 MHz
MyRP_bot.menu.freq.125.build.f_cpu=125000000L
MyRP_bot.menu.freq.128=128 MHz
MyRP_bot.menu.freq.128.build.f_cpu=128000000L
MyRP_bot.menu.freq.150=150 MHz (Overclock)
MyRP_bot.menu.freq.150.build.f_cpu=150000000L
MyRP_bot.menu.freq.175=175 MHz (Overclock)
MyRP_bot.menu.freq.175.build.f_cpu=175000000L
MyRP_bot.menu.freq.200=200 MHz (Overclock)
MyRP_bot.menu.freq.200.build.f_cpu=200000000L
MyRP_bot.menu.freq.225=225 MHz (Overclock)
MyRP_bot.menu.freq.225.build.f_cpu=225000000L
MyRP_bot.menu.freq.240=240 MHz (Overclock)
MyRP_bot.menu.freq.240.build.f_cpu=240000000L
MyRP_bot.menu.freq.250=250 MHz (Overclock)
MyRP_bot.menu.freq.250.build.f_cpu=250000000L
MyRP_bot.menu.freq.275=275 MHz (Overclock)
MyRP_bot.menu.freq.275.build.f_cpu=275000000L
MyRP_bot.menu.freq.300=300 MHz (Overclock)
MyRP_bot.menu.freq.300.build.f_cpu=300000000L
MyRP_bot.menu.opt.Small=Small (-Os) (standard)
MyRP_bot.menu.opt.Small.build.flags.optimize=-Os
MyRP_bot.menu.opt.Optimize=Optimize (-O)
MyRP_bot.menu.opt.Optimize.build.flags.optimize=-O
MyRP_bot.menu.opt.Optimize2=Optimize More (-O2)
MyRP_bot.menu.opt.Optimize2.build.flags.optimize=-O2
MyRP_bot.menu.opt.Optimize3=Optimize Even More (-O3)
MyRP_bot.menu.opt.Optimize3.build.flags.optimize=-O3
MyRP_bot.menu.opt.Fast=Fast (-Ofast) (maybe slower)
MyRP_bot.menu.opt.Fast.build.flags.optimize=-Ofast
MyRP_bot.menu.opt.Debug=Debug (-Og)
MyRP_bot.menu.opt.Debug.build.flags.optimize=-Og
MyRP_bot.menu.opt.Disabled=Disabled (-O0)
MyRP_bot.menu.opt.Disabled.build.flags.optimize=-O0
MyRP_bot.menu.profile.Disabled=Disabled
MyRP_bot.menu.profile.Disabled.build.flags.profile=
MyRP_bot.menu.profile.Enabled=Enabled
MyRP_bot.menu.profile.Enabled.build.flags.profile=-pg -D__PROFILE
MyRP_bot.menu.rtti.Disabled=Disabled
MyRP_bot.menu.rtti.Disabled.build.flags.rtti=-fno-rtti
MyRP_bot.menu.rtti.Enabled=Enabled
MyRP_bot.menu.rtti.Enabled.build.flags.rtti=
MyRP_bot.menu.stackprotect.Disabled=Disabled
MyRP_bot.menu.stackprotect.Disabled.build.flags.stackprotect=
MyRP_bot.menu.stackprotect.Enabled=Enabled
MyRP_bot.menu.stackprotect.Enabled.build.flags.stackprotect=-fstack-protector
MyRP_bot.menu.exceptions.Disabled=Disabled
MyRP_bot.menu.exceptions.Disabled.build.flags.exceptions=-fno-exceptions
MyRP_bot.menu.exceptions.Disabled.build.flags.libstdcpp=-lstdc++
MyRP_bot.menu.exceptions.Enabled=Enabled
MyRP_bot.menu.exceptions.Enabled.build.flags.exceptions=-fexceptions
MyRP_bot.menu.exceptions.Enabled.build.flags.libstdcpp=-lstdc++-exc
MyRP_bot.menu.dbgport.Disabled=Disabled
MyRP_bot.menu.dbgport.Disabled.build.debug_port=
MyRP_bot.menu.dbgport.Serial=Serial
MyRP_bot.menu.dbgport.Serial.build.debug_port=-DDEBUG_RP2040_PORT=Serial
MyRP_bot.menu.dbgport.Serial1=Serial1
MyRP_bot.menu.dbgport.Serial1.build.debug_port=-DDEBUG_RP2040_PORT=Serial1
MyRP_bot.menu.dbgport.Serial2=Serial2
MyRP_bot.menu.dbgport.Serial2.build.debug_port=-DDEBUG_RP2040_PORT=Serial2
MyRP_bot.menu.dbgport.SerialSemi=SerialSemi
MyRP_bot.menu.dbgport.SerialSemi.build.debug_port=-DDEBUG_RP2040_PORT=SerialSemi
MyRP_bot.menu.dbglvl.None=None
MyRP_bot.menu.dbglvl.None.build.debug_level=
MyRP_bot.menu.dbglvl.Core=Core
MyRP_bot.menu.dbglvl.Core.build.debug_level=-DDEBUG_RP2040_CORE
MyRP_bot.menu.dbglvl.SPI=SPI
MyRP_bot.menu.dbglvl.SPI.build.debug_level=-DDEBUG_RP2040_SPI
MyRP_bot.menu.dbglvl.Wire=Wire
MyRP_bot.menu.dbglvl.Wire.build.debug_level=-DDEBUG_RP2040_WIRE
MyRP_bot.menu.dbglvl.Bluetooth=Bluetooth
MyRP_bot.menu.dbglvl.Bluetooth.build.debug_level=-DDEBUG_RP2040_BLUETOOTH
MyRP_bot.menu.dbglvl.All=All
MyRP_bot.menu.dbglvl.All.build.debug_level=-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE -DDEBUG_RP2040_BLUETOOTH
MyRP_bot.menu.dbglvl.NDEBUG=NDEBUG
MyRP_bot.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG
MyRP_bot.menu.usbstack.picosdk=Pico SDK
MyRP_bot.menu.usbstack.picosdk.build.usbstack_flags=
MyRP_bot.menu.usbstack.tinyusb=Adafruit TinyUSB
MyRP_bot.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"
MyRP_bot.menu.usbstack.tinyusb_host=Adafruit TinyUSB Host (native)
MyRP_bot.menu.usbstack.tinyusb_host.build.usbstack_flags=-DUSE_TINYUSB -DUSE_TINYUSB_HOST "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"
MyRP_bot.menu.usbstack.nousb=No USB
MyRP_bot.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico"
MyRP_bot.menu.ipbtstack.ipv4only=IPv4 Only
MyRP_bot.menu.ipbtstack.ipv4only.build.libpicow=libipv4.a
MyRP_bot.menu.ipbtstack.ipv4only.build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1
MyRP_bot.menu.ipbtstack.ipv4ipv6=IPv4 + IPv6
MyRP_bot.menu.ipbtstack.ipv4ipv6.build.libpicow=libipv4-ipv6.a
MyRP_bot.menu.ipbtstack.ipv4ipv6.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1
MyRP_bot.menu.ipbtstack.ipv4btcble=IPv4 + Bluetooth
MyRP_bot.menu.ipbtstack.ipv4btcble.build.libpicow=libipv4-bt.a
MyRP_bot.menu.ipbtstack.ipv4btcble.build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1
MyRP_bot.menu.ipbtstack.ipv4ipv6btcble=IPv4 + IPv6 + Bluetooth
MyRP_bot.menu.ipbtstack.ipv4ipv6btcble.build.libpicow=libipv4-ipv6-bt.a
MyRP_bot.menu.ipbtstack.ipv4ipv6btcble.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1
MyRP_bot.menu.ipbtstack.ipv4onlybig=IPv4 Only - 32K
MyRP_bot.menu.ipbtstack.ipv4onlybig.build.libpicow=libipv4-big.a
MyRP_bot.menu.ipbtstack.ipv4onlybig.build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1 -D__LWIP_MEMMULT=2
MyRP_bot.menu.ipbtstack.ipv4ipv6big=IPv4 + IPv6 - 32K
MyRP_bot.menu.ipbtstack.ipv4ipv6big.build.libpicow=libipv4-ipv6-big.a
MyRP_bot.menu.ipbtstack.ipv4ipv6big.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1 -D__LWIP_MEMMULT=2
MyRP_bot.menu.ipbtstack.ipv4btcblebig=IPv4 + Bluetooth - 32K
MyRP_bot.menu.ipbtstack.ipv4btcblebig.build.libpicow=libipv4-bt-big.a
MyRP_bot.menu.ipbtstack.ipv4btcblebig.build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1 -D__LWIP_MEMMULT=2
MyRP_bot.menu.ipbtstack.ipv4ipv6btcblebig=IPv4 + IPv6 + Bluetooth - 32K
MyRP_bot.menu.ipbtstack.ipv4ipv6btcblebig.build.libpicow=libipv4-ipv6-bt-big.a
MyRP_bot.menu.ipbtstack.ipv4ipv6btcblebig.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1 -D__LWIP_MEMMULT=2
MyRP_bot.menu.uploadmethod.default=Default (UF2)
MyRP_bot.menu.uploadmethod.default.build.ram_length=256k
MyRP_bot.menu.uploadmethod.default.build.debugscript=picoprobe_cmsis_dap.tcl
MyRP_bot.menu.uploadmethod.default.upload.maximum_data_size=262144
MyRP_bot.menu.uploadmethod.default.upload.tool=uf2conv
MyRP_bot.menu.uploadmethod.default.upload.tool.default=uf2conv
MyRP_bot.menu.uploadmethod.default.upload.tool.network=uf2conv-network
MyRP_bot.menu.uploadmethod.picotool=Picotool
MyRP_bot.menu.uploadmethod.picotool.build.ram_length=256k
MyRP_bot.menu.uploadmethod.picotool.build.debugscript=picoprobe.tcl
MyRP_bot.menu.uploadmethod.picotool.build.picodebugflags=-DENABLE_PICOTOOL_USB
MyRP_bot.menu.uploadmethod.picotool.upload.maximum_data_size=262144
MyRP_bot.menu.uploadmethod.picotool.upload.tool=picotool
MyRP_bot.menu.uploadmethod.picotool.upload.tool.default=picotool
MyRP_bot.menu.uploadmethod.picoprobe_cmsis_dap=Picoprobe/Debugprobe (CMSIS-DAP)
MyRP_bot.menu.uploadmethod.picoprobe_cmsis_dap.build.ram_length=256k
MyRP_bot.menu.uploadmethod.picoprobe_cmsis_dap.build.debugscript=picoprobe_cmsis_dap.tcl
MyRP_bot.menu.uploadmethod.picoprobe_cmsis_dap.upload.maximum_data_size=262144
MyRP_bot.menu.uploadmethod.picoprobe_cmsis_dap.upload.tool=picoprobe_cmsis_dap
MyRP_bot.menu.uploadmethod.picoprobe_cmsis_dap.upload.tool.default=picoprobe_cmsis_dap
# -----------------------------------
# Pimoroni PGA2040
# -----------------------------------

View file

@ -230,6 +230,9 @@
{
"name": "Olimex RP2040-Pico30 16MB"
},
{
"name": "MyMakers RP2040"
},
{
"name": "Pimoroni PGA2040"
},

55
tools/json/MyRP_bot.json Normal file
View file

@ -0,0 +1,55 @@
{
"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": "-DARDUINO_MyRP_2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 ",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x2E8A",
"0x000A"
]
],
"mcu": "rp2040",
"variant": "MyRP_bot"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "RP2040",
"upload": {
"maximum_ram_size": 262144,
"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"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "MyMakers"
}

View file

@ -611,6 +611,9 @@ MakeBoard("nullbits_bit_c_pro", "rp2040", "nullbits", "Bit-C PRO", "0x2e8a", "0x
MakeBoard("olimex_rp2040pico30_2mb", "rp2040", "Olimex", "RP2040-Pico30 2MB", "0x15ba", "0x0026", 250, "OLIMEX_RP2040_PICO30_2MB", 2, 0, "boot2_w25q080_2_padded_checksum")
MakeBoard("olimex_rp2040pico30_16mb", "rp2040", "Olimex", "RP2040-Pico30 16MB", "0x15ba", "0x0026", 250, "OLIMEX_RP2040_PICO30_16MB", 16, 0, "boot2_w25q080_2_padded_checksum")
# MyMakers
MakeBoard("MyRP_bot", "rp2040", "MyMakers", "RP2040", "0x2e8a", "0x000a", 250, "MyRP_2040", 2, 0, "boot2_generic_03h_4_padded_checksum")
# Pimoroni
MakeBoard("pimoroni_pga2040", "rp2040", "Pimoroni", "PGA2040", "0x2e8a", "0x1008", 250, "PIMORONI_PGA2040", 8, 0, "boot2_w25q64jv_4_padded_checksum")
MakeBoard("pimoroni_pga2350", "rp2350", "Pimoroni", "PGA2350", "0x2e8a", "0x1018", 250, "PIMORONI_PGA2350", 16, 8, "none")
@ -684,6 +687,7 @@ MakeBoard("wiznet_55rp20_evb_pico", "rp2040", "WIZnet", "W55RP20-EVB-Pico", "0x2
MakeBoard("generic", "rp2040", "Generic", "RP2040", "0x2e8a", "0xf00a", 250, "GENERIC_RP2040", 16, 0, "boot2_generic_03h_4_padded_checksum")
MakeBoard("generic_rp2350", "rp2350", "Generic", "RP2350", "0x2e8a", "0xf00f", 250, "GENERIC_RP2350", 16, 8, "none")
sys.stdout.close()
with open(os.path.abspath(os.path.dirname(__file__)) + '/../package/package_pico_index.template.json', 'w', newline='\n') as f:
f.write(json.dumps(pkgjson, indent=3))

View file

@ -0,0 +1,39 @@
#pragma once
// Pin definitions taken from:
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
// LEDs
#define PIN_LED (25u)
// Serial
#define PIN_SERIAL1_TX (30u)
#define PIN_SERIAL1_RX (1u)
#define PIN_SERIAL2_TX (30u)
#define PIN_SERIAL2_RX (30u)
// SPI
#define PIN_SPI0_MISO (12u)
#define PIN_SPI0_MOSI (3u)
#define PIN_SPI0_SCK (2u)
#define PIN_SPI0_SS (13u)
#define PIN_SPI1_MISO (12u)
#define PIN_SPI1_MOSI (30u)
#define PIN_SPI1_SCK (31u)
#define PIN_SPI1_SS (5u)
// Wire
#define PIN_WIRE0_SDA (16u)
#define PIN_WIRE0_SCL (17u)
#define PIN_WIRE1_SDA (5u)
#define PIN_WIRE1_SCL (4u)
#define SERIAL_HOWMANY (3u)
#define SPI_HOWMANY (2u)
#define WIRE_HOWMANY (2u)
#include "../generic/common.h"