Firmware is an essential component of any IoT product and plays one of the most critical roles in the capabilities of the product. Essentially firmware is all the software will run on your MCU.
The firmware must be:
1. Stable and Scalable Architecture
4. Good management of sensors and outputs
5. Support OTA updates
Most firmware today is written in C and C++, but there are more and more 32-bit devices that support more modern programming languages such as Python and Node.
During the prototyping phase this is enough firmware to accomplish the testing necessary in the prototyping phase. When we get closer to the final product the firmware will be:
Production Quality (optimized and robust)
Sleeps as necessary to ensure minimum power consumption (if applicable)
Supports OTA updates (if applicable)
Secure from tampering (if applicable)