Deploying real-time IoT applications requires seamless integration between connected devices and edge computing infrastructure. IoT devices generate massive volumes of data—such as sensor readings, telemetry, and operational metrics—that must be processed efficiently to ensure reliability and performance. Edge devices act as intermediaries, enabling localized data processing, secure device management, and seamless cloud integration. This setup reduces latency, enhances system resilience, and supports applications in industrial automation, smart infrastructure, and connected devices.
NXP’s latest edge computing solutions, combined with decentralized IoT frameworks like Clea, provide an optimized infrastructure for device management and real-time telemetry. Clea’s distributed architecture enables secure remote monitoring, over-the-air updates, and scalable device orchestration, ensuring smooth operation across industrial and embedded systems. By leveraging efficient edge-to-cloud communication and real-time analytics, enterprises can improve operational efficiency, enhance security, and enable the next generation of IoT services.
The project follows three key steps:
This step-by-step approach minimizes development time and maximizes business impact, allowing organizations to quickly deploy scalable, AI-powered IoT solutions with robust remote management capabilities.
Hardware Requirements
Software Requirements
To get the Yocto Project expected behavior in a Linux Host Machine, the packages and utilities described below must be installed. An important consideration is the hard disk space required in the host machine. For example, when building on a machine running Ubuntu, the minimum hard disk space required is about 50 GB. It is recommended that at least 120 GB is provided, which is enough to compile all backends together. For building machine learning components, at least 250 GB is recommended.
The recommended minimum Ubuntu version is 20.04 or later.
We suggest using a docker image. Use the docker setup scripts in imx-docker. Follow the instructions in the readme for setting up a host build machine using docker.
Below the list of options to run a Docker container based on an image from SECO Docker Hub account (https://hub.docker.com/r/secodocker/clea-os-builder
export docker_user="yoctouser" ;
export docker_workdir="workdir" ;
docker run --rm -it \
-v "${PWD}":/home/"${docker_user}"/"${docker_workdir}" \
--workdir=/home/"${docker_user}"/"${docker_workdir}" \
secodocker/clea-os-builder:latest --username="${docker_user}"
Run this command inside the working directory.
Note: This docker image already has the repo tool installed.
This section guides you through the complete setup of your NXP iMX8M Plus, iMX93, and iMX95 devices, including flashing the OS, registering the device in Clea, and configuring the system for cloud connectivity.
Clea OS is built upon NXP’s Yocto-based Linux distribution but includes additional layers to enable enhanced functionality and cloud connectivity. Instead of compiling the OS from the base NXP configuration, users should reference Clea OS-specific manifest, which ensures compatibility while extending the standard NXP process.
To prepare the build, refer to the official guide available here: https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf
When you get to chapter 4 of the guide, you need to use the custom XML manifest:
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0_clea-os.xml
In Chapter 5, the Clea OS Image Build process is started using:
DISTRO=clea-os-things-wayland MACHINE=<machine name> ./imx-setup-clea-os.sh -b <build dir>
For the i.MX 93 development kit, the build process requires the following command:
DISTRO=clea-os-things-wayland MACHINE=imx93-19x19-lpddr5-evk source ./imx-setup-clea-os.sh -b build_imx93_evk_clea-os
For the i.MX8M Plus development kit, the build process requires the following command:
DISTRO=clea-os-things-wayland MACHINE= imx8mp-lpddr4-evk source ./imx-setup-clea-os.sh -b build_imx8mp_evk_clea-os
For the i.MX 95 development kit, the build process requires the following command:
DISTRO=clea-os-things-wayland MACHINE= imx95-19x19-lpddr5-evk source ./imx-setup-clea-os.sh -b build_imx95_evk_clea-os
Once the environment is prepared, the OS image is compiled using:
bitbake seco-image-clea-os
This process will take several hours to complete. When finished, the resulting wic.bz2 and wic.bmap files are used to flash Clea OS onto a MicroSD card.
Once Clea OS is installed, the device must be registered in Clea to enable cloud communication. This registration process allows the device to be managed remotely and stream telemetry data to Clea Cloud.
To register the device, you first need to request a Clea account by filling out the registration form. Once the account request is submitted, you will receive the credentials and access links to the platform via email.
Log in to the Clea administration panel using the credentials provided via email, select the available tenant, and access its dedicated dashboard. The dashboard provides general information about the tenant, references to the Data Orchestration and Device Management components, and links to documentation resources.
On this page, save the Astarte API URL and the Pairing URL. To obtain the Pairing URL, append /pairing to the Astarte API URL.
Navigate into Astarte Section and select the Devices section. Now click Register a New Device. The system will generate a:
These values must be copied and stored, as they will be required during device configuration.
Now, return to the device and open the shell to modify the Astarte Message Hub configuration file.
/etc/message-hub/config.toml
with the following values:
##
# Required fields #
realm = "<REALM>"
pairing_url = "<PAIRING_URL>"
# Used to register a device and obtain a `credentials_secret`
pairing_token = "[PAIRING_TOKEN]"
# Credential secret, if not provided the `pairing_token` is required
credentials_secret = "[CREDENTIALS_SECRET]"
# Device id, if not provided it will be retrieved from `io.edgehog.Device` dbus-service
device_id = "[DEVICE_ID]"
Additionally, the Edgehog runtime service file must be updated to ensure proper remote device management:
/lib/systemd/system/edgehog-device-runtime.service
Modify the following environment variables:
[Service]
Environment='EDGEHOG_SYSTEM_SERIAL_NUMBER=MCIMX93-EVK'
Environment='EDGEHOG_SYSTEM_PART_NUMBER=MCIMX93-EVK'
Save the file and restart the services.
After restarting, the device should authenticate with Clea Cloud and appear as online in Clea.
After registration, verifying that the device is successfully transmitting telemetry and AI detection data is necessary.
To confirm data transmission, log into the Clea Admin Panel, navigate to the Edgehog section, and select Fleet to find the registered device. Selecting the device will provide access to system monitoring tabs, including:
To verify real-time data, navigate to Clea Astarte, click on Devices, select the device you registered, and scroll down until Device Live Events. Telemetry values such as CPU_Usage, CPU_Temperature, and Detection_Events should be updated approximately every 5 seconds.
In this section, you will see the data sent by the device.
Once data transmission is verified, the next step is to enable the web-based control application that visualizes detection results in the Clea Portal.
To access Clea Portal, you first need to create an Organization, which allows you to add users who can access the platform.
Before doing so, you must create a Capability Set to define the permissions for each Organization. To create one, click Create Capability Set in the Organization section. Enter a name and select the capabilities you want to enable.
Then, click Create Capability Set to finalize its creation. Now, your first Capability Set is ready. Next, you need to create an Organization. Click on Create Organization.
Enter the organization’s name, and optionally specify an email domain. This will restrict registrations to emails belonging to that domain.
Choose whether the organization should be Single User or Multi User:
Finally, enter the email address where you want to send the account invitation and select the preferred language for the invitation email.
Now, click on Create Organization. The invitation email will arrive within a few minutes.
Once the organization is created, assign the Capability Set in the designated field.
When you receive the email, click on Accept Invitation, and Clea Portal will open. Here, you will need to provide the following details:
After entering these details, click Accept Invite to complete the process.
Once you accept the invitation, you will be logged into Clea Portal, the User Panel used by end users to view data sent by their devices. This panel will display only the devices belonging to their organization.
The first screen you will see is the Appliance List, which will initially be empty as no appliances have been registered yet.
Now, let’s register the device you previously set up. Click on Register Appliance. Here, you will need to enter the following details:
After filling in the required fields, click Register Appliance. The appliance will then be connected and Online.
Here, a real-time dashboard will display:
Since CPU Usage Monitoring & Temperature is enabled by default, no additional setup is required for these metrics.