Embedded Explorer is your go-to resource for exploring the world of embedded systems, microcontrollers, IoT, circuit design, and real-time operating systems. Our blog delivers practical tutorials, insightful guides, and the latest trends to empower enthusiasts, hobbyists, and professionals alike. Whether you're programming an ESP32, designing efficient circuits, or building connected devices, we provide clear, actionable content to fuel your passion for creating smarter, innovative solutions. Join our community to stay updated and inspired in the ever-evolving field of embedded technology.
Over-the-air (OTA) firmware updates are essential for maintaining and improving IoT devices in the field. In this guide, we’ll build a simple Django-based OTA server to host and deliver firmware updates to Wi-Fi-enabled devices, like those powered by Nordic Semiconductor’s nRF7002. Learn how to create firmware version APIs, serve binary files, and manage updates from a web interface.
Read MoreIn this guide, we’ll walk you through the process of setting up a project to handle button inputs on the nRF7002 DK. Using the nRF Connect SDK and VS Code, you’ll learn how to configure GPIO, write interrupt-driven button input code, and flash your board. Whether you're just starting with Nordic Semiconductor’s development kits or looking to enhance your embedded projects, this tutorial covers all the essential steps, from environment setup to writing functional code and testing it in action.
Read MoreIn this tutorial, we’ll walk you through everything you need to get started with the nRF7002 Development Kit—from setting up your development environment to writing and flashing your first embedded application. We'll use the classic “blinky” example to demonstrate how to blink an LED using Zephyr RTOS and the nRF Connect SDK. By the end of this guide, you’ll have a solid foundation for working with Nordic Semiconductor’s powerful dual-core nRF5340 SoC, which powers the nRF7002 DK.
Read MoreIn embedded systems, UART (Universal Asynchronous Receiver-Transmitter) is commonly used for serial communication. In this tutorial, you’ll learn how to create a C++ class for Arduino that enables easy sending and receiving of data through UART. We’ll walk you through the steps of designing a class that encapsulates UART functionality, allowing you to send messages, receive data, and handle communication errors effectively. With practical code examples and explanations, you’ll be able to integrate UART communication into your Arduino projects with ease.
Read MoreKeypads are widely used in embedded systems for user input, and controlling them efficiently can enhance your Arduino projects. In this article of the "Learning C++ with Arduino" series, we’ll guide you through creating a C++ class for Arduino to interface with and control a keypad. You’ll learn how to manage rows and columns of the keypad matrix, read key presses, and implement a simple, reusable class to handle keypad input in your projects. By the end of this tutorial, you’ll be equipped with the knowledge to seamlessly integrate keypad functionality into your Arduino applications using object-oriented programming principles.
Read MoreEclipse is a powerful, open-source Integrated Development Environment (IDE) that can be used for Arduino development, especially when integrating FreeRTOS for multitasking. In this tutorial, we’ll guide you through the process of setting up Eclipse to develop Arduino programs using FreeRTOS. You’ll learn how to install necessary plugins, configure the Arduino toolchain, and set up the FreeRTOS kernel for multitasking. By the end of this guide, you’ll have a robust development environment that enables you to write, compile, and debug FreeRTOS-based Arduino applications in Eclipse.
Read MoreFreeRTOS software timers are a valuable tool for creating time-based events and managing delays without blocking your tasks. In this guide, you’ll learn how to use FreeRTOS software timers with Arduino to execute functions after a specified time or at regular intervals. We’ll walk you through the software timer APIs and demonstrate how to implement them in a practical project, allowing you to handle timed events like periodic sensor readings or LED blinking without interrupting other tasks. By the end of this tutorial, you’ll understand how to integrate software timers into your FreeRTOS-based Arduino applications for more efficient time management.
Read MoreIn embedded systems, managing interrupts and deferring processing to tasks is critical for smooth operation. FreeRTOS binary semaphores offer a simple yet powerful way to synchronize tasks and defer processing from interrupts. In this tutorial, you’ll learn how to use FreeRTOS binary semaphores with Arduino to handle interrupt-driven events and safely pass control to tasks for further processing. We’ll guide you through the Binary Semaphore APIs and show you how to implement them in a practical project, ensuring that interrupt-driven actions are handled efficiently and safely within the FreeRTOS environment.
Read MoreVisual Studio Code (VSCode) is a versatile and powerful code editor that’s become a favorite among developers. In this guide, you’ll learn how to set up VSCode as your primary development environment for Arduino projects. We’ll walk you through the steps to install necessary extensions, configure the editor for Arduino development, and explain how to leverage VSCode’s features such as IntelliSense, debugging tools, and integrated terminal for a smoother development experience. By the end of this tutorial, you’ll be equipped to boost your productivity and write better, more efficient Arduino code using the full power of Visual Studio Code.
Read MoreEvent Groups in FreeRTOS are a powerful tool for synchronizing tasks and managing multiple event flags efficiently. In this guide, you’ll learn how to use FreeRTOS Event Groups with Arduino to handle complex task synchronization scenarios. We’ll cover the Event Group APIs and demonstrate how to set, clear, and wait for multiple event bits in a practical project. By the end of this tutorial, you’ll understand how to use Event Groups to coordinate tasks in your Arduino applications, making your code more responsive and modular.
Read More