diff --git a/ports/rp2/boards/WAVESHARE_RP2040_PLUS/README.md b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/README.md new file mode 100644 index 0000000000..b5716a82a6 --- /dev/null +++ b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/README.md @@ -0,0 +1,22 @@ +# Waveshare RP2040-Plus + +The Waveshare RP2040-Plus Board is based on the Raspberry Pi RP2040 and can be +purchased with 4/16 MiB of flash. + +These boards are available from a number of resellers +Waveshare maintain the [Wiki:RP2040-Plus](https://www.waveshare.com/wiki/RP2040-Plus) +Wiki containing information on the board. + +## Build notes + +Builds can be configured with the `BOARD_VARIANT` parameter. Valid variants +can be displayed with the `query-variant` target. An example: + +```bash +> cd ports/rp2 +> make BOARD=WAVESHARE_RP2040_PLUS query-variants +VARIANTS: flash_4mb flash_16mb +> make BOARD=WAVESHARE_RP2040_PLUS BOARD_VARIANT=flash_16mb submodules all # Build the 16 MiB variant +``` + +`flash_4mb` is the default if `BOARD_VARIANT` is not supplied. diff --git a/ports/rp2/boards/WAVESHARE_RP2040_PLUS/board.json b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/board.json new file mode 100644 index 0000000000..a8efd6be8c --- /dev/null +++ b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/board.json @@ -0,0 +1,25 @@ +{ + "deploy": [ + "../deploy.md" + ], + "docs": "", + "features": [ + "Breadboard Friendly", + "Castellated Pads", + "SPI Flash", + "USB-C" + ], + "id": "rp2-waveshare-rp2040-plus", + "images": [ + "rp2040-plus-1_5.jpg" + ], + "mcu": "rp2040", + "product": "RP2040 Plus", + "thumbnail": "", + "url": "https://www.waveshare.com/rp2040-plus.htm", + "variants": { + "flash_4mb": "4 MiB Flash", + "flash_16mb": "16 MiB Flash" + }, + "vendor": "Waveshare" +} diff --git a/ports/rp2/boards/WAVESHARE_RP2040_PLUS/mpconfigboard.cmake b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/mpconfigboard.cmake new file mode 100644 index 0000000000..66161c0bdb --- /dev/null +++ b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/mpconfigboard.cmake @@ -0,0 +1,11 @@ +# CMake file for Waveshare RP2040-Plus boards + +# Provide different variants for the downloads page +set(BOARD_VARIANTS "flash_4mb flash_16mb") + +# Select the 4MB variant as the default +set(PICO_BOARD "waveshare_rp2040_plus_4mb") + +if("${BOARD_VARIANT}" STREQUAL "flash_16mb") +set(PICO_BOARD "waveshare_rp2040_plus_16mb") +endif() diff --git a/ports/rp2/boards/WAVESHARE_RP2040_PLUS/mpconfigboard.h b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/mpconfigboard.h new file mode 100644 index 0000000000..321ff071be --- /dev/null +++ b/ports/rp2/boards/WAVESHARE_RP2040_PLUS/mpconfigboard.h @@ -0,0 +1,4 @@ +#define MICROPY_HW_BOARD_NAME "Waveshare RP2040-Plus" + +// Allow 1MB for the firmware image itself, allocate the remainder to the filesystem +#define MICROPY_HW_FLASH_STORAGE_BYTES (PICO_FLASH_SIZE_BYTES - (640 * 1024))