From d5ad660f1cc70781dba4756a7e01be0af65d8ddd Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 13 May 2026 16:33:52 -0600 Subject: [PATCH 1/2] rp2/boards/DUALMCU_RP2040: Add board definition. Add support for the UNIT Electronics DualMCU RP2040 + ESP32 board. Configure default UART, I2C, and SPI pins from the board pinout. Add board metadata and include this board in rp2 CI builds. Signed-off-by: GitHub Actions --- ports/rp2/boards/DUALMCU_RP2040/README.md | 19 ++++++++++++ ports/rp2/boards/DUALMCU_RP2040/board.json | 19 ++++++++++++ .../boards/DUALMCU_RP2040/mpconfigboard.cmake | 3 ++ .../rp2/boards/DUALMCU_RP2040/mpconfigboard.h | 25 ++++++++++++++++ ports/rp2/boards/DUALMCU_RP2040/pins.csv | 29 +++++++++++++++++++ tools/ci.sh | 1 + 6 files changed, 96 insertions(+) create mode 100644 ports/rp2/boards/DUALMCU_RP2040/README.md create mode 100644 ports/rp2/boards/DUALMCU_RP2040/board.json create mode 100644 ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.cmake create mode 100644 ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.h create mode 100644 ports/rp2/boards/DUALMCU_RP2040/pins.csv diff --git a/ports/rp2/boards/DUALMCU_RP2040/README.md b/ports/rp2/boards/DUALMCU_RP2040/README.md new file mode 100644 index 0000000000000..fe74e0a7d30a0 --- /dev/null +++ b/ports/rp2/boards/DUALMCU_RP2040/README.md @@ -0,0 +1,19 @@ +# UNIT Electronics DualMCU RP2040 + ESP32 + +Board definition for the RP2040 side of the DualMCU board. + +## Default buses + +- LED: GPIO25 +- UART0: TX=GPIO0, RX=GPIO1 +- UART1: TX=GPIO8, RX=GPIO9 +- I2C0: SDA=GPIO12, SCL=GPIO13 +- SPI0: SCK=GPIO18, MOSI=GPIO19, MISO=GPIO20, CS=GPIO21 + +## Build + +```bash +make -C mpy-cross +make -C ports/rp2 BOARD=DUALMCU_RP2040 submodules +make -C ports/rp2 BOARD=DUALMCU_RP2040 +``` diff --git a/ports/rp2/boards/DUALMCU_RP2040/board.json b/ports/rp2/boards/DUALMCU_RP2040/board.json new file mode 100644 index 0000000000000..2d6ec36454eda --- /dev/null +++ b/ports/rp2/boards/DUALMCU_RP2040/board.json @@ -0,0 +1,19 @@ +{ + "deploy": [ + "../deploy.md" + ], + "docs": "", + "features": [ + "Dual-core", + "External Flash", + "USB" + ], + "images": [ + "https://uelectronics.com/wp-content/uploads/2023/03/AR3578-UNIT-DualMCU-ESP32-RP2040-6.jpg" + ], + "mcu": "rp2040", + "product": "DualMCU RP2040 + ESP32", + "thumbnail": "", + "url": "https://uelectronics.com/producto/unit-dualmcu-esp32-rp2040-tarjeta-de-desarrollo/", + "vendor": "UNIT Electronics" +} diff --git a/ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.cmake b/ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.cmake new file mode 100644 index 0000000000000..6be83cb4ee27c --- /dev/null +++ b/ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.cmake @@ -0,0 +1,3 @@ +# cmake file for UNIT Electronics DualMCU RP2040 + ESP32. +set(PICO_BOARD "pico") +set(PICO_PLATFORM "rp2040") diff --git a/ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.h b/ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.h new file mode 100644 index 0000000000000..dd5aec482ec7f --- /dev/null +++ b/ports/rp2/boards/DUALMCU_RP2040/mpconfigboard.h @@ -0,0 +1,25 @@ +// Board config for UNIT Electronics DualMCU RP2040 + ESP32. + +// Board and hardware specific configuration +#define MICROPY_HW_BOARD_NAME "DualMCU RP2040" +#define MICROPY_HW_ENABLE_UART_REPL (1) + +// UART defaults from board pinout. +#define MICROPY_HW_UART0_TX (0) +#define MICROPY_HW_UART0_RX (1) +#define MICROPY_HW_UART0_CTS (-1) +#define MICROPY_HW_UART0_RTS (-1) + +#define MICROPY_HW_UART1_TX (8) +#define MICROPY_HW_UART1_RX (9) +#define MICROPY_HW_UART1_CTS (-1) +#define MICROPY_HW_UART1_RTS (-1) + +// I2C0 defaults from board pinout. +#define MICROPY_HW_I2C0_SDA (12) +#define MICROPY_HW_I2C0_SCL (13) + +// SPI0 defaults from board pinout. +#define MICROPY_HW_SPI0_SCK (18) +#define MICROPY_HW_SPI0_MOSI (19) +#define MICROPY_HW_SPI0_MISO (20) diff --git a/ports/rp2/boards/DUALMCU_RP2040/pins.csv b/ports/rp2/boards/DUALMCU_RP2040/pins.csv new file mode 100644 index 0000000000000..8de04437f11c6 --- /dev/null +++ b/ports/rp2/boards/DUALMCU_RP2040/pins.csv @@ -0,0 +1,29 @@ +TX0,GPIO0 +RX0,GPIO1 +IO2,GPIO2 +IO3,GPIO3 +CIPO,GPIO4 +IO6,GPIO6 +COPI,GPIO7 +TX1,GPIO8 +RX1,GPIO9 +IO10,GPIO10 +IO11,GPIO11 +IO12,GPIO12 +IO13,GPIO13 +IO14,GPIO14 +IO15,GPIO15 +SCK,GPIO18 +MOSI,GPIO19 +MISO,GPIO20 +CS,GPIO21 +IO22,GPIO22 +IO23,GPIO23 +IO25,GPIO25 +A0,GPIO26 +A1,GPIO27 +A2,GPIO28 +A3,GPIO29 +SDA,GPIO12 +SCL,GPIO13 +LED,GPIO25 diff --git a/tools/ci.sh b/tools/ci.sh index fbdec9c3a8855..ae7fce1e52378 100755 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -482,6 +482,7 @@ function ci_rp2_build { make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C ports/rp2 submodules make ${MAKEOPTS} -C ports/rp2 + make ${MAKEOPTS} -C ports/rp2 BOARD=DUALMCU_RP2040 make ${MAKEOPTS} -C ports/rp2 BOARD=RPI_PICO_W submodules make ${MAKEOPTS} -C ports/rp2 BOARD=RPI_PICO_W USER_C_MODULES=../../examples/usercmodule/micropython.cmake make ${MAKEOPTS} -C ports/rp2 BOARD=RPI_PICO2 submodules From e3a4cc385354d94ea30efc2a81daac7b8b30377d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 14 May 2026 08:26:43 -0600 Subject: [PATCH 2/2] tools/ci: Remove CI build entry for DUALMCU_RP2040 board. Remove the extra CI build line for the DUALMCU_RP2040 board, as requested in review. Signed-off-by: GitHub Actions --- tools/ci.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/ci.sh b/tools/ci.sh index ae7fce1e52378..fbdec9c3a8855 100755 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -482,7 +482,6 @@ function ci_rp2_build { make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C ports/rp2 submodules make ${MAKEOPTS} -C ports/rp2 - make ${MAKEOPTS} -C ports/rp2 BOARD=DUALMCU_RP2040 make ${MAKEOPTS} -C ports/rp2 BOARD=RPI_PICO_W submodules make ${MAKEOPTS} -C ports/rp2 BOARD=RPI_PICO_W USER_C_MODULES=../../examples/usercmodule/micropython.cmake make ${MAKEOPTS} -C ports/rp2 BOARD=RPI_PICO2 submodules