Skip to content

Commit 0d6efc6

Browse files
authored
Add new targets/esp32s3-box-3 (#5388)
* targets: add esp32s3-box-3 * add esp32s3-box3 * register esp32-s3-box-3 in tests
1 parent 1bd3ade commit 0d6efc6

3 files changed

Lines changed: 152 additions & 0 deletions

File tree

GNUmakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,8 @@ endif
10001000
@$(MD5SUM) test.bin
10011001
$(TINYGO) build -size short -o test.bin -target=esp32c3-12f examples/blinky1
10021002
@$(MD5SUM) test.bin
1003+
$(TINYGO) build -size short -o test.bin -target=esp32s3-box-3 examples/blinky1
1004+
@$(MD5SUM) test.bin
10031005

10041006
$(TINYGO) build -size short -o test.bin -target=makerfabs-esp32c3spi35 examples/machinetest
10051007
@$(MD5SUM) test.bin

src/machine/board_esp32s3-box3.go

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
//go:build esp32s3_box3
2+
3+
// This file contains the pin mappings for the ESP32-S3-BOX-3 board.
4+
//
5+
// ESP32-S3-BOX-3 is an AI voice development kit with 2.4" display.
6+
// - https://github.com/espressif/esp-box
7+
//
8+
// Based on ESP-BOX-3 BSP from Espressif.
9+
10+
package machine
11+
12+
// CPUFrequency returns the current CPU frequency for ESP32-S3-BOX-3.
13+
// Returns 240MHz (max speed for ESP32-S3 with PSRAM)
14+
func CPUFrequency() uint32 {
15+
return 240_000_000 // 240MHz
16+
}
17+
18+
const (
19+
// GPIO pins available on ESP32-S3-BOX-3
20+
// Based on ESP-BOX-3 BSP pin definitions
21+
IO0 = GPIO0 // Button Config
22+
IO1 = GPIO1 // Button Mute / Mute Status
23+
IO2 = GPIO2 // I2S MCLK
24+
IO3 = GPIO3 // LCD Touch Interrupt
25+
IO4 = GPIO4 // LCD DC
26+
IO5 = GPIO5 // LCD CS
27+
IO6 = GPIO6 // LCD DATA0 (MOSI)
28+
IO7 = GPIO7 // LCD PCLK (SCK)
29+
IO8 = GPIO8 // I2C SDA
30+
IO9 = GPIO9 // SD Card D0
31+
IO10 = GPIO10
32+
IO11 = GPIO11 // SD Card CLK
33+
IO12 = GPIO12 // SD Card D3
34+
IO13 = GPIO13 // SD Card D1
35+
IO14 = GPIO14 // SD Card CMD
36+
IO15 = GPIO15 // I2S DOUT (Speaker)
37+
IO16 = GPIO16 // I2S DSIN (Microphone)
38+
IO17 = GPIO17 // I2S SCLK
39+
IO18 = GPIO18 // I2C SCL
40+
IO19 = GPIO19 // USB_NEG
41+
IO20 = GPIO20 // USB_POS
42+
IO21 = GPIO21
43+
IO38 = GPIO38
44+
IO39 = GPIO39
45+
IO40 = GPIO40 // I2C Dock SCL
46+
IO41 = GPIO41 // I2C Dock SDA
47+
IO42 = GPIO42 // SD Card D2
48+
IO43 = GPIO43 // SD Card Power
49+
IO44 = GPIO44 // (Unused)
50+
IO45 = GPIO45 // I2S LCLK (LRCK)
51+
IO46 = GPIO46 // Power Amp Control
52+
IO47 = GPIO47 // LCD Backlight
53+
IO48 = GPIO48 // LCD Reset
54+
)
55+
56+
// SPI pins
57+
const (
58+
// SPI1 - used for LCD
59+
SPI1_SCK_PIN = IO7 // LCD_PCLK
60+
SPI1_MOSI_PIN = IO6 // LCD_DATA0 (MOSI)
61+
SPI1_MISO_PIN = NoPin // Not used for LCD
62+
SPI1_CS_PIN = IO5 // LCD_CS
63+
64+
// SPI2 (not used on this board)
65+
SPI2_SCK_PIN = NoPin
66+
SPI2_MOSI_PIN = NoPin
67+
SPI2_MISO_PIN = NoPin
68+
SPI2_CS_PIN = NoPin
69+
)
70+
71+
// LCD pins (ST7789/ILI9341)
72+
const (
73+
LCD_SCK_PIN = SPI1_SCK_PIN
74+
LCD_SDO_PIN = SPI1_MOSI_PIN
75+
LCD_SDI_PIN = NoPin
76+
LCD_SS_PIN = SPI1_CS_PIN
77+
LCD_DC_PIN = IO4
78+
LCD_RST_PIN = IO48
79+
LCD_BL_PIN = IO47
80+
)
81+
82+
// I2C pins (Internal I2C for sensors)
83+
const (
84+
SDA0_PIN = IO8
85+
SCL0_PIN = IO18
86+
87+
SDA_PIN = SDA0_PIN
88+
SCL_PIN = SCL0_PIN
89+
)
90+
91+
// Dock I2C pins (for expansion dock)
92+
const (
93+
SDA1_PIN = IO41
94+
SCL1_PIN = IO40
95+
)
96+
97+
// UART pins (USB CDC - native USB on ESP32-S3)
98+
// Note: Native USB doesn't require GPIO pins, these are kept for compatibility
99+
const (
100+
UART_TX_PIN = NoPin
101+
UART_RX_PIN = NoPin
102+
)
103+
104+
// Built-in LED
105+
// Using LCD backlight as LED indicator
106+
const LED = GPIO47
107+
108+
// Buttons
109+
const (
110+
BUTTON_CONFIG = GPIO0
111+
BUTTON_MUTE = GPIO1
112+
)
113+
114+
// Audio pins (I2S)
115+
const (
116+
I2S_SCLK_PIN = IO17 // Bit Clock
117+
I2S_MCLK_PIN = IO2 // Master Clock
118+
I2S_LRCK_PIN = IO45 // Left/Right Clock (Frame Sync)
119+
I2S_DOUT_PIN = IO15 // Data Out to Speaker (ES8311)
120+
I2S_DSIN_PIN = IO16 // Data In from Microphone (ES7210)
121+
)
122+
123+
// SD Card pins (SD/MMC mode)
124+
const (
125+
SDCARD_CMD_PIN = IO14
126+
SDCARD_CLK_PIN = IO11
127+
SDCARD_D0_PIN = IO9
128+
SDCARD_D1_PIN = IO13
129+
SDCARD_D2_PIN = IO42
130+
SDCARD_D3_PIN = IO12
131+
SDCARD_PWR_PIN = IO43 // SD Card Power
132+
)
133+
134+
// USB pins (native USB)
135+
const (
136+
USB_DPPIN = IO20 // USB D+
137+
USB_DMPIN = IO19 // USB D-
138+
)
139+
140+
// Touch interrupt
141+
const TOUCH_INT_PIN = IO3
142+
143+
// Power amplifier control
144+
const POWER_AMP_PIN = IO46

targets/esp32s3-box-3.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"inherits": ["esp32s3"],
3+
"build-tags": ["esp32s3_box3"],
4+
"serial-port": ["303a:1001"],
5+
"flash-mode": "dio"
6+
}

0 commit comments

Comments
 (0)