Three Hill Path Incorporated
IOT Software Development
Tyler Christenson is a Software Developer located in Colorado Springs, CO He is well versed in AWS and Azure. Currently holding a AWS Professional Certified Solutions Architect title. He has been working in this field for the past 8 years, specializing in games, database applications, automation services, and custom software solutions. He is also experienced in IT infrastructure and networks.
IOT Software Development
So, we’ve already looked at some questions about IOT in another blog post, but we didn’t look at some of the challenges and processes for getting software made for IOT devices. A lot of which is custom made for each client.
We’ve also looked at custom software development before, but the process does change quite a bit when doing it for IOT. The biggest contrast is that instead of being able to test it directly on the developer’s machine, either via a virtual machine, emulator, or by running the code natively, you must test it directly on the device or a development version of the device. This adds time to each test, and it affects how easy it is to debug and solve problems. Luckily, the software in IOT devices themselves are usually less complex than other applications due to the limiting hardware.
Speaking of hardware, the software developers should be at least included in meetings about the hardware so they can provide input like “hey this chip has the capabilities we need” or “no, that isn’t going to be able to do what we need”. Most developers that can write software for IOT devices are familiar enough with the hardware to at least assist in the conversation. After that selection has been made then the next step is to get a small devkit made for the developers. This can include things like chip programmers, debuggers, and of course an example of the chip itself. Typically, at first you start with a very simple version of the final product (or a development board) with a devkit that essentially JUST has the main hardware being programmed. After your electrical engineers are done with their initial portion then a prototype/dev board will be made, and the developers will transition to that. All of that adds some cost and time to development especially if there are a lot of revisions made back and forth from hardware and software.
After many prototypes/revisions are made, it’s time to build the finalized versions. This can go a few different ways depending on the volume of devices needed. If you’re building less than 100, you would be hard pressed getting a board manufacturer to program the chips for you. In which case they would probably be programmed by the software team. If you’re having a large quantity made, then the board manufacturer can program the firmware into the device for you. One thing to keep in mind though, especially for large scale deployments, is that the software needs to be tested EXTENSIVELY before you have a large order made. Most devices do not have a way to update them over the air or, at all, so if a bug is discovered months after the fact, then those devices essentially become e-waste if the bug is prolific enough. At that point the only thing that can be done is recalling them and either destroying/replacing them or trying to work with your partners to have them fix the issue on ones you’ve recalled.
So, there is a lot to developing custom IOT solutions, it’s not impossible but it does require some extra thought that normal software development just doesn’t have to deal with. Expect a few headaches at the very least but the reward is almost always worth it.
Three Hill Path Incorporated is dedicated to helping businesses of all sizes improve operations through development and implementation of software solutions. Sometimes an existing software package can be configured to meet a business’s needs, and sometimes it requires a custom solution to be developed from scratch. Three Hill Path Incorporated has the expertise and experience necessary to help you find your way from start to finish.
26047 Acero, Ste 100
Mission Viejo, CA 92691