Firmware development · Service 02
Firmware development and embedded Linux in Switzerland
Fermium writes real-time embedded software in C and C++: bare-metal drivers, FreeRTOS applications and embedded Linux systems built with Yocto and Buildroot, with timing and reliability as the first requirement.
What we do
Firmware from the first driver to the update in the field
Bare metal, RTOS or Linux: the partitioning is decided in the architecture phase, and every layer is developed and tested on the real hardware.
Microcontroller firmware
Bare-metal and RTOS firmware for STM32, TI, NXP and Microchip microcontrollers: peripheral drivers, interrupt handling, low-power modes and the application on top.
FreeRTOS and embedded Linux
Task design and timing on FreeRTOS; board support packages, device trees, kernel drivers and root file systems with Yocto and Buildroot on ARM SoC platforms.
Fieldbus and industrial protocols
EtherCAT, PROFINET, Ethernet/IP, CANopen, Modbus RTU and TCP, CAN and CAN-FD stacks integrated into the firmware and verified with protocol analysers.
Bootloaders, secure boot and OTA updates
Custom bootloaders, signed firmware images, secure boot chains and over-the-air update mechanisms for devices in the field.
Motor control and power management
Field-oriented control for brushless motors, current and speed loops, battery and power management firmware for battery-powered and mains-powered devices.
Connectivity
USB device and host stacks, Bluetooth LE, Wi-Fi and LoRaWAN, from the radio driver to the application protocol.
Technologies
Platforms, protocols and tools we write firmware for
Microcontrollers
Operating systems
Protocols
Tools
Process
From requirements to the release build
Every phase ends with a deliverable you can review: an agreed specification, an architecture document, firmware running on the target, measured results, a reproducible release.
- 01
Requirements
Functions, timing constraints, interfaces, protocols, safety and update requirements written down and agreed.
- 02
Architecture
Partitioning between bare metal, RTOS and Linux, task and memory layout, driver interfaces and the update concept.
- 03
Implementation
Drivers, board support and application firmware in C and C++, developed on the real hardware with board bring-up as the first milestone.
- 04
Verification
Timing measurements, protocol conformance with logic and protocol analysers, long-run tests and results documented against the requirements.
- 05
Release
Reproducible release build, signed images, bootloader and update path, source code and documentation handed over.
Questions before a project
What engineering managers ask about firmware development
Do you develop embedded Linux with Yocto or Buildroot?
Yes. We build embedded Linux systems with Yocto and Buildroot: board support packages, device tree configuration, kernel drivers and the bare-metal firmware around them, on ARM SoC platforms such as AMD Zynq UltraScale+ and Intel SoC FPGAs.
Can you take over the firmware of an existing product?
Yes. We start from your existing hardware, requirements or codebase. Typical partial engagements are board bring-up, drivers and BSPs, firmware architecture, embedded Linux integration and debugging of devices in the field.
Which fieldbus and industrial protocols do you implement?
EtherCAT, PROFINET, Ethernet/IP, CANopen, Modbus RTU and TCP, CAN, CAN-FD and LIN, plus USB, Bluetooth LE and LoRaWAN for connected devices. Protocol behaviour is verified with logic and protocol analysers on the target hardware.
Do you implement secure boot and over-the-air updates?
Yes. Bootloaders, signed firmware images and secure boot chains are part of the firmware architecture, and the over-the-air update path is designed with the product, not added afterwards.
Contact
Discuss your embedded project
Describe the device, the stage you are at and what you need. An engineer reads every inquiry and replies personally.
Patrick Walther
Founder
Hardeggweg 3
3326 Krauchthal, SwitzerlandFermium GmbH, Hardeggweg 3, 3326 Krauchthal, Switzerland