Dawn is a new open-source project for building embedded data acquisition and control devices on top of Apache NuttX. It started from a common problem: many embedded projects need the same kind of firmware infrastructure, and too much of that work still gets rebuilt from scratch. I wanted to turn more of that repeated work into something reusable. Dawn is the result of that effort. It took much…
Developing and testing embedded applications involving multiple devices running dedicated firmware is always a challenge—especially for networked system where many nodes must collaborate. This process can be simplified by shifting part of the development workflow to a simulated environment, where hardware-related issues can be ignored and the focus remains on application logic. In this post, we'll…
It’s time for another hands-on example of using NuttX in small embedded systems! This time, we’ll dive into implementing a simple application with Modbus RTU , a lightweight and cost-effective industrial protocol. Thanks to its low implementation cost, Modbus RTU is a great choice for cheap, resource-constrained microcontrollers. In this example, we’ll demonstrate how to use Modbus for remote…
The previous posts in this series provided useful information about small systems and NuttX, but the code examples lacked practical value. Now, we move on to more practical, real-life applications that actually do something useful. We begin with a simple CAN Bus node, which can be used to test CAN network setups or drivers, making it a handy tool for developers. Additionally, it can serve as a…
In earlier posts in this series, we explored the resource requirements of trivial examples. Now, it's time to dive deeper and examine how specific NuttX interfaces affect resource consumption in small embedded systems. As part of this analysis, we'll develop small applications that utilize specific NuttX features and evaluate the memory footprint of each. This knowledge can be useful when…
We continue our exploration of Apache NuttX for small embedded systems. In the previous post , we examined a simple "Hello, World!" example and explored how small it could be on NuttX. Now, we take it a step further by disabling all possible NuttX features, allowing the toolchain to remove as much code as possible. This approach leaves us with the core of NuttX—components that can't be eliminated…
In the world of small embedded systems, balancing functionality with strict resource limitations is a constant challenge. Apache NuttX, with its scalable and modular design, allows developers to select only the features needed for a given application and then fine-tune the system to minimize resource usage. However, the vast number of configuration options can be overwhelming, and without…
NxScope in Apache NuttX is a universal tool that allows you to capture and transfer time series data to your host machine. In this post, I'll demonstrate its use based on the SensorScope application, which enables the streaming of data from sensors and their subsequent visualization. For this purpose, the Thingy:53 board from Nordic Semiconductor is used. It has several sensors on board and almost…
One of my favorite things when working with Segger J-Link is RTT support which significalntly improves my debugging experience. With a single interface (one USB cable), I can run: RTT serial console to communicate with the target SystemView to capture system events gdb for general debugging The latest addition to this list is real-time data streaming with the NuttX NxScope library and RTT channel…
PlotJuggler is a cool tool for visualizing time series data, supporting live data streaming. Since version 0.5.1 , my nxscli tool has included support for data streaming over UDP port, which can be easily captured by PlotJuggler. Let's see how to set up both tools and plot data from the NuttX NxScope library . Read more… (4 min remaining to read)