Skip to content

UnipiTechnology/yocto-meta-unipi

Repository files navigation

Yocto BSP for Unipi Edge PLCs

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.


Supported Hardware

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.


Getting Started

1. Host System Requirements

Ensure the following tools are installed on your build host:

  • git – source code management
  • kas – Yocto build orchestration tool
  • rpiboot – utility for flashing images to Unipi Edge devices

A Linux host system is required. Using a recent LTS distribution is recommended.


2. Clone the Repository

git clone https://git.unipi.technology/yocto/meta-unipi.git

3. Image Creation (Build)

Start 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-os

The 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

4. Image Deployment (Flashing)

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

Unipi Edge Flashing

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


Branching and Versioning Strategy

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.


Supported Yocto Releases

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.

About

Yocto BSP for Unipi controllers

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE.md
MIT
COPYING.MIT

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors