Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
---
title: "Getting Started with NuttX and ESP32"
date: 2024-06-20T16:54:43-03:00
date: 2020-11-30
lastmod: 2024-06-20
tags: ["NuttX", "Apache", "ESP32", "POSIX", "Linux"]
showAuthor: false
featureAsset: "img/featured/featured-espressif.webp"
authors:
- "tiago-medicci"
- "eren-terzioglu"
- "filipe-cavalcanti"
summary: "In this article, a tutorial to get started with NuttX."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
summary: "In this article, a tutorial to get started with NuttX."
summary: "This article provides a tutorial to get started with NuttX."

---

## Introduction to Apache NuttX RTOS
Expand Down Expand Up @@ -280,3 +282,7 @@ NuttX is one of the most preferred RTOS for developers familiar with Linux inter
[1]: https://nuttx.apache.org/
[2]: https://youtu.be/DXbByNeatcU?si=BhxTyNqiZv3HPztl&t=53
[3]: https://nuttx.apache.org/docs/latest/applications/wireless/wapi/commands

---

The [original article](https://medium.com/the-esp-journal/getting-started-with-esp32-and-nuttx-fd3e1a3d182c) was published on Medium, on the [ESP Journal](https://medium.com/the-esp-journal). It has since been updated.
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
---
title: "Blink LED on ESP32 with RTOS NuttX"
date: 2020-11-30
date: 2020-12-01
lastmod: 2025-09-26
showAuthor: false
featureAsset: "img/featured/featured-espressif.webp"
authors:
- sara-monteiro
tags:
- Nuttx
- Esp32

summary: "This is a tutorial on how to blink an LED with NuttX after getting started."
---
{{< figure
default=true
src="img/blink-1.webp"
>}}
\
{{< alert >}}
**This article is under review and may contain outdated information.**
{{< /alert >}}

## Introduction

This article is part of the “First Steps with ESP32 and NuttX” series. A series whose objective is to present an overview of the NuttX Operating System and to provide instructions for using NuttX on ESP32.

The [first part](/blog/getting-started-with-esp32-and-nuttx) of the series showed how to prepare the environment, compile and build the Operating System (NuttX) until uploading the firmware to the SoC (ESP32).
The [first part](/blog/2020/11/getting-started-with-esp32-and-nuttx) of the series showed how to prepare the environment, compile and build the Operating System (NuttX) until uploading the firmware to the SoC (ESP32).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The [first part](/blog/2020/11/getting-started-with-esp32-and-nuttx) of the series showed how to prepare the environment, compile and build the Operating System (NuttX) until uploading the firmware to the SoC (ESP32).
The [first part](/blog/2020/11/nuttx-getting-started) of the series showed how to prepare the environment, compile and build the Operating System (NuttX) until uploading the firmware to the SoC (ESP32).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also update the same link further in this article.


This is the second part and will demonstrate how to run the famous “Hello World” from the Embedded Systems world, i.e., an application that blinks a LED. The evaluation board used here is a DevKit v1 and the built-in LED will be used for convenience. If your DevKit does not come with a built-in LED, just connect an LED to pin 2 in series with a resistor as it will be briefly discussed in the execution section.

Expand Down Expand Up @@ -132,3 +132,7 @@ So, stay tuned!
To participate in the Nuttx mail list, you can send an email to [dev-subscribe@nuttx.apache.org](mailto:dev-subscribe@nuttx.apache.org).

For help, doubts, bugs reports, and discussion regarding NuttX, you can send an email to [dev@nuttx.apache.org](mailto:dev@nuttx.apache.org).

---

The [original article](https://medium.com/the-esp-journal/blink-led-on-esp32-with-rtos-nuttx-d33c7dc62156) was published on Medium, on the [ESP Journal](https://medium.com/the-esp-journal). It has since been updated.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: "Core Dump: A Powerful Tool for Debugging Programs in Zephyr with ESP32 Boards"
date: 2023-07-27
lastmod: 2025-09-26
showAuthor: false
featureAsset: "img/featured/featured-espressif.webp"
authors:
- lucas-tamborrino
tags:
Expand All @@ -11,12 +11,8 @@ tags:
- Debugging Tools
- Esp32
- Debug

summary: "How to use Zephyr Core Dump feature with Espressif Devices."
---
{{< figure
default=true
src="img/core-1.webp"
>}}

[Zephyr OS](https://www.zephyrproject.org/) is an open-source, scalable, and adaptable real-time operating system (RTOS) for multiple hardware platforms, including [Espressif’s](https://www.espressif.com/) SoCs ESP32, ESP32S2, ESP32C3, and ESP32S3. Zephyr OS provides a wide range of features for embedded systems development, including support for generating and analyzing core dumps on unrecoverable software errors.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
---
title: "Maximizing Wi-Fi Throughput: Fine-Tuning Zephyr for Peak Performance with ESP32 SoCs in IoT Applications"
date: 2024-06-24T14:29:12+08:00
date: 2024-06-24
lastmod: 2025-09-26
showAuthor: false
featureAsset: "img/featured/featured-espressif.webp"
authors:
- "marcio-ribeiro"
tags: ["ESP32-S3", "Zephyr", "Wi-Fi"]
summary: "How to improve the throuput of network applications with Zephyr on Espressif devices."
---

Those who develop IoT applications based on Zephyr OS often need to optimize the communication performance. It can be done by tweaking the Wi-Fi network stack parameters. However, how do you evaluate the resulting changes and find the most suitable configuration? In this article, we will overview a method to optimize communication performance by using the `iperf` and `zperf` tools.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
---
title: "ESP32's family Memory Map 101"
date: 2024-08-20T18:56:49+02:00
tags: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "Zephyr"]
date: 2024-08-20
lastmod: 2025-09-25
tags: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "Zephyr", "Memory"]
showAuthor: false
authors:
- "marek-matej"
aliases:
- esp32s-family-memory-map-101
- [esp32s-family-memory-map-101]
summary: "Information of memory map of Espressif Devices."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This summary is not very informative. Please consider expending it:

Suggested change
summary: "Information of memory map of Espressif Devices."
summary: "This article addresses the complexity of Espressif SoCs by offering a visual, structured compilation of crucial technical data from their datasheets and TRMs. The main takeaway for the reader is a simplified, actionable understanding of the memory maps, caches, peripherals, and eFuse blocks, which is essential for low-level system and driver development."

---


Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
---
title: "Building Applications on NuttX: Understanding the Build System"
date: 2024-09-16T08:00:00-03:00
date: 2024-09-16
lastmod: 2025-09-26
tags: ["NuttX", "Apache", "ESP32", "POSIX", "Linux", "Tutorial"]
series: ["nuttx-apps"]
series_order: 1
showAuthor: false
authors:
- "tiago-medicci"
summary: "This article shows how to port and build an application form other Posix-compliant systems to NuttX."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
summary: "This article shows how to port and build an application form other Posix-compliant systems to NuttX."
summary: "This article shows how to port and build an application from other Posix-compliant systems to NuttX."

---

## Developing a Project with Existing Applications

The process of building an application in NuttX - whether it is a custom application or one that already exists and targets other operating systems - follows the principles of the NuttX build system. Although the NuttX documentation covers aspects of the application compilation process in various articles and documents, we will delve deeper into some of these options in this article.

For those who are not familiar with NuttX, I recommend reading the article [Getting Started with NuttX and ESP32]({{< ref "blog/nuttx-getting-started/index.md" >}}) or referring to the [*Getting Started*](https://nuttx.apache.org/docs/latest/quickstart/index.html) section in the official NuttX documentation. I would like to highlight NuttX's great advantage: being a POSIX-compliant system allows for easy integration of many applications into the system. About that, there's an old saying:
For those who are not familiar with NuttX, I recommend reading the article [Getting Started with NuttX and ESP32]({{< ref "blog/2020/11/nuttx-getting-started/index.md" >}}) or referring to the [*Getting Started*](https://nuttx.apache.org/docs/latest/quickstart/index.html) section in the official NuttX documentation. I would like to highlight NuttX's great advantage: being a POSIX-compliant system allows for easy integration of many applications into the system. About that, there's an old saying:

> Don't reinvent the wheel. Someone may have already developed an application to solve your problem!
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
title: "ESP32 bootstrapping in Zephyr"
date: 2024-10-30T10:18:10+02:00
date: 2024-10-30
lastmod: 2025-09-26
showAuthor: false
authors:
- "marek-matej"
tags: ["ESP32", "ESP32-S2", "ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP-IDF", "Zephyr"]
summary: "This article explains the booting process of Espressif devices up to ESP32-C6 (and probably newer devices)."
---

Those acquainted with the ESP32 system-on-chip (SoC) family know the complexity involved in analyzing its booting process. From navigating the embedded ROM bootloader, facilitated by comprehensive tooling, to initiating the 2nd stage bootloader, which subsequently launches the user application. The procedure deviates significantly from the the straightforward "jump-to-reset-vector" way of starting the user program, as we can see on the ARM architecture.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
title: "Testing applications with Pytest and NuttX"
date: 2024-10-04
lastmod: 2025-09-26
tags: ["NuttX", "Apache", "ESP32", "Pytest", "Testing"]
showAuthor: false
authors:
- "filipe-cavalcanti"
summary: "How Pytest is used for testing the NuttX RTOS on Espressif devices."
---

## Introduction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
---
title: "Introduction to Zephyr OS Tracing and Profiling"
date: 2024-11-15T06:54:17+08:00
date: 2024-11-15
lastmod: 2025-09-25
showAuthor: false
featureAsset: "featured-gauge.webp"
authors:
- "raffael-rostagno"
tags: ["ESP32", "Tracing", "Profiling","Zephyr"]
summary: "A brief introduction and show some basic examples of these resources as implemented in Zephyr RTOS."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider expanding the summary:

Suggested change
summary: "A brief introduction and show some basic examples of these resources as implemented in Zephyr RTOS."
summary: "This is an introduction to the critical embedded system debugging techniques of tracing and profiling within the Zephyr RTOS. After reading this article, you can use Zephyr's native tracing tools to gain a visual, in-depth understanding of system dynamics, helping to evaluate performance, spot timing issues, and diagnose complex problems like memory leaks or thread interaction glitches."

---

Embedded systems can be quite complex, depending on the architecture, application size and nature. Even for an experienced embedded developer, understanding the interplay of threads, interrupts, and multiple processes that run in a large application can be challenging. We humans are (mostly) visual by nature, and having the means to *visualize* what is happening in a given system can really open up possibilities. Without the right tools we are often in the dark, quite literally.
Expand Down
Diff not rendered.
Binary file modified content/software/zephyr-support-status/featured.webp