This repository provides the Board Support Package (BSP) for *Unipi IoT gateways and industrial PLCs, based on the Yocto Project.
The BSP is designed for reproducible, maintainable builds of embedded Linux images used for Unipi devices.
The build environment is orchestrated using KAS, which provides a declarative and reproducible way to manage Yocto layers, configurations, and dependencies across different host systems and CI environments.
This BSP is customer-facing and currently supports Unipi Edge devices only.
The following Unipi models are supported or under active development:
- Unipi Edge E410 - E415
- Unipi Neuron S103
⚠️ Other Unipi product families are not supported by this BSP at this time and require separate BSPs or platform-specific integrations.
Ensure the following tools are installed on your build host:
git– source code managementkas– Yocto build orchestration toolrpiboot– utility for flashing images to Unipi Edge devices
A Linux host system is required. Using a recent LTS distribution is recommended.
git clone https://git.unipi.technology/yocto/meta-unipi.gitStart the image build using KAS. If no image name is specified, base-os is used by default.
The kas-edge.yaml currently contains Mender layer and disables GPL-3 dependencies.
Variables in kas-edge.yml to configure:
- RPI_USE_U_BOOT = 1 # Required to enable if using Mender
- RPI_USE_RPIBOOT = 1 # Build boot.img container in boot partition
- RPI_USE_SECUREBOOT = 1 # Build boot.img and sign it to support RPi Secure boot
kas build kas-edge.yml <image>Example:
kas build kas-edge.yml base-osThe build output will be generated in the build/tpm/deploy/ directory. There are these images among others:
- .sdimg - Full image with partition table and all partitions. It can be written to raw MMC
- .mender - Root fs in Mender format usable for mender-update
- .ext4 - Content of root fs partition
Image deployment procedures are currently supported for Unipi Edge devices only.
After a successful build, locate the generated .sdimg (or .wic) image:
build/tmp/deploy/images/<machine>/*.sdimg
Flashing Unipi Edge devices is performed using rpiboot and the initialization mode. The below example expects Linux host system.
cd <directory_where_rpiboot_is>/mass-storage-gadget64
sudo rpiboot -d .Connect the USB-C cable to the INIT port on the Unipi Edge and to your host system, press and hold the SERVICE (SVC) button and then connect 24 V DC power supply. Wait until rpiboot uploads firmware and on your host systems appears usb storage. If some filesystems from usb storage were automounted, unmount them. Upload Wic image to MMC
sudo dd if=build/tmp/deploy/<machine>/<image>.sdimg of=</dev/sdX> bs=1M📘 Further informations are available in the Unipi Knowledge Base:
https://kb.unipi.technology/en:hw:004-edge:04-image
The branching model of this repository follows Yocto Project release naming.
Each branch corresponds to a specific Yocto release and contains the BSP state validated for that release.
| Yocto Release | Branch Name | Product Family | Support Status | Notes |
|---|---|---|---|---|
| Scarthgap | scarthgap |
Edge | Supported |
Future Yocto releases will be supported according to Unipi product lifecycle and validation policies.