Embedded Firmware

Embedded Firmware Engineering

From bare-metal microcontrollers to multi-core ARM+FPGA SoCs — we develop production ready firmware across any application domain. Prototype, commercial, industrial, or aerospace / safety-critical: our 2500+ module in-house IP library means faster delivery with proven, verified and validated reliability.

2500+

In-house Firmware Modules

20+

Years Experience

50+

CPU / FPGA Architectures

Full-Lifecycle Firmware Development

SIL3 delivers firmware at any level of the stack: from bare-metal HAL drivers and RTOS integration through to application-layer algorithms, inter-processor communication, and PC-side tooling. We work with any microcontroller, DSP, or SoC — whether it is your first prototype or a production build heading for regulatory certification.

Our common-code library spans 2500+ verified software modules covering silicon drivers, motor control, communications, signal processing, safety functions, data acquisition, and more. Every module is designed to slot directly into a new project, cutting integration time and eliminating re-invention of already-proven building blocks.

Regulatory compliance is available at every level — IEC 61508 SIL 1–3, DO-178C, IEC-60790 Class B —We apply exactly as much process as the application demands, using our in-house systems engineering and software quality tooling.

Our Development Process

All SIL3 projects follow a structured V-Model lifecycle. Specialised processes and documentation artefacts are layered on top depending on the target standard — DO-178C, IEC 61508, or IEC 60730 — ensuring full traceability from customer need through to verified, released software.

↓  Specification
Verification  ↑
01 — Requirements
Requirements Capture
Customer requirements, ConOps and use cases are captured and managed using ARPTool — SIL3’s in-house Systems Engineering tool. Stakeholder needs are formalised into traceable High Level Requirements with full audit history.
06 — Release & Acceptance
Controlled Software Release
Verified builds are baselined in SVN with a configuration index, release notes and traceability summary. QA sign-off is recorded against the applicable standard — DO-178C SAS, IEC 61508 software validation report, or IEC 60730 compliance evidence.
02 — Architecture
System & Software Architecture
Customer requirements are decomposed into system requirements and mapped to a software architecture. Module boundaries, RTOS task allocation, IPC protocols, memory maps, safety partitioning and hardware interfaces are all defined and modelled before any code is written.
05 — Integration & System Testing
System-Level Validation
Integrated firmware is exercised on target hardware. Tests cover functional correctness, communication protocol integrity, real-time performance, stress and endurance, fault detection and recovery, and hardware edge cases. HIL rigs with instrumentation provide additional observability.
03 — Implementation
Structured Firmware Development
Firmware is written in structured C against Software Requirements, with full traceability from code to specification. Static analysis, Doxygen documentation, peer review and configuration management are applied throughout. Safety-critical modules follow additional coding constraints appropriate to the target standard.
04 — Unit Testing
Module & Unit Verification
Each firmware module is independently verified against its LLRs. Test techniques include boundary value analysis, equivalence partitioning, branch coverage and MC/DC for safety-critical decision points. IEC 61508 Table A.6 methods — functional testing, performance testing and fault injection — are applied at module level.

IP Library — 2500+ Source Code Modules

Our source code modules are typically documented, tested, and compliant to the relevant standards to which they were designed. New projects inherit the full library on day one. The categories below detail some of the functionality of our modules.

Motor Control
Field-Oriented Control (FOC)
Sensored • Sensorless • Observers • Parameter Estimation
Space Vector PWM (SVPWM)
DC-DC Converter Control
Digital Power • BiDir Current
Gate Driver Interfacing
DRV8350 • DRV8301 • UCC5870 • DRV8323
Encoder / Resolver Decoding
eQEP • Incremental • Absolute
Control Loops
Single / Multi-Axis Motors • Servos • Actuators • Linear Motors
Communications
Ethernet UDP/TCP
FreeRTOS+TCP
Ethernet PHY
DP83848 • DP83867 • DP83869
CAN / CANopen
TM4C • AM263Px • MCP2515
RS-485 / Modbus
SPI / I2C / UART
1-Wire
SSDP / UPnP
SafeUDP Redundancy
Multicore IPC
On Chip • Across Chip • Mailboxes • RPC
Signal Processing
Extended Kalman Filter (EKF)
AHRS / INS
IMU Drivers
ICM-20948 • MPU-6050 • LSM6DSO
GPS / GNSS Parsing
Magnetometer Calibration
FFT & Spectral Analysis
Filtering
Thermistor Linearisation
Safety
Fault Tree Management
Watchdog Management
CRC Data Integrity
NVM Parameter Storage
Hardware Self-Test
Redundant Voting
Safe-State Management
IEC 60730 Class B
ROM CRC • RAM March • Clock • ADC
MPU Configuration
SDL (Safety Diagnostics Libraries)
RTOS & Scheduling
FreeRTOS
FreeRTOS+TCP
WCET Analysis
Heap Monitoring
NoRTOS Scheduler
Power Management
Event Logging
Data Acquisition
ADC Multi-Channel DMA
DAQ Ethernet Streaming
FRAM / EEPROM / Flash
SD Card / FAT32
Ring Buffer
Parameter Store
Data Logging
Thermocouple / RTD
Imaging
MIPI CSI-2 Cameras
D-PHY • RAW10 • RAW12
Vision Processing Pipelines
OpenCV
MIPI Displays
ST7703 • TC358778
LVDS / Parallel Displays
Touch Screens
FT5x16 • GT911
Framebuffer / VDMA
FPGA / SoC (140+ Custom IP Cores and Drivers)
ADS1262
MAX11665
PWM / FOC
IEEE1588 RTC
TensorFlow
CAN
UART
QSPI
Mailboxes
SFP
NVMe
PCIe
FFT
Bootloader & Update
Boot Image Manager (BIM)
In-Application Programming
Ethernet Firmware Update
CAN Bootloader
Industrial
EtherCAT
Modbus TCP
4–20mA / 0–10V I/O
Motion Sequencing
Safety Relay / STO
Aerospace & Avionics
DO-178C Lifecycle
Simulation Models
6DoF
ARINC
ARINC 429 • ARINC 664
AHRS / INS for UAV
UAV / Drone
Flight Control • Motor Control • Telemetry
Peripherals
USB CDC / HID
Ethernet Packet Switches
RTC Drivers
DS3231 • PCF8563
Temperature Sensors
LM75 • TMP117 • MAX31856
Pressure Sensors
MS5837 • BMP280 • MPX4250
Power Monitor ICs
INA226 • INA3221
GPIO Expanders
MCP23017 • PCA9535 • PCA9554/5
OLED / LCD Drivers
SSD1306 • ST7789 • ILI9341

Supported Silicon Platforms

SIL3 have created board support packages, tooling and verification projects for the following silicon platforms.

Arm Cortex-M — Microcontrollers
MSPM0
Cortex-M0+ • 32MHz • NoRTOS / FreeRTOS
CC1310
Cortex-M3 • Sub-GHz wireless • SimpleLink
CC1312
Cortex-M4F • Sub-GHz • SimpleLink
CC1350
Cortex-M3 • Sub-GHz + BLE • SimpleLink
CC1352
Cortex-M4F • Multi-band wireless • SimpleLink
CC2650
Cortex-M3 • BLE / Zigbee / 6LoWPAN
CC3120
Cortex-M3 • Wi-Fi network processor
CC3220
Cortex-M4 • Wi-Fi SoC • 256KB RAM
CC3235
Cortex-M4 • Dual-band Wi-Fi • SimpleLink
TM4C123
Cortex-M4F • 80MHz • FreeRTOS
TM4C1294
Cortex-M4F • 120MHz • Ethernet • FreeRTOS
MSP430
16-bit RISC • Ultra-low-power
MSP432
Cortex-M4F • 48MHz • Ultra-low-power
Arm Cortex-R — Safety MCUs
RM46L852
Cortex-R4F • Lockstep • IEC 61508
RM48L952
Cortex-R4F • Lockstep • IEC 61508
RM57L843
Cortex-R5F • Lockstep • IEC 61508
AM263Px
Cortex-R5F • 400MHz • CAN FD • CPSW
AM2434
Cortex-R5F • EtherCAT • Industrial
Arm Cortex-A — Application Processors
AM3358
Cortex-A8 • Linux • PRU • CAN
AM67A
Cortex-A53 • DSP • MMA • Linux
TDA4VL
Cortex-A72 + R5F • ADAS • Ethernet AVB
TI C2000 — Real-Time DSP
TMS320F28002
C28x • 100MHz • ePWM • Entry-level
TMS320F28021
C28x • 60MHz • Motor control
TMS320F28027
C28x • ePWM • Motor control
TMS320F28035
C28x • 60MHz • CAN • ADC
TMS320F28069
C28x • InstaSPIN • FOC
TMS320C5505
C55x DSP • Low-power • Audio processing
TMS320F28384
C28x + CLA • Dual-core • High-voltage drive
TMS320F28388
C28x + CLA • Dual-core • Ethernet • FPU64
Xilinx / AMD — FPGA SoC
XC7Z012S
Zynq-7012S • Cortex-A9 + PL • Low power
XC7Z030
Zynq-7030 • Cortex-A9 + PL • Gigabit Ethernet
XCZU2CG
UltraScale+ CG • Cortex-A53 + R5F + PL
XCZU3EG
UltraScale+ EG • Cortex-A53 + R5F + PL • GPU
Microchip Technology
PIC18
8-bit • 64MHz • CAN • USB
dsPIC
16-bit DSP • Motor control • FOC
PIC32
MIPS32 • 80MHz • USB • Ethernet
ST Microelectronics — STM32
STM32F4
Cortex-M4F • 168MHz • USB OTG • Ethernet
STM32F7
Cortex-M7 • 216MHz • DSP • FPU • SDRAM
STM32H7
Cortex-M7 • 480MHz • Dual-core • TrustZone
STM32G4
Cortex-M4F • Motor control • HRTIM • Math accelerator
Specialised & Wireless
IWR6843
mmWave radar • 60–64GHz • DSP + Cortex-M4F
RISC-V
Open ISA • GD32VF103 • ESP32-C3 • NEORV32
ESP32
Xtensa LX6 • Dual-core • Wi-Fi + BT • 240MHz
nRF52832
Cortex-M4F • BLE 5.0 • Nordic • 64MHz

Standards & Compliance

SIL3 has developed extensive in-house tooling and Quality Assurance Process Documentation to deliver projects to the following standards.

DO-178C / DO-254
Airborne software and hardware qualification. Full lifecycle documentation, reviews, traceability, independence, and configuration management using ARPTool.
IEC 61508 SIL 1–3
Functional safety for E/E/PE systems. Hardware fault tolerance, software safety integrity, proof testing, and FMEDA analysis. Applicable to industrial, energy, and machinery sectors.
IEC 60730 Class B
Automatic electronic controls for household appliances. Software self-test library: ROM CRC, RAM march, clock frequency, ADC plausibility, watchdog, and stack integrity checks.

Ready to Start Your Firmware Project?

Tell us about your platform and requirements. We can scope a fixed-price engagement or ongoing embedded engineering support.