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.
/* 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);elsebuffer_store(id, now());}vTaskDelay(pdMS_TO_TICKS(POLL_MS));}}
Firmware Development, done properly
Bare-metal & RTOS
Firmware for ARM Cortex-M and ESP32-class microcontrollers, bare-metal or on FreeRTOS, structured so it can grow.
Drivers & peripherals
ADC, timers, UART, SPI, I²C, CAN and USB drivers, sensor drivers, displays, keypads and storage.
Communication stacks
Modbus RTU/TCP master and slave, MQTT, HTTP, BLE, LoRa and cellular — the protocols industrial and IoT devices need.
Bootloaders & OTA
Safe field updates over the air or over a cable, with rollback if an update fails.
Low power
Sleep modes, duty cycling and measured current budgets for devices that must last years on a battery.
Testing
Unit tests where they help, hardware-in-the-loop checks and long-run soak tests before release.
A clear process, with check-ins at every step
- 1
Specification
Features, protocols, timing and power targets written down and agreed.
- 2
Architecture
Modules, tasks and interfaces planned before coding.
- 3
Development
Iterative builds you can test on your hardware every week or two.
- 4
Verification
Functional, edge-case and long-run testing on real boards.
- 5
Release & support
Production images, documentation and fixes after launch.
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
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.
Where this service is used
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.
Often combined with
Hardware Design
Schematics, component selection, power and I/O design, prototypes and bring-up.
Learn moreEmbedded Linux
Custom Linux images, BSPs, kernel drivers, secure boot and OTA updates.
Learn moreIndustrial IoT Solutions
Device-to-cloud systems with gateways, dashboards, alerts and reports.
Learn moreHave 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.