Embedded Firmware Advantages
With locations across California and Massachusetts, we’re focused on biotech instrument design, medical devices design, and industrial electronics development. Our team consists of 200+ mechanical and electrical engineers, 50+ scientists, and 40+ Ph.D.’s. We’ve executed 1500+ projects spanning an extremely wide range of products from a simple boombox, to a low-cost Bluetooth beacon, to dozens of complex molecular diagnostic instruments, to highly distributed control systems for mass spectrometers, to redundant multiprocessor control electronics for spacecraft, and much more. The designs have been AC-powered, battery-powered, and solar-powered; large and tiny; quiet and loud. What do they all share in common? A small microprocessor controlled by custom firmware.
In developing a product, there a couple of fundamental stages: First, the initial working prototype which does enough to engage you, others, and investors; then the second stage, which is much more difficult – to develop and refine that initial design into the real product that has to meet a myriad of conflicting goals: performance, cost, ease of use, size and weight, operational life, time to market (i.e schedule), and numerous other criteria.
The focus here is on one step in this process, namely the one between the initial working prototype and the real product. A common practice, which is very reasonable, is to take an open-source single-board computer (Beagle Bone, Raspberry Pi) running open-source Linux, and bolt on some device-specific hardware (sensors, IO, etc.) to get an initial prototype up-and-running quickly. This is often highly effective at satisfying the needs of the first stage. So, what’s wrong with this? Actually, nothing. The pitfall comes in the transition to that critical next stage.
While a prototype based on a single-board computer running Linux can get you up-and-running quickly, it comes at a large price – which seems like an odd statement for something that’s free, right? Well, it’s not. While you’re not paying for the Linux code, you do have to pay for the hardware needed to support it. This typically has a big footprint and requires a large external Flash memory, large and high-speed RAM (typically DDR3 or DDR4), a very fast CPU (often clocked north of 1 GHz), and potentially unneeded peripherals like HDMI, Ethernet, and such.
In contrast, custom firmware can comfortably run on a very modestly clocked (50 MHz), low-cost (< $5) 32-bit microcontroller that integrates the required Flash, SRAM, and basic peripherals (like USB). This has some really big benefits:
- High integration provides reduced power consumption (less heat, longer battery life), lower cost, smaller physical size
- Lower clock speeds dramatically reduce EMI emissions, which simplifies FCC certification
- Only required ports (SPI, I2C, Ethernet, serial) and peripherals (ADC, DAC, display, audio, etc.) need to be added, resulting in the minimum BOM cost
- Exceptionally fast boot-up time and much higher performance (100 – 1,000 times faster) than a Linux-based solution
Another couple of concerns with Linux are real-time processing and security.
- Linux isn’t suited for hard deadline real-time tasks. If your device needs to take a reading of something every 10 ms, or move a sample every 1.5 seconds, Linux can’t do that reliably because user space applications can be interrupted by the kernel in unpredictable ways. Dedicated firmware, on the other hand, can be designed to reliably execute at very precise intervals.
- Security concerns are eliminated. Linux is vulnerable to exploitation, and security patch updates are needed for the life of the product to maintain integrity. Firmware is basically immune to these concerns and won’t require updates.
Gener8 firmware designs don’t start from scratch. We have a library of proven code that supports a large number of functions such as: serial/USB/Ethernet ports, dynamic motor and position control, machine vision, PID loops for temperature control, Wi-Fi and Bluetooth connectivity, and more.