Embedded & Firmware

Firmware and embedded software development for connected products

Indeema is a custom firmware development company for makers of connected devices: we take responsibility for the software inside the device, from board bring-up and drivers to BLE, Wi-Fi and LTE connectivity, field updates and the contract with your cloud and apps. 230+ engineers and 200+ connected-product projects mean you can bring us one component, the whole embedded layer, or the device’s place in the full system.

See what we take responsibility for

Where firmware problems begin

When do teams need outside firmware engineers?

  1. The board exists and no one owns its software.

  2. The firmware works in the lab and is fragile in the field.

  3. The prototype has to become a product you can update.

  4. The device and the cloud disagree about state.

  5. Your team has no RTOS, radio or low-power specialist.

  6. You have to choose the platform before you commit to it.

What Indeema takes responsibility for

What does firmware development cover?

Embedded software fails at its edges as often as in its code, so responsibility covers both. Indeema holds the verbs that fit your product, on the parts you choose.

ArchitectImplementIntegrateEvolve

Inside the device

What runs on the board.

  • Architect the runtime: task structure, RTOS choice, memory and power behavior.
  • Implement board bring-up, drivers and the application logic.
  • Integrate sensor acquisition and signal processing with the code that uses it.
  • Evolve the software as hardware revisions arrive.

At the boundaries

Where the device meets everything else.

  • Integrate the hardware interface: buses, pinout, timing and power.
  • Implement radio and protocol stacks such as BLE and Wi-Fi, and wired industrial links such as RS-485 and Modbus.
  • Architect the contract with cloud and applications: protocol, versioning and failure states.
  • Integrate protected pairing and encrypted communication where the product needs them.

Across product life

What keeps a shipped device working.

  • Architect update and recovery, so a failed update does not leave a unit unusable.
  • Implement over-the-air updates over the networks the device has.
  • Integrate validation on real hardware into the release path.
  • Evolve the firmware through updates and maintenance after release.

Interfaces Indeema owns explicitly

  1. HardwarePinout, timing and power.
  2. Radio and networkProtocols and how they behave when coverage drops.
  3. Cloud and applicationProtocol, versioning and failure states.
  4. FactoryTest and provisioning.
  5. FieldUpdate and rollback.

The work touchesRTOS (FreeRTOS, ThreadX)ESP-IDFBLEWi-FiRS-485 and ModbusMQTT over TLSOver-the-air updatesSPI and UART

A circuit board with the layers of its firmware drawn as stacked glass plates above the processor

Firmware drawn as the layers above the board it runs on.

Platforms and interfaces

What we build on: MCUs, RTOS and interfaces

Where a published project shows the work, it is linked beside the line; the other lines come from client projects under NDA.

Microcontrollers, RTOS, wireless standards and interfaces in Indeema’s published firmware projects
AreaTechnologyWhere
Microcontrollers and SoCsESP32, ESP32-C6, ESP32-P4 and ESP32-PICO on ESP-IDFElevator monitoring, Connected ventilation, Video intercom, Spraying drone link
Microcontrollers and SoCsRenesas RAVehicle telemetry
Microcontrollers and SoCsSTM32, Nordic nRF52, nRF53 and nRF91Client projects under NDA
Microcontrollers and SoCsNXP i.MX, Kinetis and LPC; TI CC26xx and CC13xx; Microchip SAM and PICClient projects under NDA
Microcontrollers and SoCsArm Cortex-M microcontrollers and Cortex-A application processorsClient projects under NDA
RTOS and operating systemsFreeRTOSElevator monitoring, Connected ventilation
RTOS and operating systemsThreadXVehicle telemetry
RTOS and operating systemsZephyr and bare-metal firmwareClient projects under NDA
RTOS and operating systemsEmbedded Linux with Yocto and BuildrootClient projects under NDA
Wireless and smart homeBLEConnected ventilation, Sensor unit
Wireless and smart homeWi-Fi, including Wi-Fi 6Elevator monitoring, Air purifier, Connected ventilation
Wireless and smart homeMatter, Thread and ZigbeeConnected ventilation
Wireless and smart homeUDP over a Wi-Fi soft access pointSpraying drone link
Wireless and smart homeLoRaWAN, NB-IoT and LTE-MClient projects under NDA
Cloud messagingMQTT and MQTT over TLSAir purifier, Elevator monitoring
Wired and peripheral interfacesRS-485 and ModbusElevator monitoring
Wired and peripheral interfacesSPI, QSPI and UARTSpraying drone link
Wired and peripheral interfacesUSB configuration from a PCVehicle telemetry
Wired and peripheral interfacesMIPI DSI and CSI, LCD, H.264 and RTSP streaming, a custom audio driverVideo intercom
Wired and peripheral interfacesCAN and CAN FD, Ethernet, I2C, ADC and DACClient projects under NDA
Sensors and controllersATmega328P controller with an ADXL345 accelerometerVibration diagnostics
Sensors and controllersAir-quality and airflow sensor integrationAir purifier, Connected ventilation
Boot and updateMCUboot and custom bootloaders, A/B updates with rollback, secure bootClient projects under NDA
Board bring-up and testingSTM32F405 flight controllers and Silicon Labs EFM8 ESCs, brought up and tested with existing flight firmwareDrone R&D

Embedded software

Embedded software development services

The software that runs on the microcontrollers and systems-on-chip inside connected products, from first boot to updates in the field.

  • Board bring-up and drivers

    First boot, peripherals, displays, cameras and sensors on new or revised boards.

  • RTOS applications

    Task structure, timing and memory for real-time applications on FreeRTOS, ThreadX or Zephyr.

  • Bare-metal and embedded Linux

    Bare-metal firmware where every byte and microamp counts, and embedded Linux built with Yocto or Buildroot on application processors.

  • Connectivity stacks

    BLE, Wi-Fi, LoRaWAN, NB-IoT and LTE-M, and wired links such as RS-485, Modbus, CAN and Ethernet.

  • Updates and recovery

    Over-the-air updates over the networks the device has, bootloaders, A/B updates with rollback and secure boot.

  • Porting and modernization

    Moving firmware to a new microcontroller or to the chip vendor’s native framework, and taking over firmware that already ships.

  • Device-to-cloud contract

    Protocol, versioning and failure states between the firmware, the cloud and the apps.

Scope of responsibility

How much of the device software should Indeema own?

Scopes, not tiers. Embedded firmware development can start at any of them, including modernizing firmware that already ships.

  1. Discipline

    One component, done properly.

    • A driver, a protocol stack, an update mechanism or a port to a new microcontroller
  2. Layer

    The whole embedded software of a device.

    • Runtime, drivers, application logic and updates
  3. Connected layers

    The firmware and its contract with cloud and apps.

    • Device identity, protocol, versioning, failure states and app pairing
  4. Whole product

    The device as one part of the whole product.

    • Electronics, firmware, cloud and applications under one architecture
    IoT Product Engineering

At every scopeArchitectImplementIntegrateEvolve

Scope follows where the problem is, not the size of the engagement.

Method and handover

How does firmware development work from prototype to field updates?

Eight gates, from constraints to the field. Each ends with something your team can read, run or check.

  1. ConstraintsConstraint record
  2. ArchitectureArchitecture record
  3. Bring-upBoards running, with notes
  4. ImplementationReviewed source and build instructions
  1. IntegrationInterface specification
  2. Validation on hardwareTest reports
  3. Release and updateRelease and update plan
  4. Field supportDocumented recovery path

Handover is planned from the first gate, including how over-the-air updates and recovery will work. Contents are agreed for each engagement.

Test and release

How firmware is tested and released

Validation is tailored to the project: builds are checked against agreed acceptance criteria, interfaces are measured on hardware, and updates are designed to recover when a connection drops.

  • Milestone builds checked against agreed acceptance criteria, with contributions reviewed before merge

    Vehicle telemetry
  • Interface throughput and data transfer measured on hardware with a high-speed logic analyzer

    Spraying drone link
  • Automated firmware builds in a CI/CD pipeline

    Video intercom
  • Testing across the device, the cloud platform and the app, not only the firmware

    Air purifier
  • Over-the-air updates over LTE or Wi-Fi

    Elevator monitoring
  • Over-the-air updates over BLE through the mobile app

    Sensor unit
  • An update flow designed so an interrupted connection cannot leave the unit unusable

    Vehicle telemetry
  • Firmware unit tests and hardware-in-the-loop test benches

  • Static analysis, including MISRA checks and cppcheck

  • A/B updates with rollback, and secure boot so only signed firmware runs

What this has looked like

Four situations, and what Indeema owned in each

  1. LayerRescuing existing firmware

    A telemetry unit had hardware, but only very basic embedded software.

    Indeema owned
    The firmware architecture and an RTOS real-time application: modem start-up, a telemetry queue for coverage gaps, and an update flow designed not to brick the unit.
    What changed
    The basic code was replaced by an application with the features the product needed.
    Vehicle telemetry unit
  2. Connected layersFirmware with field updates

    An elevator-monitoring device had to stay connected and current over LTE or Wi-Fi.

    Indeema owned
    An embedded framework on an RTOS with trip-detection logic, an RS-485 link to an energy meter, and over-the-air updates over either network.
    What changed
    A maintenance plan built around regular firmware updates.
    Elevator monitoring device
  3. LayerPlatform validation to prototype

    A proposed system-on-chip had not been proven for streaming analog camera video.

    Indeema owned
    Display, camera and audio bring-up, video encoding, and a custom streaming component where the vendor’s fell short.
    What changed
    A working prototype showed the platform was suitable, with the architecture laid out for what followed.
    Video intercom prototype
  4. LayerModernizing a shipped device

    A sensor unit’s firmware sat on an older framework and could not be re-flashed once assembled.

    Indeema owned
    USB programming without opening the enclosure, a move from serial Bluetooth to BLE with protected pairing, and migration to the chip vendor’s native framework.
    What changed
    The firmware became updatable, including over the air, and pairing became secure.
    Sensor unit modernization

Reading: Solving drone firmware integrity and connectivity

Firmware that already ships, or a prototype that has to? We start by reviewing the code, the build and the hardware it runs on, then fix, extend or migrate it while keeping devices in the field updatable. Discuss your firmware

FAQ

Firmware development questions

  1. What is the process of firmware development?

    Firmware development starts with the system requirements and the hardware, then moves through architecture, implementation, board bring-up, testing and debugging on the target hardware, integration with the rest of the product, and release. After release, firmware needs maintenance and over-the-air updates for as long as devices are in the field.

  2. How long does it take to develop custom firmware?

    It ranges from a few weeks for a bounded change to many months for a new product, depending on the hardware maturity, connectivity, the number of features, the update mechanism and the validation required. We plan in stages, with working firmware on the target early.

  3. What are the benefits of working with an external firmware development team?

    A specialist team brings established processes for architecture, testing on hardware and release, which reduces the risk of errors and delays, and lets your own engineers concentrate on the product. It helps most when the team also understands the hardware, the connectivity and the cloud the firmware works with.

  4. Do you develop firmware with an RTOS?

    Yes. Firmware for connected products is often built on a real-time operating system, with tasks for connectivity, sensing and control, and a defined approach to timing, memory and power. The choice of RTOS follows the microcontroller and the product’s requirements.

  5. Can you take over existing firmware?

    Yes. We start by reviewing the code, the build and the hardware it runs on, then fix, extend or migrate it, for example to a current framework, while keeping devices already in the field updatable.

Ways to work with Indeema

Start with your device

  1. Engineering ownership

    Indeema is accountable for a defined scope, from architecture to evolving what it built. You decide at agreed gates.

  2. Joint product team

    Indeema engineers work inside your product team, on your roadmap and against interfaces you both own.

Also available: specialist team extension. One scarce specialty joins a team you lead.

Bring us

  • The board, or the plan for one
  • What it must do, and where it fails
  • The radio, cloud and app interfaces you have
  • The part you want owned
Discuss your firmware scope

What happens next. Our engineering team reads your enquiry and replies by email. The first conversation covers the product goal, what exists today and the decision you need to make next. If the problem needs it, a discovery phase follows; it does not commit you to building with Indeema. How a first engagement works

Where the boundary sits

Sector context: Drones & UAV · Smart home · Energy