Skip to content

Commit 4a54385

Browse files
authored
add ESP32-C6-DevKit (#4)
* add ESP32-C6-DevKit * use generic BSP for C6
1 parent e741fb8 commit 4a54385

File tree

11 files changed

+170
-15
lines changed

11 files changed

+170
-15
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
runs-on: ubuntu-latest
2828
strategy:
2929
matrix:
30-
board: [esp32_p4_function_ev_board, esp32_c3_lcdkit]
30+
board: [esp32_p4_function_ev_board, esp32_c3_lcdkit, esp32_c6_devkit]
3131
fail-fast: false
3232

3333
steps:
@@ -42,6 +42,7 @@ jobs:
4242
m5stack_core_s3) echo 'esp32s3';;
4343
esp32_p4_function_ev_board) echo 'esp32p4';;
4444
esp32_c3_lcdkit) echo 'esp32c3';;
45+
esp32_c6_devkit) echo 'esp32c6';;
4546
*) echo 'Unknown target'; exit 1;;
4647
esac)" >> $GITHUB_ENV
4748

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ on:
66
release_name:
77
description: 'Name of the GitHub Release'
88
required: true
9-
default: 'v1.1.0'
9+
default: 'v1.1.1'
1010
release_tag:
1111
description: 'Tag for the GitHub Release'
1212
required: true
13-
default: 'v1.1.0'
13+
default: 'v1.1.1'
1414
prefix:
1515
description: 'Prefix for binary name'
1616
required: true

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
strategy:
1515
matrix:
16-
board: [esp32_p4_function_ev_board, esp32_c3_lcdkit]
16+
board: [esp32_p4_function_ev_board, esp32_c3_lcdkit, esp32_c6_devkit]
1717
fail-fast: false
1818

1919
steps:

README.md

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,61 @@ Read more about Swift for ESP32 at [Espressif Developer Portal](https://develope
1212

1313
[Run the ESP32-P4 SDL3 Swift with Wokwi.com](https://wokwi.com/experimental/viewer?diagram=https%3A%2F%2Fraw.githubusercontent.com%2Fgeorgik%2Fesp32-sdl3-swift-example%2Fmain%2Fboards%2Fesp32_p4_function_ev_board%2Fdiagram.json&firmware=https%3A%2F%2Fgithub.com%2Fgeorgik%2Fesp32-sdl3-swift-example%2Freleases%2Fdownload%2Fv1.0.0%2Fesp32-sdl3-swift-example-esp32_p4_function_ev_board.bin)
1414

15+
## Requirements
16+
17+
- Swift 6.1 - https://www.swift.org/install
18+
- ESP-IDF 5.4 - https://github.com/espressif/esp-idf
19+
1520
## Build
1621

17-
ESP32-P4-Function-Ev-Board:
22+
### Configure build environment
23+
24+
```shell
25+
source esp-idf/export.sh
26+
export TOOLCHAINS=$(plutil -extract CFBundleIdentifier raw /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2024-10-30-a.xctoolchain/Info.plist)
27+
```
28+
29+
### Build for ESP32-P4-Function-Ev-Board
1830

1931
```shell
2032
idf.py @boards/esp32_p4_function_ev_board.cfg flash monitor
2133
```
2234

23-
ESP32-C3-LcdKit:
35+
### Build for ESP32-C3-LcdKit
2436

2537
![ESP32-C3-LcdKit](docs/img/esp32-c3-lcdkit.webp)
2638

2739
```shell
28-
idf.py @boards/e@boards/esp32_c3_lcdkit.cfg flash monitor
40+
idf.py @boards/esp32_c3_lcdkit.cfg flash monitor
41+
```
42+
43+
### Build for ESP32-C6-DevKit
44+
45+
![ESP32-C6-DevKit](docs/img/esp32-c6-devkit.webp)
46+
47+
The configuration of this board is based on [ESP-BSP Generic](https://developer.espressif.com/blog/using-esp-bsp-with-devkits/) which allows configuration using menuconfig.
48+
49+
SPI Display configuration:
50+
51+
```ini
52+
CONFIG_BSP_DISPLAY_ENABLED=y
53+
CONFIG_BSP_DISPLAY_SCLK_GPIO=6
54+
CONFIG_BSP_DISPLAY_MOSI_GPIO=7
55+
CONFIG_BSP_DISPLAY_MISO_GPIO=-1
56+
CONFIG_BSP_DISPLAY_CS_GPIO=20
57+
CONFIG_BSP_DISPLAY_DC_GPIO=21
58+
CONFIG_BSP_DISPLAY_RST_GPIO=3
59+
CONFIG_BSP_DISPLAY_DRIVER_ILI9341=y
60+
```
61+
62+
You can change the configuration by running:
63+
64+
```shell
65+
idf.py @boards/esp32_c6_devkit.cfg menuconfig
66+
```
67+
68+
```shell
69+
idf.py @boards/esp32_c6_devkit.cfg flash monitor
2970
```
3071

3172
## Credits

boards/esp32_c6_devkit.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults.esp32_c6_devkit;sdkconfig.defaults" -DBUILD_BOARD="esp_bsp_generic" -DIDF_TARGET=esp32c6 -B build.esp32_c6_devkit

boards/esp32_c6_devkit/diagram.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"version": 1,
3+
"author": "Juraj Michálek",
4+
"editor": "wokwi",
5+
"parts": [
6+
{
7+
"type": "board-esp32-c6-devkitc-1",
8+
"id": "esp",
9+
"top": -494.32,
10+
"left": -455.03
11+
},
12+
{
13+
"type": "wokwi-ili9341",
14+
"id": "lcd1",
15+
"top": -546.22,
16+
"left": -134.92
17+
}
18+
],
19+
"connections": [
20+
[ "esp:TX", "$serialMonitor:RX", "", [] ],
21+
[ "esp:RX", "$serialMonitor:TX", "", [] ],
22+
[ "esp:3V3", "lcd1:VCC", "green", [] ],
23+
[ "esp:GND.1", "lcd1:GND", "black", [] ],
24+
[ "esp:6", "lcd1:SCK", "blue", [] ],
25+
[ "esp:7", "lcd1:MOSI", "orange", [] ],
26+
[ "esp:20", "lcd1:CS", "red", [] ],
27+
[ "esp:21", "lcd1:D/C", "magenta", [] ],
28+
[ "esp:3", "lcd1:RST", "yellow", [] ],
29+
[ "lcd1:LED", "esp:3V3", "white", [] ]
30+
],
31+
"serialMonitor": { "display": "terminal" },
32+
"dependencies": {}
33+
}

boards/esp32_c6_devkit/wokwi.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Wokwi Configuration File
2+
# Reference: https://docs.wokwi.com/vscode/project-config
3+
[wokwi]
4+
version = 1
5+
firmware = 'build.esp32_c6_devkit/flasher_args.json'
6+
elf = 'build.esp32_c6_devkit/esp32-sdl3-swift-example.elf'
7+
gdbServerPort=3333

docs/img/esp32-c6-devkit.webp

18 KB
Binary file not shown.

main/idf_component.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## IDF Component Manager Manifest File
22
dependencies:
33
joltwallet/littlefs: "==1.14.8"
4-
georgik/sdl: "^3.1.2~9"
4+
georgik/sdl: "^3.1.2~10"
55
georgik/sdl_ttf: "^3.0.0~3"
66
idf:
77
version: ">=5.1.0"
@@ -15,3 +15,8 @@ dependencies:
1515
version: "^1.1.0~1"
1616
rules:
1717
- if: "${BUILD_BOARD} == esp32_c3_lcdkit"
18+
19+
espressif/esp_bsp_generic:
20+
version: "==1.2.1"
21+
rules:
22+
- if: "${BUILD_BOARD} == esp_bsp_generic"

sdkconfig.defaults.esp32_c3_lcdkit

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,9 @@ CONFIG_PARTITION_TABLE_CUSTOM=y
77

88
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
99
CONFIG_COMPILER_OPTIMIZATION_PERF=y
10-
CONFIG_SPIRAM=y
11-
CONFIG_SPIRAM_MODE_OCT=y
12-
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
13-
CONFIG_SPIRAM_RODATA=y
14-
CONFIG_SPIRAM_SPEED_80M=y
1510
CONFIG_FREERTOS_HZ=1000
1611
CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2
1712
CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y
18-
CONFIG_SPIRAM_MODE_HEX=y
19-
CONFIG_SPIRAM_SPEED_200M=y
2013
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
2114

2215
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8912

sdkconfig.defaults.esp32_c6_devkit

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# This file was generated using idf.py save-defconfig. It can be edited manually.
2+
# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration
3+
#
4+
CONFIG_IDF_TARGET="esp32c6"
5+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
6+
CONFIG_PARTITION_TABLE_CUSTOM=y
7+
8+
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
9+
CONFIG_COMPILER_OPTIMIZATION_PERF=y
10+
CONFIG_FREERTOS_HZ=1000
11+
CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2
12+
CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y
13+
14+
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8912
15+
16+
# BSP Generic
17+
18+
CONFIG_SOC_SPI_PERIPH_NUM=2
19+
CONFIG_SOC_SPI_MAX_CS_NUM=6
20+
CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64
21+
CONFIG_SOC_SPI_SUPPORT_DDRCLK=y
22+
CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y
23+
CONFIG_SOC_SPI_SUPPORT_CD_SIG=y
24+
CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y
25+
CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
26+
CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y
27+
CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y
28+
CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y
29+
CONFIG_SOC_SPI_SCT_SUPPORTED=y
30+
CONFIG_SOC_SPI_SCT_REG_NUM=14
31+
CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y
32+
CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA
33+
CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
34+
CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
35+
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
36+
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y
37+
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y
38+
CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y
39+
CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y
40+
CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
41+
CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
42+
CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
43+
CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
44+
CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
45+
#
46+
# Display
47+
#
48+
49+
#
50+
# Connection
51+
#
52+
CONFIG_BSP_DISPLAY_ENABLED=y
53+
CONFIG_BSP_DISPLAY_SCLK_GPIO=6
54+
CONFIG_BSP_DISPLAY_MOSI_GPIO=7
55+
CONFIG_BSP_DISPLAY_MISO_GPIO=-1
56+
CONFIG_BSP_DISPLAY_CS_GPIO=20
57+
CONFIG_BSP_DISPLAY_DC_GPIO=21
58+
CONFIG_BSP_DISPLAY_RST_GPIO=3
59+
CONFIG_BSP_DISPLAY_DRIVER_ILI9341=y
60+
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
61+
# end of Connection
62+
63+
CONFIG_BSP_DISPLAY_COLOR_SPACE_RGB=y
64+
# CONFIG_BSP_DISPLAY_COLOR_SPACE_BGR is not set
65+
# CONFIG_BSP_DISPLAY_INVERT_COLOR is not set
66+
# CONFIG_BSP_DISPLAY_BRIGHTNESS_INVERT is not set
67+
CONFIG_BSP_DISPLAY_CMD_BITS=8
68+
CONFIG_BSP_DISPLAY_PARAM_BITS=8
69+
CONFIG_BSP_DISPLAY_PIXEL_CLOCK=20
70+
CONFIG_BSP_DISPLAY_WIDTH=320
71+
CONFIG_BSP_DISPLAY_HEIGHT=240
72+
CONFIG_BSP_LCD_DRAW_BUF_HEIGHT=100
73+
# CONFIG_BSP_LCD_DRAW_BUF_DOUBLE is not set
74+
# end of Display

0 commit comments

Comments
 (0)