17
17
#include <stdbool.h>
18
18
19
19
/*──────────────── USB device descriptor ────────────────*/
20
- #define USB_VID 0x303A // Espressif Systems VID
21
- #define USB_PID 0x1001 // Product ID: KodeDot-S3
20
+ #define USB_VID 0x303A // Espressif Systems VID
21
+ #define USB_PID 0x1001 // Product ID: KodeDot-S3
22
22
23
23
/*──────────────── UART0 (Arduino Serial) ────────────────*/
24
24
static const uint8_t TX = 43 ; // U0TXD – PIN16 on the 2×10 header
25
25
static const uint8_t RX = 44 ; // U0RXD – PIN18 on the 2×10 header
26
26
27
27
/*──────────────── I²C buses ─────────────────────────────*/
28
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
29
+ static const uint8_t SCL = 37 ; // GPIO37 – PIN12
30
+ static const uint8_t SDA = 36 ; // GPIO36 – PIN14
31
31
32
32
/* Internal sensor/touch bus (not on header) */
33
- #define INT_I2C_SCL 47 // GPIO47
34
- #define INT_I2C_SDA 48 // GPIO48
33
+ #define INT_I2C_SCL 47 // GPIO47
34
+ #define INT_I2C_SDA 48 // GPIO48
35
35
36
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
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
41
#define BOARD_HAS_SD_SPI
42
42
#define SD_CS SS
43
43
@@ -47,60 +47,60 @@ static const uint8_t SCK = 17; // SD_CLK
47
47
* Clock: 40 MHz
48
48
*/
49
49
#define BOARD_HAS_SPI_LCD
50
- #define LCD_MODEL ST7789
51
- #define LCD_WIDTH 410
52
- #define LCD_HEIGHT 502
50
+ #define LCD_MODEL ST7789
51
+ #define LCD_WIDTH 410
52
+ #define LCD_HEIGHT 502
53
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
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
63
/* Optional: back-light enable shares the NeoPixel pin */
64
- #define LCD_BL 5 // GPIO05 (same as NEOPIXEL)
64
+ #define LCD_BL 5 // GPIO05 (same as NEOPIXEL)
65
65
66
- /*──────────────── Analogue / Touch pads ────────────────*/
66
+ /*──────────────── Analog / Touch pads ────────────────*/
67
67
static const uint8_t A0 = 11 ; // PIN4 – GPIO11 / TOUCH11 / ADC2_CH0
68
68
static const uint8_t A1 = 12 ; // PIN6 – GPIO12 / TOUCH12 / ADC2_CH1
69
69
static const uint8_t A2 = 13 ; // PIN8 – GPIO13 / TOUCH13 / ADC2_CH2
70
70
static const uint8_t A3 = 14 ; // PIN10 – GPIO14 / TOUCH14 / ADC2_CH3
71
71
static const uint8_t T0 = A0 , T1 = A1 , T2 = A2 , T3 = A3 ;
72
72
73
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
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
78
79
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
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
84
85
85
/*──────────────── 2×10 header: simple aliases ───────────
86
86
NOTE: power pins (1 = 5 V, 2 = 3 V3, 19/20 = GND) are **not**
87
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)
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
104
/* PIN1, PIN2, PIN19, PIN20 are power/ground and deliberately
105
105
left undefined – they are **not** usable as GPIO. */
106
106
0 commit comments