nanopb: Bringing Protocol Buffers to Your Embedded Microcontrollers

nanopb: Bringing Protocol Buffers to Your Embedded Microcontrollers

Why nanopb is an Embedded MarvelRecently, while working on STM32/ESP32 microcontroller projects, I found that using the traditional Protocol Buffers library can almost deplete flash memory and RAM. Yet, there is a desire to use .proto to define messages, which is efficient and cross-language. nanopb is like a savior, with a code size of just … Read more

Getting Started with ESP32 and Arduino (Part 3): Connecting to WiFi and Retrieving Current Time

Getting Started with ESP32 and Arduino (Part 3): Connecting to WiFi and Retrieving Current Time

The ESP32 has a built-in WiFi module, making it very simple and convenient to connect to WiFi. The code is as follows: #include <WiFi.h> const char* ssid = "WIFI_NAME"; const char* password = "WIFI_PASSWORD"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { // statement delay(500); Serial.println("Connecting to WiFi…"); } Serial.println("Connected to the … Read more

ESP32 IMAP Protocol for Retrieving Commands or System Upgrade Data from a Specified Email

ESP32 IMAP Protocol for Retrieving Commands or System Upgrade Data from a Specified Email

In this article, we will implement the functionality of the ESP32 based on the IMAP protocol to retrieve operational commands or system upgrade data from a specified email. This functionality is mainly used to send non-real-time commands to the ESP32 without a server, or to send program upgrade packages and other non-time-sensitive data to the … Read more

The Hardcore Romance of Open Source AI Hardware

The Hardcore Romance of Open Source AI Hardware

Do you remember the “Xiao Zhi AI” we talked about before? The reading data from that article was quite good, indicating that everyone is indeed curious about these increasingly “smart” gadgets around us. Products like Xiao Zhi AI are carefully crafted by Shifang Ronghai Company using powerful computing power, massive data, and their self-developed Emotional … Read more

Xiao Zhi AI Communication Protocol Fix: Registering Devices via OTA Interface

Xiao Zhi AI Communication Protocol Fix: Registering Devices via OTA Interface

Last week, I organized the WebSocket communication protocol of Xiao Zhi AI, titled “Reproducing Xiao Zhi AI Step 2: Learning Its WebSocket Protocol with Two Core Flowcharts“, and later during debugging, I discovered a missing point, which was the omission of the device registration step. Initially, I found the <span>"OTA_VERSION_URL": "https://api.tenclass.net/xiaozhi/ota/"</span> field in the configuration … Read more

Getting Started with ESP32: Custom Wake Words with XiaoZhi AI

Getting Started with ESP32: Custom Wake Words with XiaoZhi AI

Previously, we explored controlling an LED display, local server deployment, voice broadcasting, and song playback, as well as controlling WS2812 LED strips. Today, I will share how to customize wake words freely. 1. First, let’s take a look at the final implementation: 2. ASR PRO Voice Recognition Module3. USB To TTL4. Next, the cheapest microphone5. … Read more

Exploring the ESP32 Solution with Just One Block!

Exploring the ESP32 Solution with Just One Block!

Everyone is likely familiar with the Espressif ESP32 product, which, due to its high integration and rich features, has become an ideal choice for IoT project development. Some manufacturers have developed a series of modular, plug-and-play, low-code development platforms based on their products, making it easy to create high-quality product prototypes. Today, we will be … Read more

Getting Started with ESP32 and Arduino (Part 4): Random Display of Classical Poetry on OLED Screen

Getting Started with ESP32 and Arduino (Part 4): Random Display of Classical Poetry on OLED Screen

Introduction I believe that working on some simple and fun projects is a great way to get started. During the practical process, you will encounter many requirements and issues, and solving these requirements and problems is part of the learning process. Today, I will share a project that randomly displays classical poetry. If you are … Read more

Open Source | Hezhao ESP32 Development Board + WS2812 + Touch Screen, DIY Creative “Pixel Box”, and Let ChatGPT Write Code!

Open Source | Hezhao ESP32 Development Board + WS2812 + Touch Screen, DIY Creative "Pixel Box", and Let ChatGPT Write Code!

Affordable, easy to use, and aesthetically pleasing! The Hezhao ESP32C3 series MCU development board has been on the market for over a year, not only becoming a treasure development board that engineers can have multiple copies of, but also a production tool for many industry clients to reduce costs and increase efficiency. Engineers’ creative ideas … Read more

Displaying GIF Images on ESP32 Handheld Device Using LVGL

Displaying GIF Images on ESP32 Handheld Device Using LVGL

In the previous article titled “Displaying JPG Images on ESP32 Handheld Device and Simulating Animation Effects,” we shared how to display <span>JPG</span> images on the ESP32 handheld device and simulate animation effects. This note introduces the method of directly displaying <span>GIF</span> images on the ESP32 handheld device using LVGL. 1. Development Board Introduction This handheld … Read more