TESAIoT Firmware Stack: C Firmware on the TESAIoT Dev Kit
The core TESA Qualification Program course for developers. You write C firmware for the TESAIoT Dev Kit (the PSoC Edge AI Kit SoM on the QWA309 base board) with ModusToolbox and TESA’s master template. Every lesson is tied to a real example on the TESAIoT Developer Hub (github.com/tesaiot/developer-hub), pinned to an exact commit.
| Level | L3 Independent |
| Time | about 25 hours |
| Board | TESAIoT Dev Kit (lesson 5.3 uses the Eva Kit, as its example’s BSP does) |
| Tools | ModusToolbox 3.6 or later, git, a USB-C cable for KitProg3 |
| You should know | C at level L2 (variables, functions, basic pointers and structs) |
Outcomes
Section titled “Outcomes”- Build and flash C firmware to the TESAIoT Dev Kit with ModusToolbox and the master template on your own.
- Build a touch-screen HMI with LVGL, from a label to a Wi-Fi manager with a state machine and NVM profiles.
- Read every on-board sensor and the PDM microphone and combine them into a smooth dashboard.
- Use GPIO, ADC, I2C, CAN, UART, SPI and PWM on the QWA309 base board and confirm signals with an instrument.
- Send data to the TESAIoT Platform with Server-TLS and mTLS, and explain the role of OPTIGA™ Trust M.
Modules
Section titled “Modules”| Module | Lessons | Examples from |
|---|---|---|
| 1 · Getting started with the TESAIoT Dev Kit | 1 | master template (tesaiot_dev_kit_master) |
| 2 · HMI Menu & Setting with LVGL | 7 | Episodes series 1 (hmi_ep01–hmi_ep07) |
| 3 · Sensors and audio on the TESAIoT Dev Kit | 7 | Episodes series 2 (int_ep01–int_ep07) |
| 4 · Hardware on the QWA309 base board | 5 | practice codes prac_qwa309_* |
| 5 · Connecting to the TESAIoT Platform securely | 4 | embedded-devices and security examples |
The lesson pages are in Thai for now; the code and every example README they link to are on GitHub.
Where the code lives
Section titled “Where the code lives”All code stays in the Developer Hub and is linked at pinned commits, never copied, so there is one source.
The episodes, the practice codes and the examples on main are Apache-2.0; the master template and the OPTIGA
client are under Infineon/Cypress EULAs.
How to cite TESA
Section titled “How to cite TESA”“TESAIoT Firmware Stack: C Firmware on the TESAIoT Dev Kit” from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0
Add “(adapted)” when you change it. The example code is the TESAIoT Firmware Stack by the Thai Embedded Systems Association (TESA) in tesaiot/developer-hub. See ATTRIBUTION.md.
Companion videos for this course
Watch on YouTube (opens in a new tab)
-
TESAIoT Developer Hub for Firmware/Middleware/Application Developer Thai Embedded Systems Association (TESA) -
Download (from TESA Developer Hub), Build and Program via ModusToolbox to TESAIoT Dev Kit Thai Embedded Systems Association (TESA) -
Remote Flashing for TESAIoT Dev Kit via TESA Developer Hub Thai Embedded Systems Association (TESA) -
Overall TESAIoT Secure Platform Thai Embedded Systems Association (TESA)
Videos by Thai Embedded Systems Association (TESA) · The whole series in the playlist AIoT Foundation
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
Content is licensed CC BY-NC 4.0. Reuse it non-commercially and credit the Thai Embedded Systems Association (TESA) every time. · How to cite TESA