Firmware Development Services
We create custom embedded software for a wide range of microcontrollers (MCU) and digital signal processors (DSP). Our team is experienced in RTOS, ROS, and non-OS based firmware development.
What is our task?
We take care of low-level firmware development including redesign and debugging projects where you need to optimize the performance (latency, boot time, power, and memory) of your existing firmware. As a firmware development company, we have extensive experience with hardware, operating systems, low-level diagnostic and performance tools. Such experience allows us to build projects faster and achieve higher performance. We’ve designed firmware for multi-protocol and system-on-chip (SoC) devices. They find their applications in industrial automation, healthcare, consumer electronics, and other industries.
What tasks are included?
We offer various firmware development services and work with 8, 16, 32, and 64-bit microcontrollers produced by the most popular semiconductor vendors: Atmel, Nordic Semiconductor, Texas Instruments, STMicroelectronics, Renesas, Silicon Labs, and others. We design both bare-metal and RTOS-based firmware.
RTOS development
We have extensive hands-on experience in developing firmware for applications that demand real-time response. The real-time operating systems (RTOS) we’ve worked with include FreeRTOS, Zephyr, ThreadX, RTEMS, LiteOS, and NuttX. RTOS significantly speeds up the process of firmware development.
ROS development
ROS is an open-source operating system that enables control of low-level hardware used in robots and robotic automation systems. With ROS, we can quickly build, maintain, and expand robots’ capabilities.
Non-OS based embedded firmware
When an embedded device needs to run a set of tasks forever or until the power supply is removed, we develop embedded C applications without an OS. The non-OS based embedded firmware execution runs the tasks in an infinite loop.
Cortex-M family
The Arm Cortex-M processor family is the most common platform we work with. Depending on the requirements, we use different versions of Cortex microcontrollers: e.g. M0/M0+ when a solution needs to be energy efficient but doesn’t require high performance, M4/M7 when high performance and rich periphery is critical, and Cortex-R family when real-time execution is needed.
AVR, PIC, MSP430, etc.
As alternatives to Cortex, we also apply AVR, PIC, and MSP430 microcontrollers which can be a good fit for some specific tasks. However, we always recommend doing embedded development using more powerful architectures. We offer this recommendation because when your needs change, moving from one platform to another might require significant investment.
DSP firmware development
If your device, in addition to algorithmic processing on the MCU, requires digital signal processing (DSP) in real time, you can use us for DSP firmware development. We will help you select an appropriate DSP for your application and develop a firmware for it. We’ve worked with DSP processors produced by Texas Instruments (C6000 and C5000 series), Microchip Technology (dsPIC), and Analog Devices (ADSP-21xx, Blackfin, SHARC and TigerSHARC).
HAL
Hardware abstraction level makes it possible to develop firmware that is reusable and hardware independent. HALs are essentially API’s for interacting with hardware. We use existing HALs provided by microcontrollers and compilers, and we also create our own.
Testing services
Testing involves intensive debugging and optimization efforts. We test every individual piece of firmware separately using as many scenarios as technically feasible. We use manual and automated product testing to deliver reliable high-performance products.
Migration of legacy firmware to new platforms
Each MCU manufacturer has peripheral features and programming models that are unique to its own products. In case you need to migrate your firmware from one MCU vendor to another, we can support your efforts. We’ll re-layout the PCB if required and make the design portable.