|
| 1 | +/* |
| 2 | + ──────────────────────────────────────────────────────────────────────── |
| 3 | + KodeDot – ESP32-S3R8 Variant |
| 4 | + Pin definition file for the Arduino-ESP32 core |
| 5 | + ──────────────────────────────────────────────────────────────────────── |
| 6 | + * External 2 × 10 connector → simple aliases PIN1 … PIN20 |
| 7 | + * On-board QSPI LCD 410×502 @40 MHz (SPI3_HOST) |
| 8 | + * micro-SD on SPI2_HOST |
| 9 | + * Dual-I²C: external (GPIO37/36) + internal-sensors (GPIO48/47) |
| 10 | + * USB VID/PID 0x303A:0x1001 |
| 11 | +*/ |
| 12 | + |
1 | 13 | #ifndef Pins_Arduino_h
|
2 | 14 | #define Pins_Arduino_h
|
3 | 15 |
|
4 | 16 | #include <stdint.h>
|
5 | 17 | #include <stdbool.h>
|
6 | 18 |
|
7 |
| -#define USB_VID 0x303a |
8 |
| -#define USB_PID 0x1001 |
9 |
| - |
10 |
| -static const uint8_t TX = 43; |
11 |
| -static const uint8_t RX = 44; |
12 |
| - |
13 |
| -static const uint8_t SDA = 45; |
14 |
| -static const uint8_t SCL = 46; |
15 |
| - |
16 |
| -static const uint8_t SS = 34; |
17 |
| -static const uint8_t MOSI = 35; |
18 |
| -static const uint8_t MISO = 37; |
19 |
| -static const uint8_t SCK = 36; |
20 |
| - |
21 |
| -static const uint8_t A0 = 1; |
22 |
| -static const uint8_t A1 = 2; |
23 |
| -static const uint8_t A2 = 3; |
24 |
| - |
25 |
| -static const uint8_t T3 = 3; |
26 |
| - |
27 |
| -// SDCARD Slot |
28 |
| -#define BOARD_HAS_SDMMC |
29 |
| -#define SDMMC_D2 33 // SDMMC Data2 |
30 |
| -#define SDMMC_D3 34 // SDMMC Data3 / SPI CS |
31 |
| -#define SDMMC_CMD 35 // SDMMC CMD / SPI MOSI |
32 |
| -#define SDMMC_CLK 36 // SDMMC CLK / SPI SCK |
33 |
| -#define SDMMC_D0 37 // SDMMC Data0 / SPI MISO |
34 |
| -#define SDMMC_D1 38 // SDMMC Data1 |
35 |
| -#define BOARD_MAX_SDMMC_FREQ SDMMC_FREQ_DEFAULT |
36 |
| - |
37 |
| -// 240x240 LCD |
| 19 | +/*──────────────── USB device descriptor ────────────────*/ |
| 20 | +#define USB_VID 0x303A // Espressif Systems VID |
| 21 | +#define USB_PID 0x1001 // Product ID: KodeDot-S3 |
| 22 | + |
| 23 | +/*──────────────── UART0 (Arduino Serial) ────────────────*/ |
| 24 | +static const uint8_t TX = 43; // U0TXD – PIN16 on the 2×10 header |
| 25 | +static const uint8_t RX = 44; // U0RXD – PIN18 on the 2×10 header |
| 26 | + |
| 27 | +/*──────────────── I²C buses ─────────────────────────────*/ |
| 28 | +/* External expansion bus → header pins 11/13 */ |
| 29 | +static const uint8_t SCL = 37; // GPIO37 – PIN12 |
| 30 | +static const uint8_t SDA = 36; // GPIO36 – PIN14 |
| 31 | + |
| 32 | +/* Internal sensor/touch bus (not on header) */ |
| 33 | +#define INT_I2C_SCL 47 // GPIO47 |
| 34 | +#define INT_I2C_SDA 48 // GPIO48 |
| 35 | + |
| 36 | +/*──────────────── SPI2 – micro-SD ───────────────────────*/ |
| 37 | +static const uint8_t SS = 15; // SD_CS |
| 38 | +static const uint8_t MOSI = 16; // SD_MOSI |
| 39 | +static const uint8_t MISO = 18; // SD_MISO |
| 40 | +static const uint8_t SCK = 17; // SD_CLK |
| 41 | +#define BOARD_HAS_SD_SPI |
| 42 | +#define SD_CS SS |
| 43 | + |
| 44 | +/*──────────────── QSPI LCD (SPI3_HOST) ─────────────────– |
| 45 | + * Controller: ST7789 / 4-line SPI (no D/C pin) |
| 46 | + * Resolution: 410×502 px, 16 bpp, RGB color-space |
| 47 | + * Clock: 40 MHz |
| 48 | + */ |
38 | 49 | #define BOARD_HAS_SPI_LCD
|
39 |
| -#define LCD_MODEL ST7789 |
40 |
| -#define LCD_WIDTH 240 |
41 |
| -#define LCD_HEIGHT 240 // *RAM height is actually 320! |
42 |
| -#define LCD_MISO -1 // LCD Does not use MISO. |
43 |
| -#define LCD_DC 4 // Used to switch data and command status. |
44 |
| -#define LCD_CS 5 // used to enable LCD, low level to enable. |
45 |
| -#define LCD_CLK 6 // LCD SPI Clock. |
46 |
| -#define LCD_MOSI 7 // LCD SPI MOSI. |
47 |
| -#define LCD_RST 8 // used to reset LCD, low level to reset. |
48 |
| -#define LCD_BL 9 // LCD backlight control. |
49 |
| - |
50 |
| -// Buttons |
51 |
| -#define BUTTON_OK 0 // OK button, low level when pressed. |
52 |
| -#define BUTTON_UP 10 // UP button, low level when pressed. |
53 |
| -#define BUTTON_DOWN 11 // Down button, low level when pressed. |
54 |
| -#define BUTTON_MENU 14 // Menu button, low level when pressed. |
55 |
| - |
56 |
| -// LEDs |
57 |
| -#define LED_GREEN 15 // the light is lit when set high level. |
58 |
| -#define LED_YELLOW 16 // the light is lit when set high level. |
59 |
| - |
60 |
| -// Board Controls |
61 |
| -#define DEV_VBUS_EN 12 // High level to enable DEV_VBUS power supply. |
62 |
| -#define BOOST_EN 13 // High level to enable Battery Boost circuit. |
63 |
| -#define LIMIT_EN 17 // Enable USB_HOST current limiting IC, high level enable. |
64 |
| -#define USB_HOST_EN \ |
65 |
| - 18 // Used to switch the USB interface. When high level, the USB_HOST interface is enabled. When low level, the USB_DEV interface is enabled. |
66 |
| - |
67 |
| -// Board Sensors |
68 |
| -#define OVER_CURRENT 21 // Current overrun signal, high level means overrun. |
69 |
| -#define HOST_VOLTS 1 // USB_DEV voltage monitoring, ADC1 channel 0. actual_v = value_v * 3.7 |
70 |
| -#define BAT_VOLTS 2 // Battery voltage monitoring, ADC1 channel 1. actual_v = value_v * 2 |
71 |
| - |
72 |
| -// USB Port |
73 |
| -#define USB_DN 19 // USB D- |
74 |
| -#define USB_DP 20 // USB D+ |
75 |
| - |
76 |
| -// Bottom header |
77 |
| -#define MTCK 39 |
78 |
| -#define MTDO 40 |
79 |
| -#define MTDI 41 |
80 |
| -#define MTMS 42 |
81 |
| -// #define FREE_6 3 // Idle, can be customized. |
82 |
| -// #define FREE_4 26 // Idle, can be customized. |
83 |
| -// #define FREE_1 45 // Idle, can be customized. |
84 |
| -// #define FREE_2 46 // Idle, can be customized. |
85 |
| -// #define FREE_5 47 // Idle, can be customized. |
86 |
| -// #define FREE_3 48 // Idle, can be customized. |
87 |
| - |
88 |
| -typedef enum { |
89 |
| - USB_HOST_POWER_OFF, |
90 |
| - USB_HOST_POWER_VBUS, |
91 |
| - USB_HOST_POWER_BAT |
92 |
| -} UsbHostPower_t; |
93 |
| -void usbHostPower(UsbHostPower_t mode); |
94 |
| -void usbHostEnable(bool enable); |
| 50 | +#define LCD_MODEL ST7789 |
| 51 | +#define LCD_WIDTH 410 |
| 52 | +#define LCD_HEIGHT 502 |
| 53 | + |
| 54 | +#define LCD_HOST SPI3_HOST |
| 55 | +#define LCD_SCK 35 // GPIO35 • QSPI_CLK |
| 56 | +#define LCD_MOSI 33 // GPIO33 • QSPI_IO0 (D0) |
| 57 | +#define LCD_IO1 34 // GPIO34 • QSPI_IO1 (D1) |
| 58 | +#define LCD_IO2 37 // GPIO37 • QSPI_IO2 (D2) |
| 59 | +#define LCD_IO3 36 // GPIO36 • QSPI_IO3 (D3) |
| 60 | +#define LCD_CS 10 // GPIO10 |
| 61 | +#define LCD_RST 9 // GPIO09 |
| 62 | +#define LCD_DC -1 // not used in 4-line SPI |
| 63 | +/* Optional: back-light enable shares the NeoPixel pin */ |
| 64 | +#define LCD_BL 5 // GPIO05 (same as NEOPIXEL) |
| 65 | + |
| 66 | +/*──────────────── Analogue / Touch pads ────────────────*/ |
| 67 | +static const uint8_t A0 = 11; // PIN4 – GPIO11 / TOUCH11 / ADC2_CH0 |
| 68 | +static const uint8_t A1 = 12; // PIN6 – GPIO12 / TOUCH12 / ADC2_CH1 |
| 69 | +static const uint8_t A2 = 13; // PIN8 – GPIO13 / TOUCH13 / ADC2_CH2 |
| 70 | +static const uint8_t A3 = 14; // PIN10 – GPIO14 / TOUCH14 / ADC2_CH3 |
| 71 | +static const uint8_t T0 = A0, T1 = A1, T2 = A2, T3 = A3; |
| 72 | + |
| 73 | +/*──────────────── On-board controls & indicator ─────────*/ |
| 74 | +#define BUTTON_TOP 0 // GPIO00 – BOOT • active-LOW |
| 75 | +#define BUTTON_BOTTOM 6 // GPIO06 • active-LOW |
| 76 | +#define NEOPIXEL_PIN 5 // GPIO05 – WS2812 |
| 77 | +#define LED_BUILTIN NEOPIXEL_PIN |
| 78 | + |
| 79 | +/*──────────────── JTAG (also on connector) ──────────────*/ |
| 80 | +#define MTCK 39 // PIN11 – GPIO39 |
| 81 | +#define MTDO 40 // PIN13 – GPIO40 |
| 82 | +#define MTDI 41 // PIN15 – GPIO41 |
| 83 | +#define MTMS 42 // PIN17 – GPIO42 |
| 84 | + |
| 85 | +/*──────────────── 2×10 header: simple aliases ─────────── |
| 86 | + NOTE: power pins (1 = 5 V, 2 = 3 V3, 19/20 = GND) are **not** |
| 87 | + exposed as GPIO numbers – they remain undefined here. */ |
| 88 | +#define PIN3 1 // GPIO01 / TOUCH1 / ADC1_CH0 |
| 89 | +#define PIN4 11 // GPIO11 / TOUCH11 / ADC2_CH0 |
| 90 | +#define PIN5 2 // GPIO02 / TOUCH2 / ADC1_CH1 |
| 91 | +#define PIN6 12 // GPIO12 / TOUCH12 / ADC2_CH1 |
| 92 | +#define PIN7 3 // GPIO03 / TOUCH3 / ADC1_CH2 |
| 93 | +#define PIN8 13 // GPIO13 / TOUCH13 / ADC2_CH2 |
| 94 | +#define PIN9 4 // GPIO04 / TOUCH4 / ADC1_CH3 |
| 95 | +#define PIN10 14 // GPIO14 / TOUCH14 / ADC2_CH3 |
| 96 | +#define PIN11 39 // MTCK |
| 97 | +#define PIN12 37 // SCL (external I²C) |
| 98 | +#define PIN13 40 // MTDO |
| 99 | +#define PIN14 36 // SDA (external I²C) |
| 100 | +#define PIN15 41 // MTDI |
| 101 | +#define PIN16 43 // TX (U0TXD) |
| 102 | +#define PIN17 42 // MTMS |
| 103 | +#define PIN18 44 // RX (U0RXD) |
| 104 | +/* PIN1, PIN2, PIN19, PIN20 are power/ground and deliberately |
| 105 | + left undefined – they are **not** usable as GPIO. */ |
95 | 106 |
|
96 | 107 | #endif /* Pins_Arduino_h */
|
0 commit comments