Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8348b8b
Added board definitions
ross-satchell Apr 7, 2025
0f9462f
Updated mpconfig.mk to use SST26VF016B.
ross-satchell Apr 9, 2025
b2a11f0
Updated pins.c to contain objects for I2C, SPI, UART, CAN
ross-satchell Apr 10, 2025
e3a1bfe
Merge branch 'adafruit:main' into development
ross-satchell Apr 23, 2025
15b1d5f
Changes to mpconfigboard.h and pins.c
ross-satchell Apr 23, 2025
4b72af4
Delete pins.c
ross-satchell Apr 23, 2025
c4285e8
Delete mpconfigboard.h
ross-satchell Apr 23, 2025
6742579
Updated mpconfig.h and pins.c
ross-satchell Apr 23, 2025
0a5ce8d
Switched to SST26VF064B flash
ross-satchell Apr 23, 2025
92aa962
Added support for flash chips
ross-satchell Apr 23, 2025
6558a85
Removed dual QSPI for flash chips
ross-satchell Apr 23, 2025
b43666f
Merge branch 'adafruit:main' into development
ross-satchell Apr 28, 2025
a9c9aa5
Updated pins.c to add SD card CS pin and obj for lcd sd
ross-satchell Apr 28, 2025
992d50a
Fix up available SPI buses; swap I2C pins
dhalbert Apr 29, 2025
a4af1be
fix pre-commit formatting complaint
dhalbert Apr 29, 2025
4229ec3
Merge remote-tracking branch 'adafruit/main' into development
dhalbert Apr 29, 2025
d78a9c7
curiosity: switch back to external flash filesystem
dhalbert Jun 17, 2025
03da934
Merge remote-tracking branch 'adafruit/main' into development
dhalbert Sep 9, 2025
06f7192
Rev 3 board changes; lots of flash so turn on most features
dhalbert Sep 10, 2025
dd0e10d
turn on canio
dhalbert Sep 21, 2025
1ad0d5f
drop Nano from Microchip Curiosity CircuitPython Nano
dhalbert Oct 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// This file is part of the CircuitPython project: https://circuitpython.org
//
// SPDX-FileCopyrightText: Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
//
// SPDX-License-Identifier: MIT

#include "supervisor/board.h"

// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

#pragma once

#define MICROPY_HW_BOARD_NAME "Microchip Curiosity CircuitPython"
#define MICROPY_HW_MCU_NAME "same51j20"
#define CIRCUITPY_MCU_FAMILY samd51

#define MICROPY_HW_LED_STATUS (&pin_PB23)
#define MICROPY_HW_NEOPIXEL (&pin_PB22)

#define BOARD_HAS_CRYSTAL 1

// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

#define DEFAULT_I2C_BUS_SCL (&pin_PB30)
#define DEFAULT_I2C_BUS_SDA (&pin_PB31)

#define CIRCUITPY_BOARD_SPI (3)
// These correspond to the CIRCUITPY_BOARD_BUS_SINGLETON definitions in pins.c
#define CIRCUITPY_BOARD_SPI_PIN { \
{.clock = &pin_PB03, .mosi = &pin_PB02, .miso = &pin_PB00}, /*board.SPI()*/ \
{.clock = &pin_PA05, .mosi = &pin_PA04, .miso = NULL}, /*board.LCD_SPI()*/ \
{.clock = &pin_PA17, .mosi = &pin_PA16, .miso = &pin_PA18}, /*board.SD_SPI()*/ \
}

#define DEFAULT_CAN_BUS_TX (&pin_PB12)
#define DEFAULT_CAN_BUS_RX (&pin_PB13)
#define DEFAULT_CAN_BUS_STDBY (&pin_PB17)

#define DEFAULT_UART_BUS_RX (&pin_PA23)
#define DEFAULT_UART_BUS_TX (&pin_PA22)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
USB_VID = 0x04D8
USB_PID = 0xE52B
USB_PRODUCT = "Microchip Curiosity CircuitPython"
USB_MANUFACTURER = "Microchip Technology Inc"

CHIP_VARIANT = SAME51J20A
CHIP_FAMILY = same51

QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICES = "SST26VF016B,SST26VF032B,SST26VF064B"
LONGINT_IMPL = MPZ

CIRCUITPY__EVE = 1
CIRCUITPY_CANIO = 1
88 changes: 88 additions & 0 deletions ports/atmel-samd/boards/microchip_curiosity_circuitpython/pins.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
// This file is part of the CircuitPython project: https://circuitpython.org
//
// SPDX-FileCopyrightText: Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
//
// SPDX-License-Identifier: MIT

#include "shared-bindings/board/__init__.h"

// The singleton for board.SPI() is already defined.
// board.LCD_SPI()
CIRCUITPY_BOARD_BUS_SINGLETON(lcd_spi, spi, 1)
// board.SD_SPI()
CIRCUITPY_BOARD_BUS_SINGLETON(sd_spi, spi, 2)

static const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS

{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PB14) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PB15) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PB16) },

{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PB23) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB23) },

{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB22) },

{ MP_ROM_QSTR(MP_QSTR_VREF), MP_ROM_PTR(&pin_PA03) },

{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB04) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB05) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB06) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB07) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB09) },

{ MP_ROM_QSTR(MP_QSTR_DAC), MP_ROM_PTR(&pin_PA02) },

{ MP_ROM_QSTR(MP_QSTR_CAP1), MP_ROM_PTR(&pin_PB09) },

{ MP_ROM_QSTR(MP_QSTR_LCD_CS), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_LCD_MOSI), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_LCD_SCK), MP_ROM_PTR(&pin_PA05) },

{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB30) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB31) },

{ MP_ROM_QSTR(MP_QSTR_BLE_TX), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_BLE_RX), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_BLE_CLR), MP_ROM_PTR(&pin_PA14) },

{ MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_SD_SCK), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA19) },

{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB00) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB00) },

{ MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_PB01) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB01) },

{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PB02) },

{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB03) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PB03) },

{ MP_ROM_QSTR(MP_QSTR_DEBUG_TX), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_DEBUG_RX), MP_ROM_PTR(&pin_PA23) },

{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB13) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB12) },

{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_STANDBY), MP_ROM_PTR(&pin_PB17) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB17) },

{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },

{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_LCD_SPI), MP_ROM_PTR(&board_lcd_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_SD_SPI), MP_ROM_PTR(&board_sd_spi_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);