There are four fundamental factors that allowed IoT to change from very limited use-cases to the broader consumption that we have today:
- Low power and small-scale microcontrollers
- Electronically erasable programmable read-only memory
- Ease of development
- Low manufacturing cost.
Low power and small-scale microcontrollers
Think of a microcontroller as a self-contained integrated circuit (IC), with a processor, memory, and interfaces to the outside. The picture to the right of this blog shows a giant circuit board with discrete components for everything; display, memory, input/output (I/O) connections, serial communications, clock signal, and the list goes on and on.
The issue was that you needed a bunch of physical connections, or traces on the circuit board to connect all these components together. When you can put it all on a single chip you save not only real estate, but decrease the amount of power required to run the system – you guessed it, needle-mover!
Electronically erasable programmable read-only memory
There was one significant development that really made this possible; electronically erasable programmable read-only memory (EEPROM). This is where the program code is stored so when the system powers up, it has instructions on what to do. Back in the olden days, we started with programmable read-only memory (PROM) ICs. Write your code, burn it to PROM with a PROM writer, then carefully place the PROM ICs into sockets on the circuit board and test the system. Oops, you made a mistake, throw the PROMs away and grab a new one or one(s) and start over.
As you can see, not only is this time consuming, it can get expensive. Along comes erasable programmable read-only memory (EPROM), this saved cost since you didn’t have to throw the chips away, but you had to place them in ultraviolet light for 20 or more minutes to erase them. EEPROM can be electronically erased in an instant without having to remove them from the board and new code can be downloaded and tested for rapid prototyping – another needle-mover!
Ease of development
Developing around old silicone was a real challenge! Writing compilers, developing interfaces, burning code to PROMs, writing code in assembly, troubleshooting with digital analyzers, reading code in binary and hexadecimal. Imagine the number of things that can go wrong with this picture – and certainly did – oh, and don’t forget the carbon based (human) factor.
Many of the software development kits (SDK) today allow you to develop code, troubleshoot, compile, and write your code directly to the microcontroller. In addition, there are a plethora of libraries you can download for free from places like GitHub or share your code to help out the community.
One of my favorite development platforms is around the Arduino Integrated Development Environment (IDE) (www.arduino.cc). There is a bunch of supported hardware, including the ESP8266 with Wireless WiFi Module. This thing is the size of a postage stamp. What I really like about the Arduino IDE, is that I can program in my favorite language “C”. If you are looking at testing your hand in developing an IoT project, this is a great place to start. Ease of development, access to libraries, simulators, simple debugging – another needle-mover!
Lower manufacturing costs
Manufacturing costs for small run 8.5×11 circuit boards in the late 80s were thousands of dollars and these were nothing sophisticated; 10-mil traces, 10-mil spacing, and 4 layers. I recently worked on a personal IoT project and had 25 each, 3.5 inch square, 4 layer boards made for a couple hundred bucks. This is a far cry from spending $150 and a week to etch a small two-sided circuit board on your own. Plus, now the manufacturing and assembly process is almost completely automated. This has dramatically reduced the cost of populated circuit boards – needle-mover!
What’s next in IoT
There’s no doubt that we will continue to see more and more devices connected to the Internet. Just because we “may” have more devices than IPv6 addresses (kidding), it doesn’t mean this will change our lives for the better. We will experience the art of the possible when these devices, or system of devices, or systems of systems begin to interact and use intelligence or artificial intelligence to make decisions.
On a regular day, you are awakened in time for your daily workout based on travel time to your first appointment and in time to take the kids to school. What if you didn’t rest well, have a cough, fever, or too much to drink? The determination of when to get up can be modified based on a myriad of factors. Your beverage of choice and breakfast awaits, transportation shows up at your door (or you are beamed directly – maybe a little far reaching) and your off. Meeting preparation is done in transit, you arrive on time and prepared. This technology will allow us to maximize our time and improve our quality of life.
The technology to do all this is available today, but we need to address the security and privacy concerns as devices and systems communicate. Protecting end-devices is difficult enough, with the capabilities that I described, we will all need to work together to protect these critical systems and the sensitive information they contain.
By Ray Blair
Published with permission from blogs.cisco.com.