B Duncan Ltd
Software Development Kit
A production-proven framework for embedded systems.
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
Motor Control
The tested foundation behind our field-oriented control and VFD firmware, where the SDK’s diagnostics, timers, and parameter storage do the heavy lifting so development stays focused on the drive.
Embedded Firmware
New or existing firmware built on a production-proven framework, so your budget goes on the product rather than boilerplate.
Automation Testing System
The SDK’s diagnostics interface is exactly what the automation test system drives, so bench and rig run the same commands.
Want the SDK on your next project?
Tell us what you’re building and we’ll show you what it gives you on day one.