Chris Biggs has pieced together some pretty cool tech creations, including a work-in-progress, half-scale version of K-9 from Doctor Who, his very own working CNC milling and engraving machine, racing bots and an evolving collection of home automation capabilities in his house! He’ll be speaking at this year’s YOW! Connected conference in Melbourne on the 5th-6th October, so we caught up with him to share his experiences with the IoT, robotics and integrating Slack into the mix!
Chris has had a range of pretty fascinating roles in the industry — from working on the communications equipment that enabled the creation of the public internet in the 90s, to working as an IT manager managing 50 engineers working on lottery ticket sales software. He’s now stepping back from all that to work on IoT projects and look for new challenges. I can’t wait to see what this guy achieves with spare time!
“The Internet of Things could be thought of as really lazy robots, they don’t move around much because they, the gestalt robot that pervades your life, are already everywhere.” – Chris Biggs
When it comes to aspirations of general purpose futuristic robots, Chris says we’ve instead gone the other way and ended up with a range of special purpose robots all around us — “We used to, collectively as a culture, dream of Rosie the Robot vacuuming the floor while Mrs Jetson is shopping for shoes by pushing buttons on a futuristic TV. What we got was the Roomba, and iPads and TVs that don’t even need buttons because they interact with our phones, file servers and YouTube.”
Chris believes the efforts that have gone towards the general purpose robots we hoped and dreamt of haven’t been wasted. So far we’ve already reaped the fruits of that labour in some ways —
“All our effort that went into the still-in-the-lab general purpose robot has come to fruition, but in a different way. We’ve gotten 3D printers, self-driving cars, unmanned aerial vehicles (quadcopters, and military killbots), and CNC laser and milling machines. I made a combination CNC milling and laser-engraving platform this year by ordering the raw parts and just screwing them together with only the barest plan in mind, it mills circuit boards, cuts plastic to make custom enclosures, and laser cuts stickers and signs.”
Chris comes with plenty of experience tinkering in these areas as a bit of a hobby, having built “three-wheeled robots for racing and maze running, a Frankenstein’s Monster made from a Roomba purely because I saw the chassis in a dumpster and rescued it, and a replica of “K-9” from the Doctor Who TV show because I’ve always wanted a robot to say “Affirmative, Master!” to me.” It’s a family experience, as Chris, his spouse, and his kids build something for fun, play with it for a few weeks and then “cannibalise it for the next idea”. Chris’ youngest daughter is experimenting with musical instruments right now at the age of eight!
Chris and his family are living the connected IoT life and his home definitely shows it! “The bathroom lights come on (gently) when you enter the darkened room, then fade down slowly over 10 minutes. The solar water heater logs its tank and panel temperatures so I know whether or not I’m using the gas booster. When you approach the front door from inside the house, a screen activates showing the outside temperature and an up-to-the-minute weather forecast. Lights around the house can be controlled from our phones. A lot of these little gadgets have been around as standalone items for a long time (this house had motion-activated security lights when I bought it 15 years ago) but what we can do now is easily connect all these things together, and, for example, have the driveway security lights come on as soon as I leave the front door.”
One project that Chris had aspired to was an internet-enabled letterbox — however, he ended up being beaten to the punch here! One developer put together a connected letterbox that “uses a single lithium cell and solar panel to keep it running forever with no power cord needed”.
He did complete his “holy grail” project in 2015 — “Open Sesame”, which allows his front door to “recognise him and open without having to drop his shopping bags to fumble for a key” using Blynk.
Slack has a range of third party integration hooks that are easy for developers to implement in their own projects and developers can get started for free in only a few minutes. In his talk at YOW! Connected, Chris is going to be exploring this very potential.
Chris points out that there are three types of integrations that you can do with Slack:
Chris himself has built devices using the first two of these. In terms of an inbound webhook, Chris put together a “toast notification” device, which “notifies a nominated person when movement is detected, using an inbound webhook”. It reminds Chris of when his toast is ready and also works as a doorbell. That’s pretty darn cool.
In terms of an outbound webhook, Chris has a “call to standup” button. When someone pushes the Big Red Switch, the system sends a configured Slack message to a certain channel using an inbound hook. It can also subscribe to outbound hooks, so if everyone has a standup button, they’ll all light up when someone presses their button.
He has also put together a “build status” display to show where his projects are at using LEDs. It uses an outbound webhook that looks for statements like “The build for project [name] is [colour]”. So, when someone posts onto Slack “The build for Project Icarus* is Green”, this device registers this and alters the display.
Chris has used the ESP8266 for a lot of his demos, I was interested to know why! It’s a microcontroller board similar to Arduino. Chris points out a philosophy that he aspires to — “The Unix Philosophy”. In this philosophy, “a tool should do one thing and do it well”. In fact, his twitter handle @unixbigot honours this principle. He explains,
“If am going to build a device that spends its whole lifetime monitoring a motion sensor and turning on a light when a car enters the driveway, then a $5 device that is efficient enough to be powered by an inexpensive USB charger is very compelling.”
The ESP8266 meets this compelling use case. It is cheap and simple to perform single tasks. He believes a Raspberry Pi is a more expensive and slightly wasteful approach to many IoT experiments that could be done with simpler setups. He makes a good point. Why not Arduino then? Chris says he’s fond of the Arduino platform but that it “didn’t make good sense for IoT because the Wi-Fi add-on shields for Arduino were quite expensive.”
Initially, the first generation of ESP8266 boards were sold as “Wi-Fi Modems” that would be controlled by another device like an Arduino. Soon enough, it became possible to run Arduino code directly on the ESP8266 processor itself. This has led to it becoming a platform in its own right. If you need absolute performance from your ESP8266, then Chris points out that you can write C++ code via the Arduino runtime for the ESP8266.
Another aspect of working with the ESP8266 involves the NodeMCU project. The NodeMCU project is an open-source firmware and development kit for IoT prototyping that uses the Lua runtime. Another of Chris’ principles is to “use the highest level tool possible”. Lua scripting provides a high-level interpreted language environment where you can type commands directly to the ESP8266 board.
“In the embedded world there’s a faction that says that “Real Engineers” only use C or Assembly language, and that more friendly tools are “toys”. This is rubbish. If you are writing high-level behaviours, use a high-level language.”
Chris is putting together an “IoT for absolute beginners” series on his blog. The first article in the series introduces the concepts and provides aspiring IoT developers what they’ll need to buy. For simple tasks like “when you push a button, something happens on the internet” or “when something happens on the internet, a light flashes”, Chris says you only need the NodeMCU device itself. That only costs around $5 — which is incredibly cheap to get started! He also recommends other items you can buy to extend things beyond that.
One piece of key advice Chris gives is to “look for a problem to solve”. He says that:
“My own designs have emerged from real frustrations, as a busy project manager I never stopped moving, and I would take a break to have tea and toast, and get into a conversation in the break room, or help out a co-worker, and return 20 minutes later to cold toast. So the first time I brought IoT into the workplace was when I made the “Slacker Toast” project as a whimsical way to cope with my own wandering attention.”
He believes that the home is a great place to start out with the Internet of Things — “it could be as simple as fitting a magnetic sensor to your front door, and sitting a small IoT device there. When you have that moment, halfway to work, that we all have where you think “Oh my god, I don’t remember shutting the front door this morning ” you can pull over, and use your phone to check if the door really is closed.” That’s definitely very true — most developers I know who’ve been tinkering with the IoT start with small things in their home. It’s where you often spend most of your free time, so it makes sense that it’s where you connect things up in fun ways!
He also recommends finding some friends to help you out by lending you parts, as online suppliers can take some time to send you bits and pieces. If you don’t know too many people, check out your local makerspace, hackerspace or meetup group.
Chris says that the best advice he has for aspiring tinkerers is to read the blogs of those who have come before you. A few examples of good resources he recommends include:
Chris shared some of his horror stories where things didn’t go quite to plan — eventually, with every developer, something is going to go wrong:
“Sooner or later you’re going to cross some wires or use the wrong voltage and fry something. The ESP8266 chips are a bit delicate, particularly compared to the Arduino boards which are very forgiving. Typically the thing that you break is whatever will take the longest time to replace. When I’m ordering parts I typically buy at least one more than I need if they’re not too expensive. I’ve accumulated quite a library of parts because I like to start work with only a general idea of how I will proceed, rather than planning out everything in advance. I call it Agile Hardware, which sounds better than Clueless.”
One last piece of advice which I definitely can identify with — try to stay focused. With building IoT devices, it’s incredibly easy to get distracted on another shiny (and only somewhat related) project. Chris’ K9 project definitely moved into completely unexpected territory:
“While working on my K9 project I needed a way to precisely monitor the speed of the drive motors, as these also steer the robot. I couldn’t find any optical encoder disks that were big enough, so I decided to make my own.”
Not only did he make his own… he went a step beyond that:
“Rather than just borrowing time on a laser cutter, I built my own CNC milling machine from scratch.”
He says that it paid off and he has been able to make many useful parts at home, but it was “a 9-month diversion down the CNC rabbit hole on my K9 project. It would have been better to trash the motors I had and buy some motors with built in encoders.”
Thank you to Chris for sharing his brilliant insights into the IoT and maker world! You can follow him on his Twitter at @unixbigot and keep up with his experiments over on his blog! Remember that YOW! Connected 2016 is happening in Melbourne on the 5th-6th October, so if you’ll be in the area — get yourself some tickets and come along! It’s always a fantastic event, I’ve spoken at it for three years running and every time has been an absolute blast. I hope that Chris brings along his K9 bot…
* A disclaimer note from Chris: “Something like 40% of software projects are codenamed Project Icarus, it’s the only name from Greek mythology that everyone knows. I totally made that statistic up, but to be fair 47% of *all* statistics are made up.” Thanks Chris for that clarification!