Skip to main content

Luos and ESP32

· 4 min read
Thomas Salembier

Luos and ESP32

With the Luos development team, we are constantly working on integrating our solution with the tools you use.

Great News! Luos engine is now plug-and-play-compatible with the ESP32 family!

What is ESP32?

The ESP32 is a low-cost, low-power microcontroller with built-in Wi-Fi and Bluetooth/BLE support.

It is a successor to the ESP8266, a breakout hit on Kickstarter. The ESP32 added Wi-Fi and Bluetooth/BLE support to the already impressive list of features of the ESP8266.

ESP32 is created by Espressif Systems, a Shanghai-based company with an excellent reputation for producing low-cost, low-power microcontrollers.

It is often dedicated to the Internet of Things (IoT) and embedded applications because of its low price.

The small ESP32 package has a high level of integrations, such as:

  • RF Balun
  • In-built antenna switches
  • Power amplifier
  • Low-noise amplifier
  • Filters
  • Power management modules
  • With a Printed Circuit Board (PCB), ESP32 provides an accessible and versatile application for your projects.

Since the Luos release 2.6.0, a new example called Gate_serialcom is available and allows you to perform the Get started with ESP32 evaluation board.

The Luos team developed a HAL based on ESP-IDF SDK provided by Espressif to create a Robus network and natively exchange messages and information through the Luos protocol.

This new covering of MCU family makes Luos compatible with the IoT world product development. It offers the possibility to make new tools for Luos, like a gate, to communicate with an embedded product on a computer through Wi-Fi or Bluetooth.

ESP32 HAL gives access to a broad community of developers who can benefit from the plug-and-play protocol networking and the Luos microservices approach of product development to capitalize on many codes already done and tested worldwide.

Luos's topology detection feature can be very relevant for IoT products and very useful for developers who can easily hot-plug boards and add features to an existing system. With the Luos protocol and networking, you can connect MCUs from different brands in a snap!

ESP32 is famous worldwide in the maker culture, allowing to create wirelessly connected projects easily through Arduino SDK. Luos engine is also compatible with Arduino SDK.

It closes the loop by connecting the project between boards and makes it easy to share and reuse the same functionalities in many innovative projects from prototyping to production phase.

Communication principle between Luos engine, Arduino and ESP32Communication principle between Luos engine, Arduino and ESP32

Compatibility

Luos HAL is compatible with many MCU developed by Espressif:

  • ESP32-S2 and ESP32-S3
  • ESP32-C3
  • ESP32

Luos HAL is now compatible with many Espressif MCUs

ESP32 Concept

- myProject/
- CMakeLists.txt
- sdkconfig
- components/ - component1/ - CMakeLists.txt
- Kconfig
- src1.c
- component2/ - CMakeLists.txt
- Kconfig
- src1.c
- include/ - component2.h
- main/ - CMakeLists.txt
- src1.c
- src2.c

- build/

Vocabulary:

  1. Project: a directory that contains all the files and configuration to build a single "app" (executable), as well as additional supporting elements such as a partition table, data/filesystem partitions, and a bootloader.
  2. Project configuration: it is held in a single file called sdkconfig in the project's root directory.
  3. App: an executable that ESP-IDF builds. A single project will usually build two apps, a "project app" and a "bootloader app".
  4. Components: modular pieces of standalone code that are compiled into static libraries (.a files) and linked into an app.
  5. Target: is the hardware for which an application is built.

ESP32 Concept explanation

Luos Concept

 Project

├─── product_config.h
└─── Nodes
├─── Node_1
│ ├─── node_config.h
│ ├─── main.c
│ └─── Packages
│ ├─── Package_1
│ │ ├─── package_1.c
│ │ └─── package_1.h
│ └─── Package_2
│ ├─── package_2.c
│ └─── package_2.h
├─── Node_2
│ ├─── node_config.h
│ ├─── main.c
│ └─── Packages
│ └─── Package_3
│ ├─── package_3.c
│ └─── package_3.h

└─── Node_3
├─── node_config.h
├─── main.c
└─── Packages
├─── Package_4
│ ├─── package_4.c
│ └─── package_4.h
├─── Package_5
│ ├─── package_5.c
│ └─── package_5.h
└─── Package_6
├─── package_6.c
└─── package_6.h

Vocabulary:

  1. Product: A node or a set of nodes that communicate with each other. This is where you will have the configurations and information intended for all your boards.
  2. Product config: This is a configuration file for your entire Product (product_config.h).
  3. Node: Also the MCU on the hardware side, the node is the target present in the product in which the user's code is built and run.
  4. Node config: The configuration file for your node. Define here the specific needs for the node, like pinout or hardware peripheric in HAL (node_config.h).
  5. Package: A shareable folder containing code files managing one or more services.
  6. Service: Luos services can be drivers or apps. Each service can follow Luos profiles to be standard, but it can also be custom.
Luos Concept explainationLuos Concept explaination

Conclusion

As we can see, Luos and Espressif have many concepts in common!

ESP32 target is a HAL compatibility for Luos. A project and its configuration can be linked to a product composed of nodes with the Espressif structure.

Finally, the component will become a package in Luos. It is interesting to note that the component is an independent library that can be compiled and reused in another project.

Luos's methodology advocates the same concept and will provide a registry to simplify package sharing, installation, and implementation in your product.

Luos fits well with these MCUs. Even if Espressif focuses on hardware, Luos's approach is more of a methodology and software overlay. You can combine both strong points of these technologies:

  1. Espressif: Easy-to-use SDK, mainstream hardware peripherals like Wi-Fi and Bluetooth with great API to develop IoT products.

  2. Luos: Microservice methodology development, plug-and-play network, and protocol allowing sharing/reusing packages to facilitate team working on an embedded development product.

It is a simple and powerful way to control and manage your embedded systems by combining a gate application of Luos and the Wi-Fi or Bluetooth device of the ESP32.

A Gate and a pipe on the same nodeA Gate and a pipe on the same node

Get Started with Luos