Firmware Development

Microcontroller die

Firmware development is not easy! Writing production level firmware requires deep knowledge of computer engineering, processor architecture, electrical engineering, and software development. Many people claim to write 'code' but CLI Systems knows how to write firmware.

Areas of Expertise

The following are our areas of expertise, we encourage you to stack our knowledge up against other developers!

Legacy Systems

If you have an existing (legacy) embedded system written in C, we promise we can work with it. We are true experts in C, and we have worked with some really old and wild code!

This tends to surprise many people, but most C code we have seen is not well designed and/or not well written. If your code is like that, don't worry, we really have seen it all! We are perfectly comfortable digging in to an old application where the development team didn't quite get it right, or the original developer moved on with no documentation.

CLI Systems has provided the following services for legacy systems:

Tell us about your system, and see where we can help.


Microcontrollers (MCUs) are single chip solutions which contain all the core components for a computer system including CPU, RAM, program storage, and hardware for reading sensors or communicating with external systems over protocols such as SPI or RS232. Microcontrollers are full computer systems but come with absolutely no programming, it is the responsibility of the developer to write all the code for the MCU, and the responsibility of the manufacturer to program the final code release on to the MCU. Some libraries are available for things like simple operating systems, or WiFi protocols, but all 'application specific' programming must be done by an embedded developer, typically, from scratch.

CLI Systems has worked with the following processors and architectures

Embedded Linux

The Linux operating system is a large open source project by thousands of developers over the last 30+ years. The source code for Linux is free and not owned by any company, so it is a common OS to use in an embedded system. Linux is designed to run on small computers up to large multi-processor mainframe servers and because of this, the hardware requirements for running Linux are much higher than running a small RTOS; Linux is not an option for a microcontroller system.

Many embedded hardware platforms support Linux, and CLI Systems has worked with many different embedded Linux systems for many different products. We have developed custom Linux images for products using the Yocto project, the Buildroot project, and OpenWRT Linux distribution. We are developers of device drivers for the Linux kernel as well as application level programs.

We have worked with the following processor families and Linux board manufacturers

We love hearing about new projects!

Yes, lets do some firmware!

Want an NDA? No problem, just let us know in the message!