Skip to content
Shalaka

Embedded firmware

Firmware decides how a product behaves on a bad day: when power dips, the network drops or a sensor sends nonsense. We write firmware in C that recovers on its own, can be updated remotely, and tells you what went wrong.

What we can take on

  • Firmware for a new board, from bring-up to release.
  • Firmware for a board you already have, or a rewrite of code that has become hard to change.
  • Drivers and protocols: sensors, displays, BLE, Wi-Fi, LoRa, cellular, Modbus RTU and CAN with UDS diagnostics.
  • Over-the-air update systems with automatic rollback.
  • Low-power firmware for battery products.
  • Taking over a codebase from another vendor.

How we write firmware

We write the watchdog, reset and update paths first, because they decide whether a unit in the field can recover without someone driving to site. Every boot records why the device restarted, and that reason travels with the first message to the cloud.

Communication code gets timeouts, retries and counters from the start. When a Modbus meter stops answering or the cellular link drops, the firmware keeps working, buffers what it can, and reports the problem.

We test on the real board as early as possible. Drivers that pass on a development kit can still fail on a custom board with a different clock, power rail or antenna.

What you get

  • Source code with build instructions that work on a fresh machine.
  • A short document on how to flash, configure and update a unit.
  • Release notes for each version.
  • A handover session with your engineers, if they will maintain it.

For your engineers

Parts, protocols and tools we use for this work. The full list is on the technologies page.

  • Embedded C
  • FreeRTOS
  • Zephyr
  • TI SYS/BIOS
  • ESP-IDF
  • Bare metal
  • ESP32 and ESP32-S3
  • STM32
  • ST SPC58
  • TI CC32xx and Tiva C
  • Nordic nRF
  • BLE
  • Wi-Fi
  • LoRa
  • LTE Cat-1
  • Modbus RTU
  • CAN and UDS
  • MQTT
  • OTA updates

Questions about this

Which microcontrollers do you work with?

Mostly ESP32 and ESP32-S3, STM32, TI CC32xx and Tiva C, Nordic nRF and ST SPC58 for automotive work. New parts are usually a datasheet away from what we already know.

Can you take over firmware written by someone else?

Yes. We start by reading it and building it on a clean machine, then tell you what we would keep and what we would change before adding features.

How do you handle updates in the field?

Two firmware slots, a check that the new version starts and connects, and an automatic return to the old version if it does not. A failed update should never need a site visit.

Related

Tell us what you are building.

Book a discovery call