Firmware and Embedded Software Development
Developing firmware for embedded IoT Devices can be a uniquely challenging technical exercise requiring a wide array of tools and techniques. The combination of limited platform resources, connectivity, and constrained development tools can create risk and difficulty for your project. The IoT Design Shop is here to help.
We have developed firmware and embedded software for everything from the smallest micro-controller up to the most powerful of the embedded Linux platforms and have extensive experience with platforms like Arduino, Raspberry Pi, and other rapid-prototyping environments.
Our skills include:
- Low Level C/C++ Firmware Development – Typically reserved for low-level proprietary firmware and OS stacks, C/C++ are the go-to languages for drivers, OS-level components, and many of the micro-OS’es that run on small, highly customized micro controllers. Our team has developed extensively in these environments on some of the most resource-constrained platforms.
- Arduino Development – Arduino is the foundation of many electronics designs both amongst makers and commercially. We have developed on a wide variety of Arduino-compatible boards with features and connectivity options including Bluetooth, WiFi, Cellular, and Sub-G radio.
- Embedded NodeJS – Many of the higher-spec Linux boards run a flavour of NodeJS. We love Node as a platform because of it’s small initial footprint, and flexibility to deploy anything from web services to a Bluetooth LE GATT.
- Linux – Still the OS of choice for any large CPU embedded environment, we have a great deal of experience working with Linux in embedded environments. We have deployed everything from drivers to GUI’s running on small touch screens in Linux and are very comfortable working through solutions for the Linux OS.
Typically, “firmware” is installed on smaller, inexpensive, singular purpose devices such as sensors or end nodes in an IoT System. The development environments for firmware are usually very low-level and may or may not feature a lot of additional tools beyond a compiler and some form of debug output or simple diagnostic tools.
In addition to firmware development, IoT Design Shop has experience with firmware lifecycle operations such as “over-the-air” updates and security management.
Embedded Software Development
Many modern IoT devices are capable of running full operating systems such as embedded Linux. These platforms are uniquely powerful and flexible, allowing a wide variety of programming techniques and language choices. We have deployed C/C++, NodeJS, and Python applications to a variety of different embedded Linux platforms such as Raspberry Pi, BeagleBone, and Qualcomm DragonBoard.