# Embedded firmware development | OneStack

> Embedded firmware development from Brescia, Italy: STM32, ESP32, Nordic nRF, Embedded Linux, RTOS, secure bootloader and OTA, automated tests.

URL: https://www.onestack.it/en/firmware-development

Service · Firmware development

# From bring-up to production-ready code, on guaranteed dates

We write firmware for high-reliability devices, from drivers to application features, all the way to secure field updates. For companies with a board to bring up fast, firmware to put back on track or an in-house team that needs support. On boards we design or on the ones you already have.

[Proposal in 48 hours](/en/contact)

## What we do

### New board bring-up

Power-up, peripheral checks, drivers and lab measurements. We start on a dev kit while the PCB is being manufactured.

### Application firmware

State machines, RTOS, power and battery management, control logic and diagnostics.

### Communication

Industrial buses (CAN, RS-485, Modbus, SMBus) and wireless (BLE, Wi-Fi, LoRaWAN, UWB), binary protocols with integrity checks.

### Bootloaders and secure updates

Secure boot with signed images, A/B boot with automatic rollback, interruption-proof OTA.

### Motor control, power, Edge AI

Brushless motor control, battery and power management, AI models running on the microcontroller.

### Testing and quality

Unit tests, automated test benches, production test software, documented and versioned code. MISRA C guidelines where required.

## Capabilities

-   C and C++ for embedded systems, Python for tests and tools
-   RTOS: FreeRTOS, Zephyr, ThreadX; bare-metal
-   Embedded Linux (Yocto, Buildroot)
-   Bootloaders, OTA, secure boot; Cyber Resilience Act readiness
-   DSP on microcontrollers: filters, lock-in, demodulation
-   Production test software and tools

## Platforms and technologies

### Microcontrollers and processors

-   STM32
-   ESP32
-   Nordic nRF
-   RISC-V
-   Raspberry Pi
-   Qualcomm Dragonwing
-   Rockchip RK

### Operating systems and stacks

-   FreeRTOS
-   Zephyr
-   ThreadX
-   ESP-IDF
-   Embedded Linux
-   Yocto
-   Buildroot

### Protocols

-   CAN
-   RS-485
-   Modbus
-   SMBus
-   USB
-   BLE
-   Wi-Fi
-   LoRaWAN
-   UWB

```
/* RS-485: fine trama rilevata a timeout, DMA già pronto */
void USART_RTO_IRQHandler(void) {
    uint16_t n = RX_BUF - dma_remaining(rx);
    frame_push(&q, rx_buf, n);   /* CRC nel task */
    dma_restart(rx);
}
```

## What you get

-   Complete source code at the end of the project
-   Release binaries with checksums and release notes
-   Code and protocol documentation
-   Automated tests and test reports
-   Programming and update tools for production

## Lead times

A new project starts with a feasibility study, delivered in 72 hours, which becomes the requirements specification; for complex projects the duration of the study is written in the proposal. If the specification already exists, or there is firmware to put back on track, we skip the study and the proposal covers the work itself, with delivery dates.

technical answer from an engineer

24 hours

proposal for the feasibility study

48 hours

firmware bring-up

2 weeks

working, tested prototype

4 weeks

Typical lead times from the order, with an approved requirements specification and standard complexity, in parallel with hardware design. For larger developments we work in releases, with dates written in the proposal.

## Firmware projects

[

![3D render of the test bench: two steel plates clamped by tie rods with the discs and the boards inside, handles on the sides and the actuator on top](/_astro/banco-mems.BVjo7je3_Z2tCAuW.webp)![](/_astro/banco-mems-xray.CArss8sQ_Z1wwNRX.webp)

\> 40 dB

Test systems for high-reliability applications

### Ten seconds to know whether a MEMS accelerometer really works

A bench and firmware that say yes or no on whether a MEMS accelerometer is present and well coupled to the structure, even in the hands of a non-specialist operator and with the machine running.

Read the case →

](/en/case-studies/mems-sensor-10s-test)[

![3D render of the sensor board: microcontroller in the centre, signalling LEDs, two camera connectors and a power terminal block](/_astro/sensore-parcheggio.DeM-8RJd_6Eplz.webp)![](/_astro/sensore-parcheggio-xray.CxwkkiRl_L2cvg.webp)

≤ 15 ms

Smart buildings and parking

### A parking sensor that spots free spaces on its own, in 15 milliseconds

A low-cost device that processes the image on board and decides whether each space is free or occupied, with accuracy well above ultrasonic sensors. The network carries the state of the spaces and, where needed, one frame per second for basic video surveillance.

Read the case →

](/en/case-studies/edge-ai-parking-sensor)[

![3D render of a pick-and-place controller board: STM32F4 microcontroller, stepper motor drivers and connectors for axes, vacuum, lights and feeders](/_astro/controller-pnp.3whQaHFS_ZhBMRk.webp)![](/_astro/controller-pnp-xray.CMO0PqBP_1JH2KI.webp)

0.194 → 0.036 mm

In-house R&D · lab

### New firmware for our pick & place, and a placement error cut by a factor of five

Our lab started with a closed, imprecise desktop pick & place. We replaced its controller firmware to run it with OpenPnP and calibrated it nozzle by nozzle. It is still the machine we assemble prototypes on.

Read the case →

](/en/case-studies/pick-and-place-openpnp)

## FAQ

Do you work on boards designed by others?

Yes. We do bring-up, fixes and new features on existing hardware too.

Can you take over firmware written by another developer?

Yes. We review it, secure the critical parts and take it forward.

How do you work remotely?

One technical contact and a progress update every week. At each milestone you receive a firmware package to test. When needed, we come to you.

Will the firmware be ready for the Cyber Resilience Act?

Yes, if we put it in the requirements from the start: secure boot, signed updates, locked debug, SBOM. See [how we design for security](/en/embedded-security) and [what the CRA and RED require](/en/cyber-resilience-act).

## Got a deadline?

Tell us about your project: within 48 hours you get a proposal with phases and dates. If needed, we sign an NDA before seeing your files.

[Request a proposal](/en/contact)[Urgent? Call +39 030 535 7183](tel:+390305357183)
