“There is no shame is being ambivalent about almost everything in your life.” – Louis Theroux
Hey, kids, let’s all make something! If your STEM summer camp counselor has got you soldering instead of swimming, chances are you’re building some sort of home-automation appliance. Which means you’re probably hacking hardware, slinging code, and testing network compatibility. Well, Silicon Labs has got just the campfire kit for you.
It’s called EFR32MG12P, but to its camp friends, it’s Mighty Gecko. It’s a nifty little microcontroller that’s readymade for wireless mesh networks in consumer gadgets. Ease of use is the name of the game here, so Mighty Gecko is just the ticket for self-starters in the IoT world.
Mesh networks are tricky things, but they’re popular for home-automation gadgets for a few reasons. First of all, their network range is about equal to the dimensions of your average home – not too far, not too short. Mesh networks also deal well with multiple, low-bandwidth clients. And finally, they’re (supposed to be) easier than Wi-Fi or Bluetooth for your average consumer to set up and operate.
But end-user simplicity is inversely proportional to engineering simplicity. In other words, it’s hard to make stuff idiot-proof. Plus, the home market is awash in competing networking standards, so which one do you pick? Consumers generally don’t know their Zigbee from their Z-Wave; they just buy the most brightly colored box sitting at eye level on the store shelves. So, it pays to be flexible rather than dogmatic about your networking protocol. Go with the flow and let the marketing department sort out where to sell it.
Mighty Gecko is one of those highly integrated devices with so much stuff that the ARM Cortex-M4 processor is almost an afterthought. Specifically, it’s got the whole 2.4-GHz radio section built in, along with the smarts to manage the necessary mesh protocols. Want to run Zigbee? Mighty Gecko’s got that covered. Changed your mind and want Thread instead? Load different software and you’re there. Someone asked for Bluetooth Low Energy (BLE)? No problem there, either. If that’s all too easy for you, there’s also a separate sub-GHz radio that’ll let you define your own proprietary network if you’re feeling creative.
Naturally, there’s an evaluation board/development kit available from Silicon Labs to get you started. It comes with three sets of everything, because what’s a mesh network without a mesh? You get three mainboards and three pairs of RF interface boards, along with the usual assortment of cables, software, and documentation. There’s a lot of downloading required, and perhaps a EULA or two to click through, depending on what options you choose to install. Set aside an hour.
Once all that’s behind you, your first three-way mesh network should be up and running. Silicon Labs provides a few demo apps that let you press a button on one of the three boards and watch it light an indicator on one of the others. Neat-o. There’s also a network-monitor app so you can eavesdrop on the airwaves to see what’s happening and, with luck, debug your own code when the time comes.
Mighty Gecko serves two purposes in the home-automation market. It’s a time-to-market play and it enables (indeed, it encourages) network neutrality. Mesh networks look simple on the surface, but they’re fiddly to build from scratch. Like any network, they require adherence to the standards to be interoperable with other vendors’ products, and that’s tough to do when you’re doing it for the first time. Leveraging readymade protocol software makes sense in this case, especially for a low-differentiation feature like a network connection. Save the creativity for the user interface.
Something I hadn’t considered before is the effect of battery power on meshed devices. Mesh networks happily support battery-powered devices, but they require some special handling. By design, mesh networks can “hop” data packets from one device to the next until they reach their destination, and this can sometimes follow a circuitous route. That means intermediate devices (nodes) need to be awake and alert in order to receive and forward packets. You can’t just go to sleep and ignore the radio traffic. Your meshed device is always on call, even if it’s not doing anything. That makes battery conservation trickier than with conventional star topologies.
Picking up a portable device and moving it around can also upset the mesh topology. Nearby nodes depend on your gadget to be where they last found it; physically relocating a node forces everyone to update their internal network maps. This is all defined by the relevant protocol specs (Zigbee, Thread, etc.) but it’s one more thing you’d be responsible for implementing without preconfigured software.
The other thing Mighty Gecko is good for is ambivalence. Sometimes you can’t anticipate what your market is gonna want. Is it Zigbee, Thread, Bluetooth, or something else? Maybe it changes by region, or by device type. Or maybe your market research isn’t ready yet, but you’d like to get started on development. Do the hard stuff now and finalize the network protocol toward the end. See you back at the campfire in time for marshmallows.