0%

Learning ESP-DL Series 2025 - 00: First Impression

Introduction

This is the first post in a series of blogs that will explore the ESP-DL library in detail.

At the time of writing, there is very little information or tutorials available for ESP-DL, especially practical guides on how to use it effectively. The official documentation from Espressif only explains what the library is, but does not clarify why you might need it, how to use it correctly, or provide helpful tips.

In this post, I will focus on running an example code from the ESP-DL library to get started.

Note:
This tutorial was written on 16-Aug-2025. If you are reading this in 2027 or later, some information may be outdated.

How This Blog May Help You

  • If you want to dive into the ESP-DL library, you may find useful details and practical steps here.
  • When working with a new library, it’s always best to start by building and flashing the simplest example to test your hardware and development environment.

Core Values

  • Software is like food—it has an expiration date, typically around 2 years. When learning a new library, you must dive in and understand how it works. Otherwise, you may find that everything has changed in a couple of years, with new libraries and completely different APIs.
  • Focus on identifying the most stable concepts or principles from the library, as these are more likely to remain relevant.

Prerequisites

Development Environment

  • MCU: General ESP32-S3 dev kit (Waveshare ESP32-S3-DEV-Kit-N8R8)
  • IDE: VS Code with ESP-IDF extension
  • IDF version: v5.4.2
  • ESP-DL version: v3.1.5

Running the Example Code: Step by Step

The first step is to run a simple example to ensure your hardware and development environment are working correctly.

  1. Install the example code via the Components Manager in the VS Code extension.

    step1-components-manager

  2. Find the esp-dl library and select the how_to_run_model example.

    step2-how-to-run-model

  3. Click “Create project from this example”.

    step3-create-proj-from-example

  4. The extension will automatically download the code and open it in a new window for this example.

  5. Set the target device.
    The extension will generate the appropriate build command.

    step4-set-target

  6. Click “Build” and then “Flash” to upload the firmware.

    build-success

    Runs-success

For me, the example code ran perfectly on my device. This confirms that both the library and my development environment are set up correctly.

This initial verification is very important. If anything goes wrong in the future, I can always re-flash this working firmware to check if the issue is hardware-related or due to configuration (e.g., sdkconfig). This approach can save a lot of debugging time.


Stay tuned for the next post in this series, where I will dive deeper into ESP-DL features and real-world applications.