A transition from something that works on our lab benches to a viable IOT product can be a very tricky thing.
Understanding the gaps between conventional and IOT capabilities can lead the way. So now a days, even modest systems have processors with multiple cores running over 1GHz think of your phone in your pocket a cheap £20 phone from a super market is clocking 1.2Ghz. This is staggeringly 100,000 times faster than the computer used in the Apollo 11 mission yeah you phone is more powerful than the computer that put people on the moon. As computer resources have become cheaper than developers, our priorities changed, we have all done it add RAM or scale up an Amazon server as its cheaper than to optimizing code.
Today, with the internet of things reaching into every corner of our life, these devices most commonly used for IoT development are tiny, they are low powered and have limited batteries. So we are all having to relearn many performance-enhancing techniques to deliver the form-factor and connectivity needed to succeed in the IoT business. We have to be mindful that the latest and greatest tools that work smoothly on a development machine will most likely not run well in these constrained environments.
We have seen an explosion of IoT hardware and it comes in a wide variety of formats. Some of the most common platforms are Arduino, and Raspberry Pi.
The Arduino is a micro-controller. It runs very simple code, usually written in C, that loops over and over. It has very limited computational power (a 16MHz CPU and 32kB available to flash your code). You cannot run external software on it since there’s no operation system. It can only input or output for a few 3-5V pins. It has a serial port to receive or transmit information to an external machine, and you can connect a Bluetooth or a Wifi chip to enable wireless communication. This makes it perfect for running small self-contained devices like a fancy clock using a bunch of LEDs for the display, but don’t expect to be able to do any sort of calculations or machine learning!
On the other hand, the Raspberry Pi is a full miniaturized computer. It comes in many different formats ranging from a 700MHz CPU for the model “A” to a quad-core 1.2 GHz 64 bit processor for the Pi 3. They run a full operating system and you can attach various USB peripherals such as a keyboard, mouse or camera. Because these models all have an external display port, they are often used as a media centre. It’s full featured but small, so you can easily integrate it into an IoT project.
These two are completely different beasts, and you will not architect your hardware and software the same way for all of them, choosing the right one for your project is a critical first step.
With all the devices, all the YouTube videos and all the support from our engineers, it is fairly easy for you to create a quick prototype in a few hours. But that prototype is just a proof of concept and shouldn’t be seen as a proof of product. Your prototype is going to take a lot of planning, effort, and expertise to get to a place where it can be commercialised many companies don’t have in-house, but this is where Labs can help. You will be faced with a host of decisions about hardware, which in turn will drive decisions about software.
Think of your IoT initiative is a bit like the Café or Bakery business, where cost control is critical for success and you will be very much ingredient portioning. The hardware you used in your prototype will change in your final product for cost reasons, you might have started off with a Raspberry Pi for a prototype because they are fast and easy to get started with, but they are relatively expensive and might be more powerful than you need for a smart Kettle. Differences in odd components that seem trivial a penny here and there add up quickly when you get into full production.