Skip to Content
DOC / SVC-02 - REV 01

Embedded Firmware Development

C and C++ firmware for ESP32, STM32, and Nordic nRF devices: sensing, wireless communication, low-power behaviour, and builds that can be updated in the field.

SVC-02 / Overview

What embedded firmware development involves

Firmware is where a connected product's promises are either kept or quietly broken. The advertised battery life, the reconnect behaviour when a phone walks out of range, the data that survives a power cut, the ability to ship a fix to devices already in customers' hands: all of it lives in firmware.

We write firmware in C and C++ for the platforms most connected products actually ship on, principally Espressif ESP32, STMicroelectronics STM32, and Nordic Semiconductor nRF. The work spans sensor drivers, wireless stacks, power management, on-device storage, and the update path.

Most of the difficulty is not in the happy path. A device that reads a sensor and sends a packet is a weekend project. A device that does so for two years, unattended, through dropped connections, brownouts, clock drift, and a firmware upgrade, is an engineering problem.

SVC-02 / Capabilities

What this service covers

Capabilities
  • C and C++ firmware for ESP32, STM32, and Nordic nRF.
  • Sensor drivers and measurement pipelines.
  • BLE services, characteristics, and bonding.
  • Wi-Fi provisioning and connection management.
  • Low-power sleep and wake scheduling with current profiling.
  • On-device data logging and flash wear management.
  • Over-the-air firmware update with rollback.
  • Watchdog, brownout, and recovery behaviour.
  • Manufacturing test firmware and device serialisation.
  • Bootloader and image-signing strategy.
SVC-02 / Method

How we approach firmware

Make the power profile measurable

A device is only low-power once someone has measured it. We profile sleep and active current on real hardware with the radio running, then compare the result against the energy budget set during hardware design. Datasheet figures are a starting point for estimation, not evidence of behaviour.

Measuring early also tends to relocate the problem. The current spike that ruins a battery estimate is usually somewhere unglamorous, such as a peripheral left enabled through sleep or a reconnect loop that never backs off.

Assume the connection will drop

Wireless links fail routinely and unremarkably. Firmware that treats disconnection as an error state rather than a normal condition produces devices that need a power cycle to recover, which users experience as an unreliable product.

We design for buffering while offline, bounded reconnect backoff, and commands that can be safely repeated, so that a dropped link costs a delay rather than a data gap or a duplicated action.

Ship an update path before you ship the product

Devices without a working update mechanism become a permanent support liability, because every defect found after launch is unfixable without physical access. We implement over-the-air update with signed images and a rollback path, and test it on real hardware before the product ships rather than after the first field defect.

Write the factory firmware too

Production needs its own build: a test mode that exercises the sensors and radio, a way to write serial numbers and calibration constants, and a clear pass or fail signal an operator can act on. Treating this as part of the firmware scope avoids a scramble in the weeks before a build.

SVC-02 / Output

What you receive

Deliverables

  • Production firmware source, documented and version-controlled.
  • A measured power profile checked against the design's energy budget.
  • BLE and Wi-Fi communication implemented against a written protocol specification.
  • An over-the-air update path with rollback, tested on real hardware.
  • Manufacturing test firmware with a documented pass or fail procedure.
  • Build and release instructions your own team can run.

When this fits

  • You have hardware and need the firmware that turns it into a product.
  • Your device works but drains its battery, drops connections, or cannot be updated in the field.
  • Your team needs firmware capacity alongside an existing in-house effort.
FAQ

Questions we are asked about embedded firmware development

Which microcontroller platforms do you work with?

Primarily Espressif ESP32, STMicroelectronics STM32, and Nordic Semiconductor nRF, which between them cover most BLE and Wi-Fi product requirements. Where a design is already committed to another platform, the architecture work transfers even where the drivers do not.

Can you add over-the-air updates to a product already in the field?

Sometimes. It depends on whether the deployed bootloader supports it and whether the flash layout leaves room for a second image. Where already-deployed devices cannot be updated remotely, we design the path so that the next hardware revision can be.

Will you work with our existing firmware codebase?

Yes. Taking over or extending an existing codebase is common. We start with a review of the power behaviour, the communication layer, and the update mechanism, since those are where inherited firmware most often needs work.

How do you verify low-power behaviour?

By measuring it on hardware, with the radio active, across a full duty cycle rather than at a single instant. The measured profile is then reconciled against the energy budget agreed during hardware design.

Sense more. Do more.

Have an IoT product idea or prototype that needs a professional architecture?

Tell us what you want to build. We help transform connected product ideas into systems that sense the real world and do useful work through hardware, firmware, apps, gateways, and backend systems.

Start a Project