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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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

  • STM32 Cortex-M0 to M7
  • TI MSP430
  • TI C2000
  • NXP LPC / Kinetis / i.MX RT
  • Microchip PIC / AVR / SAM

Operating systems

  • Bare metal
  • FreeRTOS
  • Embedded Linux (Yocto, Buildroot)
  • Linux BSP / device tree / kernel drivers

Protocols

  • EtherCAT
  • PROFINET
  • Ethernet/IP
  • CANopen
  • Modbus RTU / TCP
  • CAN / CAN-FD / LIN
  • USB Device / Host / OTG
  • Bluetooth LE
  • LoRaWAN

Tools

  • C / C++ / Assembly
  • IAR / Keil MDK / GCC
  • JTAG / SWD
  • Logic and protocol analysers
  • Git

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.

  1. 01

    Requirements

    Functions, timing constraints, interfaces, protocols, safety and update requirements written down and agreed.

  2. 02

    Architecture

    Partitioning between bare metal, RTOS and Linux, task and memory layout, driver interfaces and the update concept.

  3. 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.

  4. 04

    Verification

    Timing measurements, protocol conformance with logic and protocol analysers, long-run tests and results documented against the requirements.

  5. 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.

What do you need?

Your message goes directly to an engineer. Reply within [2] working days.

Patrick Walther

Founder

Fermium GmbH
Hardeggweg 3
3326 Krauchthal, Switzerland
Fermium GmbH, Hardeggweg 3, 3326 Krauchthal, Switzerland