From 1d23c38d2d9d00a256336f35c4829950b8b5911e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 22 Jul 2024 13:50:21 +0200 Subject: [PATCH 1/5] add diagram.json to esp32 projects --- esp32-led-blink-sdk/diagram.json | 36 ++++++++++++++++++++++++++ esp32-led-blink-sdk/wokwi.toml | 5 ++++ esp32-led-strip-sdk/diagram.json | 44 ++++++++++++++++++++++++++++++++ esp32-led-strip-sdk/wokwi.toml | 5 ++++ 4 files changed, 90 insertions(+) create mode 100644 esp32-led-blink-sdk/diagram.json create mode 100644 esp32-led-blink-sdk/wokwi.toml create mode 100644 esp32-led-strip-sdk/diagram.json create mode 100644 esp32-led-strip-sdk/wokwi.toml diff --git a/esp32-led-blink-sdk/diagram.json b/esp32-led-blink-sdk/diagram.json new file mode 100644 index 0000000..5d4fda8 --- /dev/null +++ b/esp32-led-blink-sdk/diagram.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "author": "Juraj Michálek", + "editor": "wokwi", + "parts": [ + { + "type": "board-esp32-c6-devkitc-1", + "id": "esp", + "top": 0, + "left": 0, + "attrs": { "builder": "esp-idf" } + }, + { + "type": "wokwi-resistor", + "id": "r1", + "top": 119.15, + "left": -76.8, + "attrs": { "value": "1000" } + }, + { + "type": "wokwi-led", + "id": "led1", + "top": 25.2, + "left": -111.4, + "attrs": { "color": "red" } + } + ], + "connections": [ + [ "esp:TX", "$serialMonitor:RX", "", [] ], + [ "esp:RX", "$serialMonitor:TX", "", [] ], + [ "r1:2", "esp:8", "red", [ "v0" ] ], + [ "r1:1", "led1:A", "red", [ "h0" ] ], + [ "led1:C", "esp:GND.1", "black", [ "v0" ] ] + ], + "dependencies": {} +} \ No newline at end of file diff --git a/esp32-led-blink-sdk/wokwi.toml b/esp32-led-blink-sdk/wokwi.toml new file mode 100644 index 0000000..689fc7e --- /dev/null +++ b/esp32-led-blink-sdk/wokwi.toml @@ -0,0 +1,5 @@ +[wokwi] +version = 1 +elf = "build/uf2.bin" +firmware = "build/uf2.bin" + diff --git a/esp32-led-strip-sdk/diagram.json b/esp32-led-strip-sdk/diagram.json new file mode 100644 index 0000000..e7bb880 --- /dev/null +++ b/esp32-led-strip-sdk/diagram.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "author": "Juraj Michálek", + "editor": "wokwi", + "parts": [ + { + "type": "board-esp32-c6-devkitc-1", + "id": "esp", + "top": -13.91, + "left": 90.52, + "attrs": { "builder": "esp-idf" } + }, + { "type": "wokwi-neopixel", "id": "rgb1", "top": 73.3, "left": -20.2, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb2", "top": 73.3, "left": 18.2, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb3", "top": 73.3, "left": -250.6, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb4", "top": 73.3, "left": -212.2, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb5", "top": 73.3, "left": -58.6, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb6", "top": 73.3, "left": -173.8, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb7", "top": 73.3, "left": -97, "attrs": {} }, + { "type": "wokwi-neopixel", "id": "rgb8", "top": 73.3, "left": -135.4, "attrs": {} } + ], + "connections": [ + [ "esp:TX", "$serialMonitor:RX", "", [] ], + [ "esp:RX", "$serialMonitor:TX", "", [] ], + [ "rgb2:DIN", "esp:0", "green", [ "h28", "v-38.4" ] ], + [ "rgb2:DOUT", "rgb1:DIN", "green", [ "h-9.6", "v-10.5" ] ], + [ "rgb5:DOUT", "rgb7:DIN", "green", [ "h-9.6", "v-10.5" ] ], + [ "rgb8:DOUT", "rgb6:DIN", "green", [ "h-9.6", "v-10.5" ] ], + [ "rgb6:DOUT", "rgb4:DIN", "green", [ "v-0.9", "h-9.6", "v-9.6" ] ], + [ "rgb4:DOUT", "rgb3:DIN", "green", [ "v-0.9", "h-9.6", "v-9.6" ] ], + [ "rgb1:DOUT", "rgb5:DIN", "green", [ "h-9.6", "v-10.5" ] ], + [ "rgb2:VSS", "esp:5V", "red", [ "h18.4", "v75.9" ] ], + [ "rgb2:VDD", "rgb1:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb1:VDD", "rgb5:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb5:VDD", "rgb7:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb7:VDD", "rgb8:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb8:VDD", "rgb6:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb6:VDD", "rgb4:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb4:VDD", "rgb3:VSS", "red", [ "h-9.6", "v10.5" ] ], + [ "rgb3:VDD", "esp:GND.1", "black", [ "h-9.6", "v96" ] ], + [ "rgb8:DIN", "rgb7:DOUT", "green", [ "h8.8", "v9.6", "h9.6" ] ] + ], + "dependencies": {} +} \ No newline at end of file diff --git a/esp32-led-strip-sdk/wokwi.toml b/esp32-led-strip-sdk/wokwi.toml new file mode 100644 index 0000000..689fc7e --- /dev/null +++ b/esp32-led-strip-sdk/wokwi.toml @@ -0,0 +1,5 @@ +[wokwi] +version = 1 +elf = "build/uf2.bin" +firmware = "build/uf2.bin" + From 4aa7ccd88374be57dd3c1b5dbd05417f72aed665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 22 Jul 2024 13:58:10 +0200 Subject: [PATCH 2/5] doc: add wokwi simulation --- esp32-led-blink-sdk/README.md | 21 +++++++++++++++++++++ esp32-led-strip-sdk/README.md | 22 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/esp32-led-blink-sdk/README.md b/esp32-led-blink-sdk/README.md index 379aac7..3c92261 100644 --- a/esp32-led-blink-sdk/README.md +++ b/esp32-led-blink-sdk/README.md @@ -37,3 +37,24 @@ $ idf.py flash ``` - The LED should be blinking now. +## Simulating + +The project can be simulated using Wokwi Simulator in [IDE](https://docs.wokwi.com/vscode/getting-started). + +- Build the UF2 image recognized by the simulator: + +```console +idf.py uf2 +``` + +- Open the directory with the project in the IDE. + +- Start the simulator. + +Alternatively the project can be launched with pre-built binary in web browser: + +[![ESP32-S3-BOX-3 Graphical Bootloader](assets/images/esp32-led-blink-sdk.webp)](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-blink-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-blink-sdk.uf2.bin +) + +[Run on-line in Wokwi Simulator](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-blink-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-blink-sdk.uf2.bin +) diff --git a/esp32-led-strip-sdk/README.md b/esp32-led-strip-sdk/README.md index 5318c10..19651a0 100644 --- a/esp32-led-strip-sdk/README.md +++ b/esp32-led-strip-sdk/README.md @@ -36,3 +36,25 @@ $ idf.py flash ``` - The LED strip should now be animating a sequence of random colors moving in one direction. + +## Simulating + +The project can be simulated using Wokwi Simulator in [IDE](https://docs.wokwi.com/vscode/getting-started). + +- Build the UF2 image recognized by the simulator: + +```console +idf.py uf2 +``` + +- Open the directory with the project in the IDE. + +- Start the simulator. + +Alternatively the project can be launched with pre-built binary in web browser: + +[![ESP32-S3-BOX-3 Graphical Bootloader](assets/images/esp32-led-strip-sdk.webp)](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-strip-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-strip-sdk.uf2.bin +) + +[Run on-line in Wokwi Simulator](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-strip-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-strip-sdk.uf2.bin +) From 940d841f99d762198d2501506613834ea6169bf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 22 Jul 2024 14:04:56 +0200 Subject: [PATCH 3/5] doc: add wokwi screenshots --- .../assets/images/esp32-led-blink-sdk.webp | Bin 0 -> 16940 bytes .../assets/images/esp32-led-strip.sdk.webp | Bin 0 -> 20900 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 esp32-led-blink-sdk/assets/images/esp32-led-blink-sdk.webp create mode 100644 esp32-led-strip-sdk/assets/images/esp32-led-strip.sdk.webp diff --git a/esp32-led-blink-sdk/assets/images/esp32-led-blink-sdk.webp b/esp32-led-blink-sdk/assets/images/esp32-led-blink-sdk.webp new file mode 100644 index 0000000000000000000000000000000000000000..5b60eb27bbc4f1992b7edd035a01ca41150b088a GIT binary patch literal 16940 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

;G~4^UMh${cZPu-yz;` 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 literal 0 HcmV?d00001 From 26b938e518c6fca996cb65698372b5e8c502ded3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 22 Jul 2024 14:10:00 +0200 Subject: [PATCH 4/5] doc: correction of screenshot --- esp32-led-blink-sdk/README.md | 2 +- ...-led-strip.sdk.webp => esp32-led-strip-sdk.webp} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename esp32-led-strip-sdk/assets/images/{esp32-led-strip.sdk.webp => esp32-led-strip-sdk.webp} (100%) diff --git a/esp32-led-blink-sdk/README.md b/esp32-led-blink-sdk/README.md index 3c92261..4ca94d9 100644 --- a/esp32-led-blink-sdk/README.md +++ b/esp32-led-blink-sdk/README.md @@ -53,7 +53,7 @@ idf.py uf2 Alternatively the project can be launched with pre-built binary in web browser: -[![ESP32-S3-BOX-3 Graphical Bootloader](assets/images/esp32-led-blink-sdk.webp)](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-blink-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-blink-sdk.uf2.bin +[![ESP32-C6 Embedded Swift Example](assets/images/esp32-led-blink-sdk.webp)](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-blink-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-blink-sdk.uf2.bin ) [Run on-line in Wokwi Simulator](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-blink-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-blink-sdk.uf2.bin diff --git a/esp32-led-strip-sdk/assets/images/esp32-led-strip.sdk.webp b/esp32-led-strip-sdk/assets/images/esp32-led-strip-sdk.webp similarity index 100% rename from esp32-led-strip-sdk/assets/images/esp32-led-strip.sdk.webp rename to esp32-led-strip-sdk/assets/images/esp32-led-strip-sdk.webp From 63df79ea194d22ca2ccc29a525265c0b657007fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Mon, 22 Jul 2024 15:06:12 +0200 Subject: [PATCH 5/5] doc: fix title of the image --- esp32-led-strip-sdk/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esp32-led-strip-sdk/README.md b/esp32-led-strip-sdk/README.md index 19651a0..0b25c65 100644 --- a/esp32-led-strip-sdk/README.md +++ b/esp32-led-strip-sdk/README.md @@ -53,7 +53,7 @@ idf.py uf2 Alternatively the project can be launched with pre-built binary in web browser: -[![ESP32-S3-BOX-3 Graphical Bootloader](assets/images/esp32-led-strip-sdk.webp)](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-strip-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-strip-sdk.uf2.bin +[![ESP32-C6 Embedded Swift Example](assets/images/esp32-led-strip-sdk.webp)](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-strip-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-strip-sdk.uf2.bin ) [Run on-line in Wokwi Simulator](https://wokwi.com/experimental/viewer?diagram=https://raw.githubusercontent.com/georgik/swift-embedded-examples/feature/wokwi/esp32-led-strip-sdk/diagram.json&firmware=https://github.com/georgik/swift-embedded-examples/releases/download/v0.1/embedded-swift-esp32-c6-led-strip-sdk.uf2.bin