It hasn’t been 24 hours since Project CHIP became Matter, and the Zigbee Alliance became the Connectivity Standards Alliance, and the full spec won’t be available until fall, but there’s already plenty of information about the new protocol if you know where to look.
By looking at the project’s GitHub code repository, I learned quite a bit, such as the different ways Matter devices can be provisioned, how to create a Thread Border router with a PC, and even how to get a basic Android app that can send test Thread commands. Oh, and there’s some interesting information on the use of Zephyr, an open-source RTOS, or real-time operating system for Matter devices.
Initial and future device provisioning
One interesting tidbit that the CSA didn’t detail (unless I missed it!) is the device provisioning approach in the future. Matter devices will of course support Bluetooth for their initial setup connection to WiFi if supported but also allow for near-field communications, QR codes, and Thread.
That’s ironic since earlier this week, we just wrote about how Thread won’t immediately give Bluetooth the smart home boot. Bluetooth is great for provisioning connected devices. But we also noted that NFC and other methods are also useful.
It turns out in the code repository there’s already quite of bit of progress with this alternative provisioning approach, complete with a basic flow diagram:
You can build and test your own Thread Border Router today
In fact, this entire page in the code repository shows not just how provisioning will work, but also how to test provisioning with certain, readily available chips and boards. There’s even a link to create your own Thread Border Router on a desktop computer, although you do need to add a radio chip for Thread support for around $50.
Oh, there’s a nice Android-based app called the CHIPTool to provision devices and even send basic commands such as on or off too.
And if you’re a real DIY kind of person, you can even set up a Thread Border Router on a Raspberry Pi 3 or 4, again with the addition of a supported radio chip.
Zephyr makes an appearance
Another aspect I stumbled upon in the code repository has to do with the Zephyr RTOS. This stood out to me because I came across Zephyr recently in my other online activities. I run the AboutChromebooks site covering Chromebooks and Chrome OS and often look at Google’s Chromium code repository to see what features the company is working on. And that’s where I saw Zephyr last week.
Now it’s possible that Google is looking to standardize something on the boards that run inside Chromebooks using Zephyr. But it also makes sense that Google’s Zephyr effort is to power future smart devices. And if it does, Matter would essentially be supported via Bluetooth and Thread as shown by this overview image from the Matter repository.
Warning: JSON 101 ahead!
Keep in mind that CSA has said always said that Matter is IP-based and a standard way for devices to communicate with each other. That sounds good, but how does that happen?
Think of JSON as a language that allows computing devices to speak to each other about data in a standard way. That data consists of key-value pairs. A key represents some attribute and the value represents some relevant value.
In the example code for a Matter device, for example, you can view the JSON to see what commands and data a client, or user, of the device, can send. These are keys to Matter devices. And the values are different device commands.
Just for scenes, there are seven commands ranging from setting a scene, recalling a scene, and viewing which devices are members of the scene.
That same example code shows the JSON for requesting or getting door lock data. Attributes include the door lock type, the door’s current state (locked or unlocked), automatic relock time, enable one-touch locking, and a wrong code entry limit to name a few.
Those could be from a smart display, a voice assistant, or a client app. It doesn’t matter because the underlying “language” used by Matter devices doesn’t vary by a user interface. That’s huge for both device makers and developers in this space. And it’s how connected devices won’t be tied to a specific ecosystem.
You should care about that because it means Matter devices will work with Amazon Alexa, Apple HomeKit, Google Assistant, and the Samsung SmartThings platforms thanks to this standard device-to-device “language.”
I’ve only been scanning the Matter code for a few hours, but there’s plenty more in there to scour through to glean a better understanding of exactly how the CSA will deliver on its initial promise. We’ll know more over time as devices start to appear, of course. But I just can’t wait.
Joe Nickence says
Awesome find! Good story.
For info, it’s been few months already since I started an open hardware, open source sensor tag projec
that supports Thread, based on Zephyr, and hopefully Matter later on. Let me know if you have any question I’d provide support
Andrew Jones says
There is some interesting information in their projects previous video too, Matter will use the Blockchain to verify a device is real, and things like the instruction manual and the OTA url.https://www.youtube.com/watch?v=Dqy6ASRgWmI the blockchain bit is mentioned in the Q&A session.
Grant Erickson says
I believe JSON may be used for input for machine-parsed schema and code-generation for the dotdot / ZCL interaction / data model code. I believe most of the actual over-the-wire encoding uses tag-length-value: CHIPTLV (see https://github.com/project-chip/connectedhomeip/blob/master/src/lib/core/CHIPTLV.h) which is compact and efficient and losslessly converts to/from JSON. It’s a precursor to but very similar to IETF CBOR.
Jonathan Hui says
Adding a Thread (IEEE 802.15.4) radio to a Raspberry Pi can be done for $10: https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52840-Dongle
Don Johnson says
It’s funny over the years setting up routers the router manufacturer’s always always said if you have to many devices you could encounter interference on some devices. 2021: connect 100’s of WiFi devices. Don’t forget to keep lots of batteries in the drawer for the devices that cannot have wired power. I used 150+ Zwave devices in my house, I hope I don’t out live them.