Firmware Design

It's the magic that makes things go.  An explosion in the Internet of Things is driving a new type of engineer that can manage data all the way from sensor to webpage.  Unfortunately, most people are experts in only a part of this chain.  We understand what happens down at the hardware, the low level processing, communicating that data to the internet, and ultimately making that data visible to you and your customer in a meaningful way.  Knowing how to make the hardware work in a predictable fashion. Making the hardware perform the way it should is the purpose of embedded firmware. Sensor algorithms, power management and connectivity all the way to your computer screen are all part of the design chain.

Putting it Together

Low-level firmware refers to software that interacts directly with the system processor. It is responsible for basic functions such as booting up the device and managing its peripherals. This firmware operates at a low level, close to the hardware itself.

At the same time, the application firmware is software, running on the same system processor, is designed to perform specific tasks for the end-user, such as a data communication on the cellular or WiFi network, running algorithms for alarm conditions on the sensor data streams, or drawing gauges on an integral LCD. The higher level firmware might even be running a local web server that is generating pages viewable on a mobile phone.  This software operates at a higher level and is written in a higher-level programming language such as C, C++ or Python.