Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
cf6d72f
Add board JSON configs for ESP-WROOM-32 and ESP32-S3
Aryann019x Apr 1, 2026
3690398
Add esp-wroom32-ili9341 config
Aryann019x Apr 1, 2026
7b567a3
Add esp-wroom32-ili9341 interface
Aryann019x Apr 1, 2026
36dbb04
Add esp-wroom32-ili9341 pin definitions
Aryann019x Apr 1, 2026
98c77a3
Add esp-wroom32-st7789 board config
Aryann019x Apr 1, 2026
2047f59
Add esp-wroom32-st7789 interface
Aryann019x Apr 1, 2026
71d188b
Add esp-wroom32-st7789 pin definitions
Aryann019x Apr 1, 2026
cf9125c
Add esp32s3-st7789 board config
Aryann019x Apr 1, 2026
3b0480f
Add esp32s3-st7789 interface
Aryann019x Apr 1, 2026
b4be243
Add esp32s3-st7789 pin definitions
Aryann019x Apr 1, 2026
b44d8a3
Add includes for new boards
Aryann019x Apr 1, 2026
1b776a4
Add includes for new board definitions
Aryann019x Apr 1, 2026
58e92a6
Add new board environments
Aryann019x Apr 1, 2026
b5442b1
Merge branch 'main' into new-board-support
Aryann019x Apr 4, 2026
0363545
Merge branch 'dev' into new-board-support
bmorcelli Apr 16, 2026
43572f9
Add pins_arduino.h for ESP32S3 ILI9341 board
Aryann019x May 3, 2026
0a9df55
Add GPIO and touchscreen initialization functions
Aryann019x May 3, 2026
b5960ba
Add PlatformIO configuration for ESP32S3 ILI9341
Aryann019x May 3, 2026
1fa6bc2
Create esp32s3_ili9341_wiring.png
Aryann019x May 3, 2026
a96780a
Add wiring diagram for ESP32-S3 ILI9341
Aryann019x May 3, 2026
c0fb463
Add wiring guide for ESP32-S3 and ILI9341 display
Aryann019x May 3, 2026
6cf83f3
Add ESP32-S3 ILI9341 board configuration
Aryann019x May 3, 2026
a3b517a
Add includes for ESP32S3 display pinout headers
Aryann019x May 3, 2026
c5497d2
Add wiring guide for ESP32-S3 and ST7789 display
Aryann019x May 3, 2026
2fb82ed
Create esp32s3_st7789_wiring.png
Aryann019x May 3, 2026
396d524
Add wiring diagram for ESP32-S3 ST7789 board
Aryann019x May 3, 2026
d99617c
Add wiring guide for ESP-WROOM32 and ST7789 display
Aryann019x May 3, 2026
840d500
Create diagrams
Aryann019x May 3, 2026
523b676
Delete boards/esp-wroom32-st7789/diagrams
Aryann019x May 3, 2026
1bf5baf
Create espwroom32_st7789_wiring.png
Aryann019x May 3, 2026
c19dd4c
Add wiring diagram for ESP-WROOM-32 ST7789
Aryann019x May 3, 2026
5f8a837
Add wiring guide for ESP-WROOM32 and ILI9341 display
Aryann019x May 3, 2026
7124d42
Create espwroom32_ili9341_wiring.png
Aryann019x May 3, 2026
1917c34
Add wiring diagram for ESP-WROOM-32 ILI9341
Aryann019x May 3, 2026
915b14d
Add configuration for ST7789 display and peripherals
Aryann019x May 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions boards/_boards_json/esp-wroom32-ili9341.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"build": {
"arduino": {
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DESP_WROOM32_ILI9341",
"-DARDUINO_ESP32_DEV",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "pinouts"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP-WROOM-32 with ILI9341 2.4 TFT",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://en.wikipedia.org/wiki/ESP32",
"vendor": "Espressif"
}
42 changes: 42 additions & 0 deletions boards/_boards_json/esp-wroom32-st7789.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"build": {
"arduino": {
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DESP_WROOM32_ST7789",
"-DARDUINO_ESP32_DEV",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "pinouts"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP-WROOM-32 with ST7789 2.8 TFT Touch",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://en.wikipedia.org/wiki/ESP32",
"vendor": "Espressif"
}
52 changes: 52 additions & 0 deletions boards/_boards_json/esp32s3-ili9341.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_8MB.csv"
},
"core": "esp32",
"extra_flags": [
"-DESP32S3_ILI9341",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1",
"-DARDUINO_USB_CDC_ON_BOOT"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0x303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "pinouts"
},
"connectivity": [
"bluetooth",
"wifi"
],
"debug": {
"default_tool": "esp-builtin",
"onboard_tools": [
"esp-builtin"
],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP32-S3 ILI9341 Touchscreen (8MB Flash)",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
"vendor": "Espressif"
}
52 changes: 52 additions & 0 deletions boards/_boards_json/esp32s3-st7789.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_8MB.csv"
},
"core": "esp32",
"extra_flags": [
"-DESP32S3_ST7789",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1",
"-DARDUINO_USB_CDC_ON_BOOT"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0x303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "pinouts"
},
"connectivity": [
"bluetooth",
"wifi"
],
"debug": {
"default_tool": "esp-builtin",
"onboard_tools": [
"esp-builtin"
],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP32-S3 ST7789 Touchscreen (8MB Flash)",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
"vendor": "Espressif"
}
90 changes: 90 additions & 0 deletions boards/esp-wroom32-ili9341/connections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# ESP-WROOM32 with ILI9341 Display Wiring Guide

This board features an ESP32 microcontroller paired with a 2.4" ILI9341 display and supports 5-way button navigation.

## Components

- **MCU**: ESP-WROOM32 (ESP32)
- **Display**: ILI9341 2.4" SPI TFT LCD (240x320)
- **buttons**: 5-way tactile button pad (up/down/left/right/select)
- **LED**: Single status LED
- **Communication**: SPI for display/radio modules, I2C for sensors

## Display Pinout (ILI9341)

| Display Pin | ESP32 Pin | Purpose |
|---|---|---|
| VCC | 3.3V | Power |
| GND | GND | Ground |
| CS | 17 | Chip Select |
| RESET | 5 | Reset |
| DC | 16 | Data/Command |
| MOSI | 23 | Serial Data In |
| MISO | 19 | Serial Data Out |
| SCK | 18 | Clock |
| BL/LED | 32 | Backlight (PWM) |

## Button Pinout (5-Way Tactile)

| Button | ESP32 Pin | Function |
|---|---|---|
| Select/OK | 35 | Center button |
| Up | 34 | Navigation up |
| Down | 26 | Navigation down |
| Right | 27 | Navigation right |
| Left | 33 | Navigation left |

All buttons are **active-LOW** (GND when pressed).

## Radio Modules (CC1101/NRF24) - Shared SPI Bus

| Radio Pin | ESP32 Pin | Purpose |
|---|---|---|
| VCC | 3.3V | Power |
| GND | GND | Ground |
| MOSI | 23 | Serial Data In (shared with display) |
| MISO | 19 | Serial Data Out (shared with display) |
| SCK | 18 | Clock (shared with display) |
| CS | 15 | Chip Select (software selectable) |
| *Specific to RF module* | | See module documentation |

**Note**: Radio modules share the SPI bus with the display but have separate chip select (CS) lines. The firmware manages CS timing to prevent conflicts.

## I2C Sensors (Grove/Standard)

| Sensor Pin | ESP32 Pin | Purpose |
|---|---|---|
| VCC | 3.3V | Power |
| GND | GND | Ground |
| SCL | 22 | I2C Clock |
| SDA | 21 | I2C Data |

## Status LED

| LED Pin | ESP32 Pin | Purpose |
|---|---|---|
| Anode | 2 | Active HIGH output |
| Cathode | GND | Ground |

## Serial Port

| Pin | ESP32 Pin | Type |
|---|---|---|
| RX | 3 | UART0 Input (programming/debug) |
| TX | 1 | UART0 Output (programming/debug) |

## Power Supply

- **Logic voltage**: 3.3V
- **Supply current**: ~500mA typical (display + MCU)
- **Peak current**: ~800mA (during radio transmission)

Use a quality USB power supply or regulated 3.3V source rated for at least 1A.

## Wiring Notes

1. **SPI Bus Sharing**: Display, radio, and SD card (if used) all share SCK/MOSI/MISO lines. Each device has its own CS line to prevent conflicts.
2. **Button Ground**: All 5 buttons should be pulled to GND when pressed. Use 10kΩ pull-up resistors on pins if needed.
3. **Backlight**: The BL pin (GPIO32) supports PWM for brightness control (0-255).
4. **Reset**: The display RESET (GPIO5) is active LOW. Normally tied HIGH through 10kΩ resistor.
5. **Debouncing**: The firmware handles software debouncing for buttons (typical bounce time ~20ms).
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 58 additions & 0 deletions boards/esp-wroom32-ili9341/esp-wroom32-ili9341.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
; PlatformIO Project Configuration File
; ESP-WROOM-32 + ILI9341 2.4" TFT (no touch) + 5-way tactile switch
;
; TFT Pins: MISO=19, MOSI=23, SCLK=18, CS=17, DC=16, RST=5, BL=32
; 5-Way Nav: Up=34, Down=26, Left=33, Right=27, Center=35

[env:esp-wroom32-ili9341]
board = esp-wroom32-ili9341
monitor_speed = 115200
upload_port = COM3
upload_speed = 115200
upload_flags = --no-stub
board_build.partitions = custom_4Mb_full.csv
build_src_filter = ${env.build_src_filter} +<../boards/esp-wroom32-ili9341>
build_flags =
${env.build_flags}
-Iboards/esp-wroom32-ili9341
-Os
-DCORE_DEBUG_LEVEL=0

-DDEVICE_NAME='"ESP32-ILI9341"'

; Microphone (disabled)
-DPIN_CLK=-1
-DI2S_SCLK_PIN=-1
-DI2S_DATA_PIN=-1
-DPIN_DATA=-1

; Speaker (disabled)
-DBCLK=-1
-DWCLK=-1
-DDOUT=-1

; RGB LED (disabled)
-DRGB_LED=-1

; CC1101 SPI
-DUSE_CC1101_VIA_SPI
-DCC1101_GDO0_PIN=2
-DCC1101_SS_PIN=15
-DCC1101_MOSI_PIN=SPI_MOSI_PIN
-DCC1101_SCK_PIN=SPI_SCK_PIN
-DCC1101_MISO_PIN=SPI_MISO_PIN

; NRF24 SPI
-DUSE_NRF24_VIA_SPI
-DNRF24_CE_PIN=4
-DNRF24_SS_PIN=15
-DNRF24_MOSI_PIN=SPI_MOSI_PIN
-DNRF24_SCK_PIN=SPI_SCK_PIN
-DNRF24_MISO_PIN=SPI_MISO_PIN

lib_deps =
${env.lib_deps}
lib_ignore =
FastLED
ESP8266Audio
ESP8266SAM
Loading