# Target setup guide for the ESP32S3 (ESP32S3-Touch-LCD-2.8C)

#### <span lang="EN-US">Before you Begin</span>

<span lang="EN-US">Before starting with the setup guide, we recommend the following to get familiar with CGI-Studio:</span>

- <span lang="EN-US">Explore CGI-Studio  
    Read the <span style="color: rgb(230, 126, 35);">[Quick Start Guide](https://doc316en.candera.eu/books/getting-started/chapter/quick-start-guide)</span>.   
    </span>
- <span lang="EN-US">Learn to create SceneComposer Solutions  
    The documentation provides instructions on how to create simple SceneComposer solutions. To access SceneComposer navigate to:  
    *&lt;cgi-studio-installation-path&gt;\\bin\\SceneComposer\\SceneComposer.exe*</span>
- <span lang="EN-US">Generate Assets for Simulation and Target Environments  
    You can find guidance on generating assets from solutions (binary files containing solution information for the player) for both simulation and target environments in the <span style="color: rgb(230, 126, 35);">[documentation](https://doc316en.candera.eu/books/asset-library-generation)</span>.  
    </span>

<span lang="EN-US">With this knowledge you should be fit to complete this guide.</span>

#### <span lang="EN-US">Setup</span>

##### <span lang="EN-US">Template Scenes</span>

<span lang="EN-US">When using a template scene as the base for development, the surfaceFormat inside the RenderTarget needs to be set to SurfaceFormatRGB565.</span>

##### <span lang="EN-US">IDE</span>

<span lang="EN-US">To compile a CourierSampleApp Example for the target ESP IDF needs to be installed within Visual Studio Code: <span style="color: rgb(230, 126, 35);">[Getting Started with VS Code IDE - ESP32 - — ESP-IDF Programming Guide v4.3.1 documentation](https://docs.espressif.com/projects/esp-idf/en/v4.3.1/esp32/get-started/vscode-setup.html)</span></span>

##### <span lang="EN-US">Device Connection to host PC</span>

<span lang="EN-US">The ESP32S3-Touch-LCD-2.8C target from waveshare has two USB-C ports. For flashing connect the one labled "UART" to the host PC.</span>

##### <span lang="EN-US">Compile and flash</span>

<span lang="EN-US">Inside *cgi\_studio\_apps\\References\\ESP-IDF* a example project can be found. Open this project within Visual Studio code </span>

<span lang="EN-US">It might be necessary to adjust the selected COM port. For this click the *COM&lt;current port number&gt;* on the bottom task bar and select one of the available com ports:</span>

<div drawio-diagram="8848"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-12/drawing-7-1765434647.png" alt=""/></div>

<span lang="EN-US">To compile and flash the target press the *ESP-IDF: Build, Flash and Monitor* on the bottom Task bar. </span>

<div drawio-diagram="8849"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-12/drawing-7-1765434675.png" alt=""/></div>

<span lang="EN-US">After compilation and flashing an example project can be seen on the display of the ESP32S3.</span>

#### <span lang="EN-US">Replacing the Asset File</span>

<span lang="EN-US">The current setup requires the Asset binary file to be converted to a C Array that can be placed directly within the code. For converting the binaries bin2c from segger can be used:</span>

<div drawio-diagram="8850"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-12/drawing-7-1765434771.png" alt=""/></div>

<span lang="EN-US">This program generates a file with a C array inside. This array needs to be copied into the following file: *cgi\_studio\_courier\_apps\\src\\CourierSampleAppLight\\AppPlatform\\Target\_FreeRTOS\_XTENSA\\Solution.c*</span>

<span lang="EN-US">The array needs to look like the following: </span>*const unsigned char \_ac2D\_Basic*. Inside the AppEnvironment.cpp file of the same directory this array is referenced:

extern const unsigned char \_ac2D\_Basic\[1130352UL + 1\];  
\#define ASSET\_START \_ac2D\_Basic

When updating the Solution.c make sure that the size of the array is the same inside Solution.c and in AppEnvironment.cpp

After the array has been replaced the project can be recompiled and flashed like described in the previous step.