// SPDX-License-Identifier: GPL-3.0-only // OpenScribe pin map. Defaults match hardware/BOM.md (Build B, ESP32-S3 devkit). // Override per board via the OPENSCRIBE_BOARD_* flags set in platformio.ini. #pragma once #if defined(OPENSCRIBE_BOARD_XIAO) // Seeed XIAO ESP32-S3 Sense: onboard PDM mic + microSD use the Sense board's fixed pins. // The audio driver selects the PDM path for this board. #define PIN_PDM_CLK 42 // XIAO ESP32-S3 Sense onboard PDM mic clock #define PIN_PDM_DIN 41 // XIAO ESP32-S3 Sense onboard PDM mic data // XIAO Sense onboard microSD (SDMMC-on-SPI fixed pins) #define PIN_SD_CS 21 #define PIN_SD_SCK 7 #define PIN_SD_MOSI 9 #define PIN_SD_MISO 8 #define PIN_BUTTON 2 // external tactile button to GND #define PIN_LED LED_BUILTIN // XIAO onboard user LED (active-low) #define PIN_LED_ACTIVE_LOW 1 #define PIN_VBUS_SENSE -1 // use USB-serial/VBUS API on XIAO #define PIN_CHARGE_STAT -1 #else // OPENSCRIBE_BOARD_DEV (default) // I2S MEMS microphone (INMP441 / ICS-43434) #define PIN_I2S_BCLK 4 #define PIN_I2S_WS 5 #define PIN_I2S_DIN 6 // microSD (SPI mode) #define PIN_SD_SCK 12 #define PIN_SD_MOSI 11 #define PIN_SD_MISO 13 #define PIN_SD_CS 10 // Controls / status #define PIN_BUTTON 7 // active-low, internal pull-up #define PIN_LED 48 // plain LED via 330R (WS2812 support added later) #define PIN_LED_ACTIVE_LOW 0 #define PIN_CHARGE_STAT 14 // TP4056 STAT (open-drain) #define PIN_VBUS_SENSE 15 // USB 5V present -> on-charge / powered mode #define PIN_MOTOR 16 // optional haptic, via transistor #endif