From 55d1ec5f0ad18716bd664e71f926815e8166c22d Mon Sep 17 00:00:00 2001
From: foamyguy <foamyguy@gmail.com>
Date: Wed, 15 Jan 2025 15:42:30 -0600
Subject: [PATCH] adding mini sparkle motion

---
 .../adafruit_mini_sparkle_motion/board.c      |  9 ++++
 .../mpconfigboard.h                           | 25 ++++++++++
 .../mpconfigboard.mk                          | 11 +++++
 .../adafruit_mini_sparkle_motion/pins.c       | 49 +++++++++++++++++++
 .../adafruit_mini_sparkle_motion/sdkconfig    |  0
 5 files changed, 94 insertions(+)
 create mode 100644 ports/espressif/boards/adafruit_mini_sparkle_motion/board.c
 create mode 100644 ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.h
 create mode 100644 ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.mk
 create mode 100644 ports/espressif/boards/adafruit_mini_sparkle_motion/pins.c
 create mode 100644 ports/espressif/boards/adafruit_mini_sparkle_motion/sdkconfig

diff --git a/ports/espressif/boards/adafruit_mini_sparkle_motion/board.c b/ports/espressif/boards/adafruit_mini_sparkle_motion/board.c
new file mode 100644
index 0000000000000..a3a9eec047145
--- /dev/null
+++ b/ports/espressif/boards/adafruit_mini_sparkle_motion/board.c
@@ -0,0 +1,9 @@
+// This file is part of the CircuitPython project: https://circuitpython.org
+//
+// SPDX-FileCopyrightText: Copyright (c) 2020 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.
diff --git a/ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.h b/ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.h
new file mode 100644
index 0000000000000..9c83117fe55c3
--- /dev/null
+++ b/ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.h
@@ -0,0 +1,25 @@
+// This file is part of the CircuitPython project: https://circuitpython.org
+//
+// SPDX-FileCopyrightText: Copyright (c) 2022 Dan Halbert for Adafruit Industries
+//
+// SPDX-License-Identifier: MIT
+
+#pragma once
+
+// Micropython setup
+
+#define MICROPY_HW_BOARD_NAME       "Adafruit Mini Sparkle Motion"
+#define MICROPY_HW_MCU_NAME         "ESP32"
+
+#define MICROPY_HW_LED_STATUS       (&pin_GPIO12)
+#define MICROPY_HW_NEOPIXEL         (&pin_GPIO18)
+
+#define CIRCUITPY_BOARD_I2C         (1)
+#define CIRCUITPY_BOARD_I2C_PIN     {{.scl = &pin_GPIO22, .sda = &pin_GPIO19}}
+
+#define CIRCUITPY_BOARD_UART        (1)
+#define CIRCUITPY_BOARD_UART_PIN    {{.tx = &pin_GPIO25, .rx = &pin_GPIO26}}
+
+// UART pins attached to the USB-serial converter chip
+#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
+#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)
diff --git a/ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.mk b/ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.mk
new file mode 100644
index 0000000000000..6e31ba69a5b95
--- /dev/null
+++ b/ports/espressif/boards/adafruit_mini_sparkle_motion/mpconfigboard.mk
@@ -0,0 +1,11 @@
+CIRCUITPY_CREATOR_ID =  0x0000239A
+CIRCUITPY_CREATION_ID = 0x00320007
+
+IDF_TARGET = esp32
+
+CIRCUITPY_ESP_FLASH_MODE = qio
+CIRCUITPY_ESP_FLASH_FREQ = 80m
+CIRCUITPY_ESP_FLASH_SIZE = 4MB
+
+CIRCUITPY_BLEIO = 0
+CIRCUITPY_ESPCAMERA = 0
diff --git a/ports/espressif/boards/adafruit_mini_sparkle_motion/pins.c b/ports/espressif/boards/adafruit_mini_sparkle_motion/pins.c
new file mode 100644
index 0000000000000..e84cc2f2bfb87
--- /dev/null
+++ b/ports/espressif/boards/adafruit_mini_sparkle_motion/pins.c
@@ -0,0 +1,49 @@
+// This file is part of the CircuitPython project: https://circuitpython.org
+//
+// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
+//
+// SPDX-License-Identifier: MIT
+
+#include "shared-bindings/board/__init__.h"
+
+static const mp_rom_map_elem_t board_module_globals_table[] = {
+    CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
+
+    // External pins are in silkscreen order, from top to bottom, left side, then right side
+    { MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_PTR(&pin_GPIO0) },
+    { MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
+    { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
+
+    { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
+    { MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
+    { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO25) },
+    { MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
+    { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO26) },
+    { MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
+
+    { MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_GPIO33) },
+    { MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
+
+    { MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO18) },
+    { MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
+
+    { MP_ROM_QSTR(MP_QSTR_MIC), MP_ROM_PTR(&pin_GPIO9) },
+    { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
+
+    { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO22) },
+    { MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
+
+    { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO19) },
+    { MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO19) },
+
+    { MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
+
+    { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO12) },
+    { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
+
+    { 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_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
+
+};
+MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
diff --git a/ports/espressif/boards/adafruit_mini_sparkle_motion/sdkconfig b/ports/espressif/boards/adafruit_mini_sparkle_motion/sdkconfig
new file mode 100644
index 0000000000000..e69de29bb2d1d