Building Modular IoT Systems: Advantages of Stackable Designs

Modular IoT system construction offers high flexibility and scalability as the developers can quickly build prototype systems using existing modules to save time in design and development. It assists developers in swiftly developing and validating their concepts and works directly from idea to product, allowing developers to create various types of devices and solutions more quickly and economically.

M5Stack’s products have a stackable design, providing standardized interfaces for easy construction of the system, when combined with the intuitive visual programming interface of UIFlow, it significantly reduces the technical barriers of system design and development. Even developers with limited hardware and software knowledge can quickly build powerful IoT devices.

Setting up the UIFlow Environment

Taking the MStack Basic as an example, the first step is to refer to the UIFlow firmware burning tutorial and download M5Burner to burn the UIFlow firmware to the controller.

Building an IoT System

If we need to detect air quality. We can stack the PM2.5 Air Quality Module  to the MStack Basic.

Then, in UIFlow, click on "PM2.5" and select "Load Examples" to open the sample code.

Click "Run," and we will see the air quality displayed on the screen.

When we want to drive a stepper motor to actuate certain mechanisms when the PM2.5 concentration is high. We can stack the GRBL  Module.


Next, find the code blocks corresponding to the GRBL module in UIFlow.

Set the motor drive mode at the beginning of the code, here we set it to distance mode.

In the main loop of the program, add a condition based on the PM2.5 concentration, using the value stored in SP for simplicity. When the concentration exceeds 55 (μg/m³), the stepper motor starts rotating. When it falls below 55, the stepper motor stops rotating.

Click "Run," and the system will operate as we set.


In summary, the stackable modular design provides a flexible, efficient, and scalable approach to IoT system development. When combined with the visual and user-friendly programming environment of UIFlow, it makes system construction easier, reduces development costs and risks, and facilitates rapid prototyping and feature expansion.


  • There are no comments yet. Be the first one to post a comment on this article!

Leave a comment

Please note, comments must be approved before they are published

Liquid error (layout/theme line 209): Could not find asset snippets/pe-disco-countdown-timer.liquid