Web development tools can be integrated into embedded development to modernize your workflow.
Mature web development tools can be integrated into an embedded development process to take advantage of features like automated testing, hardware in the loop, Continuous Integration (CI), and Continuous Deployment (CD).
Embedded development of the past: before web development
Embedded development predates web development by decades, which in tech is like a few million years. Until fairly recently, embedded development was a highly specialized, and very expensive proposition. It had slow development cycles, based on expensive, proprietary tools — both hardware and software (does anyone remember Intel’s blue boxes?) that were managed with a conservative mindset of if it ain’t broke, don’t fix it.
Modern Web development is the polar opposite. Web hosting is cheap, it requires little more than an entry level computer, and it wasn’t long before you couldn’t throw a rock without hitting a new web developer. Web development has countless tools available, and most of them are cheap or free. And lacking any significant budget risks of messing up – web developers have a mindset of move fast and break things.
Luckily, things are starting to catch up in embedded development. The embedded tools are more plentiful and less expensive, even free in some cases. Many are based on mature products from other development environments, like gnu compilers and debuggers. Existing software packages are available for inclusion into a product, saving developers time and effort developing features from scratch. An ever growing list of low cost development boards like Arduinos and Raspberry Pis provide tons of variety and extensibility that wasn’t available in the embedded world. Together, these changes are creating more and more embedded developers. One of the bigger breakthroughs is taking advantage of mature Web development tools.
Embedded environments of the future: catching up with the web developer workflow
Web development has matured a great deal. The web is no longer just a novelty or the means to an end. It is the product for many companies. No surprise, web developers have implemented safeguards with mature processes. A web developer doesn’t have to worry that an errant commit will crash their company’s website. The process will catch problems before they get that far.
One of these safeguards is called Continuous Integration/Continuous Deployment (CI/CD). With a few adaptations, embedded systems can take advantage of these mature web tools. In a CI/CD setup, every change made to the software is built and tested automatically. The developer submits his changes to the repository, and the CI/CD system does the rest. It replicates the development environment and builds the software, runs unit tests on the code, and sends the results from the testing to the developer and leaves a report in a project management system.
Embedded developers can reap the best of both worlds: modern embedded tools and existing mature software libraries from which to add features. With the right additions and know-how, a CI/CD can reprogram an attached embedded device and test it in action. Once those changes are approved, the CD portion of the system can begin distributing the changes to the devices in the field.
Of course, you could keep doing it the old, tried, and true way. Stick with expensive tools, slow development cycles and lots of manual testing. Or you could pull in some mature tools, lower costs, and speed things up by taking advantage of modern development tools. Here is a great example of what we’ve done with medical devices.
Setting up a CI pipeline may sound like a big change, but Dojo Five has you covered. Our Embedded CI Platform will safely get you from ancient tools to a modern system in no time at all. For more information, schedule a demo of what we can build for you!
And if you have questions about an embedded project you’re working on, Dojo Five can help you with all aspects of your devops for embedded journey! We are always happy to hear about cool projects or interesting problems to solve, so don’t hesitate to reach out and chat with us on LinkedIn or through email!