From aa2440d5e487f66728f81a2e31ac4378ef6412b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 4 Nov 2024 12:45:18 +0100 Subject: [PATCH 1/4] wip: add ESP32-C3 DevKit --- boards/esp32_c3_lcdkit.cfg | 1 + main/Main.swift | 9 +++++++++ main/idf_component.yml | 5 +++++ sdkconfig.defaults.esp32_c3_lcdkit | 24 ++++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 boards/esp32_c3_lcdkit.cfg create mode 100644 sdkconfig.defaults.esp32_c3_lcdkit diff --git a/boards/esp32_c3_lcdkit.cfg b/boards/esp32_c3_lcdkit.cfg new file mode 100644 index 0000000..0135850 --- /dev/null +++ b/boards/esp32_c3_lcdkit.cfg @@ -0,0 +1 @@ +-DSDKCONFIG_DEFAULTS="sdkconfig.defaults.esp32_c3_lcdkit;sdkconfig.defaults" -DBUILD_BOARD="esp32_c3_lcdkit" -DIDF_TARGET=esp32c3 -B build.esp32_c3_lcdkit diff --git a/main/Main.swift b/main/Main.swift index 6f60741..ad956f3 100644 --- a/main/Main.swift +++ b/main/Main.swift @@ -76,6 +76,15 @@ func sdl_thread_entry_point(arg: UnsafeMutableRawPointer?) -> UnsafeMutableRawPo return nil } + var width: Int32 = 0 + var height: Int32 = 0 + + // Get window size + SDL_GetWindowSize(window, &width, &height) + + // Print the resolution + print("Display resolution: \(width)x\(height)") + // Create SDL renderer guard let renderer = SDL_CreateRenderer(window, nil) else { print("Failed to create renderer") diff --git a/main/idf_component.yml b/main/idf_component.yml index fdcef1c..56f8ee9 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -10,3 +10,8 @@ dependencies: version: "3.0.1" rules: - if: "${BUILD_BOARD} == esp32_p4_function_ev_board_noglib" + + espressif/esp32_c3_lcdkit: + version: "^1.1.0~1" + rules: + - if: "${BUILD_BOARD} == esp32_c3_lcdkit" diff --git a/sdkconfig.defaults.esp32_c3_lcdkit b/sdkconfig.defaults.esp32_c3_lcdkit new file mode 100644 index 0000000..4791c8b --- /dev/null +++ b/sdkconfig.defaults.esp32_c3_lcdkit @@ -0,0 +1,24 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2 +CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +# Required for TTF rendering if it happens in main task +CONFIG_ESP_MAIN_TASK_STACK_SIZE=32000 + From 964d3c0d57e672dccb47a064a82cb722aed02e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 4 Nov 2024 14:56:08 +0100 Subject: [PATCH 2/4] add esp32-c3-lcdkit --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/test.yml | 2 +- README.md | 12 +++++++++- boards/esp32_c3_lcdkit/diagram.json | 35 ++++++++++++++++++++++++++++ boards/esp32_c3_lcdkit/wokwi.toml | 7 ++++++ docs/img/esp32-c3-lcdkit.webp | Bin 0 -> 19088 bytes main/Main.swift | 2 +- main/idf_component.yml | 2 +- sdkconfig.defaults.esp32_c3_lcdkit | 3 +-- 10 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 boards/esp32_c3_lcdkit/diagram.json create mode 100644 boards/esp32_c3_lcdkit/wokwi.toml create mode 100644 docs/img/esp32-c3-lcdkit.webp diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42049d0..b5542c8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - board: [esp32_p4_function_ev_board] + board: [esp32_p4_function_ev_board, esp32_c3_lcdkit] fail-fast: false steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07eec16..2425458 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,11 +6,11 @@ on: release_name: description: 'Name of the GitHub Release' required: true - default: 'v1.0.0' + default: 'v1.1.0' release_tag: description: 'Tag for the GitHub Release' required: true - default: 'v1.0.0' + default: 'v1.1.0' prefix: description: 'Prefix for binary name' required: true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3940148..5833626 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - board: [esp32_p4_function_ev_board] + board: [esp32_p4_function_ev_board, esp32_c3_lcdkit] fail-fast: false steps: diff --git a/README.md b/README.md index 80cbace..7e5a2cf 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Test Status](https://github.com/georgik/esp32-sdl3-swift-example/actions/workflows/test.yml/badge.svg) -Example of graphical application for ESP32-P4. +Example of graphical application for ESP32-C3, ESP32-P4. Read more about Swift for ESP32 at [Espressif Developer Portal](https://developer.espressif.com/tags/swift/). @@ -14,10 +14,20 @@ Read more about Swift for ESP32 at [Espressif Developer Portal](https://develope ## Build +ESP32-P4-Function-Ev-Board: + ```shell idf.py @boards/esp32_p4_function_ev_board.cfg flash monitor ``` +ESP32-C3-LcdKit: + +![ESP32-C3-LcdKit](docs/img/esp32-c3-lcdkit.webp) + +```shell +idf.py @boards/e@boards/esp32_c3_lcdkit.cfg flash monitor +``` + ## Credits - Graphical assets: https://opengameart.org/content/platformer-tiles diff --git a/boards/esp32_c3_lcdkit/diagram.json b/boards/esp32_c3_lcdkit/diagram.json new file mode 100644 index 0000000..73adcac --- /dev/null +++ b/boards/esp32_c3_lcdkit/diagram.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "author": "Juraj Michálek", + "editor": "wokwi", + "parts": [ + { + "type": "board-esp32-c3-devkitm-1", + "id": "esp", + "top": -494.32, + "left": -455.03, + "attrs": { "builder": "rust-std-esp32" } + }, + { "type": "wokwi-ili9341", "id": "lcd1", "top": -546.22, "left": -134.92, "attrs": {} }, + { "type": "wokwi-ky-040", "id": "encoder1", "top": -417.5, "left": -703.6, "attrs": {} } + ], + "connections": [ + [ "esp:TX", "$serialMonitor:RX", "", [] ], + [ "esp:RX", "$serialMonitor:TX", "", [] ], + [ "esp:3V3", "lcd1:VCC", "green", [] ], + [ "esp:GND.1", "lcd1:GND", "black", [ "v215.62", "h374.23" ] ], + [ "esp:1", "lcd1:SCK", "blue", [ "v215.62", "h422.24" ] ], + [ "esp:7", "lcd1:CS", "red", [ "v186.82", "h295.01" ] ], + [ "esp:2", "lcd1:D/C", "magenta", [ "v215.62", "h403.03" ] ], + [ "esp:0", "lcd1:MOSI", "orange", [ "v215.62", "h412.64" ] ], + [ "esp:3", "lcd1:LED", "white", [ "v234.82", "h431.84" ] ], + [ "lcd1:LED", "esp:3V3", "white", [] ], + [ "esp:10", "encoder1:DT", "green", [] ], + [ "esp:9", "encoder1:CLK", "blue", [] ], + [ "esp:3V3", "encoder1:VCC", "red", [] ], + [ "esp:GND.1", "encoder1:GND", "black", [] ], + [ "esp:8", "encoder1:SW", "yellow", [] ] + ], + "serialMonitor": { "display": "terminal", "newline": "lf", "convertEol": true }, + "dependencies": {} +} \ No newline at end of file diff --git a/boards/esp32_c3_lcdkit/wokwi.toml b/boards/esp32_c3_lcdkit/wokwi.toml new file mode 100644 index 0000000..e9da89c --- /dev/null +++ b/boards/esp32_c3_lcdkit/wokwi.toml @@ -0,0 +1,7 @@ +# Wokwi Configuration File +# Reference: https://docs.wokwi.com/vscode/project-config +[wokwi] +version = 1 +firmware = 'build.esp32_c3_lcdkit/flasher_args.json' +elf = 'build.esp32_c3_lcdkit/esp32-sdl3-swift-example.elf' +gdbServerPort=3333 diff --git a/docs/img/esp32-c3-lcdkit.webp b/docs/img/esp32-c3-lcdkit.webp new file mode 100644 index 0000000000000000000000000000000000000000..3d4fcce4f63d5a5a508686128a65b7e1d364bea2 GIT binary patch literal 19088 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 literal 0 HcmV?d00001 diff --git a/main/Main.swift b/main/Main.swift index ad956f3..42abb66 100644 --- a/main/Main.swift +++ b/main/Main.swift @@ -24,7 +24,7 @@ func app_main() { var attr = pthread_attr_t() pthread_attr_init(&attr) - pthread_attr_setstacksize(&attr, 65536) // Set the stack size for the thread + pthread_attr_setstacksize(&attr, 32000) // Set the stack size for the thread // Create the SDL thread let ret = pthread_create(&sdl_pthread, &attr, sdl_thread_entry_point, nil) diff --git a/main/idf_component.yml b/main/idf_component.yml index 56f8ee9..d7febfc 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -1,7 +1,7 @@ ## IDF Component Manager Manifest File dependencies: joltwallet/littlefs: "==1.14.8" - georgik/sdl: "^3.1.2~8" + georgik/sdl: "^3.1.2~9" georgik/sdl_ttf: "^3.0.0~3" idf: version: ">=5.1.0" diff --git a/sdkconfig.defaults.esp32_c3_lcdkit b/sdkconfig.defaults.esp32_c3_lcdkit index 4791c8b..2cc19c0 100644 --- a/sdkconfig.defaults.esp32_c3_lcdkit +++ b/sdkconfig.defaults.esp32_c3_lcdkit @@ -19,6 +19,5 @@ CONFIG_SPIRAM_MODE_HEX=y CONFIG_SPIRAM_SPEED_200M=y CONFIG_IDF_EXPERIMENTAL_FEATURES=y -# Required for TTF rendering if it happens in main task -CONFIG_ESP_MAIN_TASK_STACK_SIZE=32000 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=8912 From 5515568ba9df333d8ef5fe53781ec8b9faec6811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 4 Nov 2024 15:09:51 +0100 Subject: [PATCH 3/4] add esp32-c3 target mapping --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b5542c8..a2a0156 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,6 +41,7 @@ jobs: esp-box) echo 'esp32s3';; m5stack_core_s3) echo 'esp32s3';; esp32_p4_function_ev_board) echo 'esp32p4';; + esp32_c3_lcdkit) 'esp32c3';; *) echo 'Unknown target'; exit 1;; esac)" >> $GITHUB_ENV From aaf5f85dd92c3ae524792bfefc667137c1291a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 4 Nov 2024 15:22:38 +0100 Subject: [PATCH 4/4] ci: fix board type mapping --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2a0156..021ba41 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,7 +41,7 @@ jobs: esp-box) echo 'esp32s3';; m5stack_core_s3) echo 'esp32s3';; esp32_p4_function_ev_board) echo 'esp32p4';; - esp32_c3_lcdkit) 'esp32c3';; + esp32_c3_lcdkit) echo 'esp32c3';; *) echo 'Unknown target'; exit 1;; esac)" >> $GITHUB_ENV