# \[Announce\] GNAT Runtime for ESP-IDF 0.1.0

**URL:** https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419
**Category:** Releases
**Tags:** gnat, esp32, runtime
**Created:** [May 13, 2026, 11:22am UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419 "2026-05-13T11:22:33Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![godunko](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/godunko/32/22_2.png) [@godunko](https://forum.ada-lang.io/u/godunko)
#### Post date: [May 13, 2026, 11:22am UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419/1 "2026-05-13T11:22:34Z")

</div>

# 🚀 Announcing: GNAT Runtime for Ada & SPARK on ESP32

I’m excited to share the latest updates for the [espidf\_gnat\_runtime](https://github.com/godunko/espidf_gnat_runtime) project!

This runtime allows you to run embedded applications by leveraging the core features and underlying drivers of the **ESP-IDF** (Espressif IoT Development Framework) on various ESP32 SoCs. By using the proven foundation of the ESP-IDF to support the **Ada/SPARK** environment, you get the best of both worlds: industry-standard hardware support and the world’s most advanced safety-critical programming language.

### 🔌 Supported SoCs

- **RISC-V:** ESP32-C3
- **Xtensa:** ESP32-S3

### 🛠 Key Features

- **Concurrency:** Support for **Ada tasks** and **protected objects** within the requirements of the **Jorvik profile** , ensuring predictable and efficient multitasking.
- **Language Core:** Comprehensive support for **Exceptions** , **Controlled types** , and **Secondary stack** for robust memory management and error handling.
- **Standard Library:** Includes a rich set of the Ada Standard Library:
  - `Ada.Containers` (Vectors, Maps, etc.)
  - `Ada.Numerics` (Elementary functions, Random numbers)
  - `Ada.Strings` (Fixed, Bounded, and Unbounded)

- **Verified Quality:** The runtime is rigorously tested with **ACATS** (Ada Conformity Assessment Test Suite) to ensure language compliance and reliability.

### 🛡 Why Ada & SPARK on ESP32?

By utilizing **SPARK** , you can move beyond traditional testing to **formally prove** the correctness of your code and the absence of runtime errors. This makes it an ideal choice for industrial automation, secure gateways, and high-reliability IoT devices where failure is not an option.

### 🏁 Get Started

Ready to build? We’ve provided several ways to jumpstart your development:

- **Project Templates:** Use our pre-configured templates for both [**ESP32-C3**](https://github.com/godunko/esp32c3_template) and [**ESP32-S3**](https://github.com/godunko/esp32s3_template) to get a working environment in minutes.
- **Agent Skill:** Use the dedicated [agent skill](https://github.com/godunko/ada_espidf_skills/tree/main/ada-espidf-skeleton) to automate the creation of new projects, handling the boilerplate so you can focus on your logic.

---

<div class="post-metadata">

### Author: ![Irvise](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/i/7ba0ec/32.png) [@Irvise](https://forum.ada-lang.io/u/Irvise)
#### Post date: [May 13, 2026, 5:18pm UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419/2 "2026-05-13T17:18:00Z")

</div>

> [@godunko](#):
>
> **Xtensa:** ESP32-S3

And just today the ESP32-S31 was announced and it is based on RISC-V! [https://www.youtube.com/watch?v=5vH7yJADBBQ](https://www.youtube.com/watch?v=5vH7yJADBBQ)

I may try to improve the runtime to support the C6 as that is the one I have, but no promises.

Best regards,  
Fer

---

<div class="post-metadata">

### Author: ![godunko](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/godunko/32/22_2.png) [@godunko](https://forum.ada-lang.io/u/godunko)
#### Post date: [May 13, 2026, 5:41pm UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419/3 "2026-05-13T17:41:12Z")

</div>

Contributions are welcome!

To port runtime to ESP32C6 copy `runtime-esp32c3.json` to `runtime-esp32c6.json`, replace `"-march=rv32imc"` by `"-march=rv32imac"` and it is should be done. Also, SVD file need to be added to `svd` directory.

To create real project you can start from `ep32c3_template`, replace `c3` by `c6` in the `alire.toml` and hope it is.

---

<div class="post-metadata">

### Author: ![RREE](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/rree/32/34_2.png) [@RREE](https://forum.ada-lang.io/u/RREE)
#### Post date: [August 14, 2026, 9:45pm UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419/4 "2026-08-14T21:45:57Z")

</div>

I created a template for the standard ESP32 (LX6) here: [GitHub - RREE/esp32\_template: ESP32 (Xtensa LX6) Ada Project Template (ESP-IDF Integrated) · GitHub](https://github.com/RREE/esp32_template/tree/main). Besides selecting the right compiler I had to make small patches to godunko’s crates `a0b-tools`, `espidf_gnat_runtime`, and `xtensa-dynconfig`. For the time being the sub-crates in the template link to my forks of these crates.

The sample app Hello\_World works on a [Cheap Yellow Display](https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display).

---

<div class="post-metadata">

### Author: ![godunko](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/godunko/32/22_2.png) [@godunko](https://forum.ada-lang.io/u/godunko)
#### Post date: [August 16, 2026, 4:15am UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419/5 "2026-08-16T04:15:36Z")

</div>

Thank you for contribution!

---

<div class="post-metadata">

### Author: ![godunko](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/godunko/32/22_2.png) [@godunko](https://forum.ada-lang.io/u/godunko)
#### Post date: [August 27, 2026, 6:41pm UTC](https://forum.ada-lang.io/t/announce-gnat-runtime-for-esp-idf-0-1-0/4419/6 "2026-08-27T18:41:00Z")

</div>

I’ve updated runtime to use FSF GCC 16, and it works!
