Firmware, also commonly referred to as embedded software, is an inescapable part of everyday life. In today’s world of smart devices, firmware powers the microprocessors in the technology all around you: cars, refrigerators, washing machines, coffeemakers, and TV remotes are all driven by firmware to provide the “smarts” in these smart devices.
State-of-the-art firmware engineering services
While some firms may offer “coding” service, Simplexity goes further and provides firmware engineering services. Our engineers have the experience, skills and tools to not only architect systems that are robust and maintainable, but to do the engineering analyses required to make sure devices function correctly under all conditions.
Our development processes require up-front design in addition to code reviews, and use unit, system and integration testing along with continuous integration to make sure the code base stays healthy throughout development. We use modern tools like Bitbucket-hosted git repositories, JIRA task and issue tracking, and Jenkins continuous integration servers to share and track our work, as well as enabling our clients to monitor development status and progress in real-time.
Through advanced engineering analysis tools — like rate monotonic analysis (RMA), compiler-supported static stack size computation, static code checking, and McCabe cyclomatic complexity analysis — our engineers ensure the firmware in your device is robust, maintainable, and adheres to industry best practices.
Our team of experienced firmware engineers has developed systems across all the common communications protocols, processor families, embedded operating systems, and sensors types. The team has members with advanced degrees in specific application fields, such as digital signal processing (DSP) and control systems engineering. Whether your system needs a simple PID controller or a custom-designed extended Kalman filter for sensor fusion, we can support your product’s needs.
Smart devices are more than just electronics and code. An understanding of advanced mathematics is required to develop algorithms. Those data processing algorithms are expressed in the firmware and software code that truly gives a device its smarts.
This wide range of algorithms includes extended Kalman filter-based sensor fusion algorithms, signal windowing for discrete Fourier transforms, sliding mode nonlinear controllers, and backpropagation learning for neural networks, just to name a few.