High School Robotics Course using the Particle.io Mesh Devices Blog

I have been thinking about HA Mesh Networks for a long time, but since I have finished getting machine learning (tensorflowjs in javascript) working with the Photon and recently cryptocurrencies (IOTA) working with the Photon using javascript. I thought I would get back to the original point of this blog; Setting up and testing the Open Source Openthread Network with the Open Source Particle Mesh Products.

I don't really suggest everybody does this, so far I think I have broken 4 Argons (Lucky I have a class set!). I might be able to revive them but I am just using fresh ones at the moment. Even when they do work, they do not seem to like being flashed from the webIDE anymore. This is not for the faint of heart. Also openthread is a beast, not as smooth as working with Particle software.

Here are some animated gifs: If D0 is set HIGH it sends the Mesh.publish to every device once every 5 seconds.

If D6 is LOW the Argon connects to wifi (breathing cyan). If D6 is HIGH it disconnects wifi. (breathing green)

The middle Argon without wifi is communicating with the other Argons.

argons3

Not so easy with the Xenons. Took a while to get it working. Here an Argon sends a Mesh.publish to a Xenon. (Not that impressive since that is the normal behavior, but I thought I would show that this Argon without wifi can communicate with a Xenon.)

The last gif is of the nrf52840 usb dongle connected to the linux border router. This can scan for the connected particle mesh devices but I have no idea how to get them to communicate. Perhaps @rickkas7 has some suggestions.

nrf52840-3

No idea if this has any outside connectivity, but I am really just interested in the distance Argons can be apart and still send information. That is what I will hopefully be testing.

I am a bit stuck getting the nrf52840 usb dongle connected to my linux border router to talk to the argons, but they do seem connected.

I have a function call (where myCode is an integer that determines the number of D7 flashes myCode = 3)

Mesh.publish("mySendToAll", String(myCode));

which I tried

udp send ff02::1 2222 {"command":"mySendToAll","data":"3"}

which did not work. Any suggestions @ScruffR or @peekay123

I have only been working on this for around a week, I have just been trying tons of things. I don't even consider myself a C++ programmer. Just trying stuff and seeing what works. Most of what I did was summarized on this OpenThread page Developing with OpenThread APIs My code is a mess, even the indenting is really bad. Hopefully I can work out the multitude of bugs and post more information soon.

1 Like