Firmware that survives contact with the hardware

Firmware is where a product's behavior actually lives. It is also where schedules go wrong, because firmware is the first place every unresolved hardware question finally has to be answered — the clock that is not what the datasheet implied, the peripheral that needs an errata workaround, the boot sequence nobody wrote down.

SignalForge covers embedded C and C++ from the bootloader up. That means board support packages and device drivers across bare metal, real-time operating systems, and embedded Linux; bootloaders with what production actually needs — field firmware update, multiple boot partitions, recovery paths, and FPGA programming at startup; and the communications and control code that makes a product do its job, from serial and CAN up through avionics and defense buses.

Board and SoC bring-up is a distinct discipline and we treat it as one. Taking a new design from first power-on means low-level bootstrapping before there is a console to print to, working out whether a symptom belongs to the schematic or to the software, and building up from a blinking pin to a booting system. It is work that rewards having done it before on unfamiliar silicon, and it is the single most common reason a client calls.

SignalForge also takes on firmware that has outlived the person who wrote it — codebases with no build documentation, toolchains that no longer install, products that must move to current silicon because the original part went end-of-life. The first step is almost never to start writing code. It is to establish whether the thing builds at all, and what it actually depends on. That is what the technical assessment is for.

What separates this from handing firmware to a contractor: when the problem turns out to be the board rather than the firmware — and on a bring-up it regularly does — the investigation does not stop at a boundary and restart as somebody else's ticket.

  • Embedded C / C++
  • BSPs & drivers
  • Bootloaders & firmware updates
  • Bare-metal
  • RTOS & embedded Linux
  • Board bring-up
  • Communications & controls
  • Firmware rescue & modernization