Overview

A standardized foundation for embedded development

The SDK provides the structure and common features embedded projects need: real-time control systems, low-power applications, and IoT edge devices. It removes months of boilerplate and puts reliability practices in place from day one, on new firmware or filling gaps in an existing codebase.

It is versioned, unit tested, and reviewed like any other deliverable. The same modules run in anything from motor-control firmware to battery-powered BLE sensors.

Modules

What ships in the SDK

Common

System tick and timing, general-purpose timers, filters, unit conversions, and min/max statistics.

Database

Flash-backed parameter storage with dual redundancy, lifetime counters, and a timestamped event log.

Diagnostics

A real-time serial command interface for reading parameters and streaming live data.

Fault handling

Fault counters in non-initialized RAM, hard-fault register logging, and stack usage monitoring.

Drivers

Bootloader, watchdog configuration, GPIO configuration checking, UART, LED, and temperature sensing.

Utilities

CRC, FIFO, FIR and IIR filters, interpolation, and moving averages, sized for constrained parts.

Configuration

JSON-based configuration

Parameters are defined once in JSON and the C is generated from it. The same definitions are then available to test scripts, backend services, and phone apps, so a parameter added in firmware does not need re-declaring in three other places.

Redundant storage means a corrupted parameter page does not take the device with it, which matters on products that lose power without warning.

Diagnostics

The diagnostics interface

The diagnostics interface is the same one our test automation drives, so what an engineer types at the bench is what the automated rig runs unattended.

				
					> m
Last Reset: POR   Hard Faults: 0   Stack Used: 62%
> dp5
5:0
> dw5,1000
5:1000
> 1
				
			

Single characters print analogues, CPU timing, events, statistics, and version information. dp and dw read and write database parameters by index. 1 repeats the last command continuously with a delta timestamp, so live data can be plotted straight off the link.

Workflow

The development process around it

The SDK ships with the development process built in, not as a library you bolt onto whatever you already have.

Git Workflow

Branching, review, and pull requests, so features progress in parallel without destabilizing the main line.

Unit Testing

The SDK is unit tested and gives your project the structure to be. Tests run on every change, in seconds.

Coding Standard

Consistent code that prevents the common pitfalls, with limits a reviewer checks against.

Docker Toolchain

Build tools and dependencies in containers, so a build is reproducible on any machine and still reproducible years later.

Integration

Fitting it to your project

Where the SDK is integrated into an existing codebase, we scope that as its own piece of work, because the integration effort depends on how the current firmware is structured.

Related

Where we put the SDK to work