Skip to content
SENSORLOOPINDUSTRIAL IOT & TECHNOLOGY
Firmware development

Reliable firmware for devices that run unattended

We write the code that runs inside your device — drivers, communication stacks, application logic and safe updates — and we test it on real hardware.

firmware/src/modbus_task.c
/* Poll every slave, buffer if offline */
void modbus_task(void *arg) {
for (;;) {
for (int id = 1; id <= SLAVES; id++) {
if (mb_read_holding(id, 0x0000, regs, 32) == MB_OK)
queue_publish(id, regs);
else
buffer_store(id, now());
}
vTaskDelay(pdMS_TO_TICKS(POLL_MS));
}
}
What we do

Firmware Development, done properly

01

Bare-metal & RTOS

Firmware for ARM Cortex-M and ESP32-class microcontrollers, bare-metal or on FreeRTOS, structured so it can grow.

02

Drivers & peripherals

ADC, timers, UART, SPI, I²C, CAN and USB drivers, sensor drivers, displays, keypads and storage.

03

Communication stacks

Modbus RTU/TCP master and slave, MQTT, HTTP, BLE, LoRa and cellular — the protocols industrial and IoT devices need.

04

Bootloaders & OTA

Safe field updates over the air or over a cable, with rollback if an update fails.

05

Low power

Sleep modes, duty cycling and measured current budgets for devices that must last years on a battery.

06

Testing

Unit tests where they help, hardware-in-the-loop checks and long-run soak tests before release.

How we work

A clear process, with check-ins at every step

  1. 1

    Specification

    Features, protocols, timing and power targets written down and agreed.

  2. 2

    Architecture

    Modules, tasks and interfaces planned before coding.

  3. 3

    Development

    Iterative builds you can test on your hardware every week or two.

  4. 4

    Verification

    Functional, edge-case and long-run testing on real boards.

  5. 5

    Release & support

    Production images, documentation and fixes after launch.

Deliverables

What you get at the end

  • Source code in your repository
  • Build instructions and toolchain setup
  • Flashing and production programming guide
  • Communication / register map documentation
  • Test report
  • Release binaries with version history
Technologies & platforms

Tools we work with

  • ARM Cortex-M (STM32-class)
  • ESP32
  • C / C++
  • Bare-metal & FreeRTOS
  • Modbus RTU / TCP
  • MQTT & HTTP
  • BLE & LoRa
  • 4G / cellular modems
  • Bootloaders & OTA updates
  • Low-power design

Working with a different chip, toolchain or platform? Tell us — we adapt to your stack.

Typical projects

Where this service is used

Modbus gateways and protocol converters
Wireless sensor nodes
Meters, data loggers and instruments
Motor and process controllers
Connected consumer devices
FAQ

Questions about firmware development

Can you take over firmware someone else started?+

Yes. We review the existing code first, tell you honestly what state it is in, and then continue, refactor or rewrite as agreed.

Do we get the source code?+

Yes. Code is delivered in your repository with build instructions, so your team can maintain it.

Can you add Modbus or cloud connectivity to our existing product?+

Yes, that is a common request. We add Modbus RTU/TCP, MQTT or HTTP connectivity, and can connect the product to the SensorLoop IoT platform.

Have a product idea or a board that needs work?

Share your requirement, drawing or existing design. We'll reply with questions, a plan and an estimate.