1

I would like to work on Weave but I noticed that Nest has open sourced Openthread instead. I would like to get my hands dirty with Openthread but if someone can answer these questions for me I would really appreciate that.

  1. Is one preferred over the other for certain applications. If so, what are they?
  2. Will devices running Openthread be directly compatible with ones running Weave?
  3. Will these devices be able to communicate with Android devices as is or is future support in Android being planned?
  4. What soc's or emulators can I test Openthread on?

Thanks in advance!

spitfire88
  • 1,596
  • 3
  • 19
  • 31

2 Answers2

9

First Question

Succinctly, in terms of the OSI model:

It is important to differentiate OpenThread and Thread. OpenThread is an open-source implementation of the Thread standard.

Both technologies are designed to be used (albeit in different ways) in residential settings on the following loose categories of embedded devices:

  • Embedded devices that need to be able to reliably communicate with each other under adverse conditions, like a power outage or a fire.
  • Battery-operated embedded devices that need to be able to last for many years without changing or recharging the battery.
  • Sensor networks for monitoring things like temperature, motion, humidity, etc.

Second Question

The implication of your question is that the two technologies are mutually exclusive, or that they somehow solve similar problems. As the cute naming implies, Thread and Weave are complementary technologies. Weave needs a network interface to communicate with other devices, and Thread provides one.

Thread is like Wi-Fi in this way. Wi-Fi doesn't define the protocols that run over it. For example, just because a smart thermostat and a smart light switch have Wi-Fi radios doesn't mean that they can communicate with each other. It will be a similar situation with devices that have Thread-compatible radios.

Third Question

While there is no particular reason why you would not be able to use Thread or Weave (or both!) to communicate with devices running Android (or any other operating system), the the devil is in the details: there is no one-size-fits-all solution.

That being said, one way is to use IPv6 routing: Thread is based on IPv6, so if you have a Thread border router, you can allow devices on a Wi-Fi network to directly communicate (via IPv6) with devices on the Thread network.

Fourth Question

In addition to the POSIX simulator, the CC2538 is now an officially supported hardware platform. Support for Dialog's SmartBond™ SoC family of chips is currently provided directly by Dialog.

1

it might help to first better understand Thread and what it is trying to solve. Designed for the home, Thread is an IPv6 networking protocol built on open standards for low-power 802.15.4 mesh networks that can easily and securely connect hundreds of devices to each other and the cloud. This is different than Weave, which is an application protocol. Multiple application protocols can be developed on top of Thread, including Nest Weave. The Thread Group has a nice technical overview of Thread on their site.

Now to your specific questions:

  1. You should use OpenThread if you're looking for an open source low-power, ipv6-based mesh networking protocol to build upon for your home connectivity application protocol
  2. That really depends on what you mean. Any application protocol built on Thread should be compatible at the network layer with OpenThread, assuming they are targeting compatible versions of Thread.
  3. One of the key design goals of Thread is being able to allow the Home Area Network to reliably communicate to the cloud through Border Routers. We demonstrated an Android app controlling a Thread end device from a Android. Here is a video.
  4. You can find a CLI simulator in the /examples folder. At the time of this writing, OpenThread is still rather new - however we expect to see various SoCs officially supported from our silicon launch partners. Watch the repo for more updates.
jonathanberi
  • 1,867
  • 1
  • 14
  • 24