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

What a great idea for a student project. Give them some mesh and have them make their own parabolic reflector with toothpick proof of the Focal Point.

Thanks @zonker for all the likes. Biggest challenge coming up:

I have bought several (on back order) OpenThread USB dongles and now need to get them going with the Border Router and hook them up to the Particle Mesh devices. Probably a big waste of money as the mesh devices will not play nicely but needs to be attempted. Be really nice, but not likely, if Particle released an OpenThread version of their Mesh firmware.

Just found this quote I read a while back but could not find the link:

The Thread devices in this Codelab are a specific kind of Full Thread Device (FTD) called a Router Eligible End Device (REED). This means they can function as either a Router or End Device, and can promote themselves from an End Device to a Router. (I think this would be equivalent to an Argon Gateway)

Thread can support up to 32 Routers, but tries to keep the number of Routers between 16 and 23. If a REED attaches as an End Device (child) and the number of Routers is below 16, after a random time period within two minutes it automatically promotes itself to a Router.


I think this means if you have more than 23 Argons in a thread, any more Argons will probably downgrade from gateways to the equivalent of a Xenon as endpoints, unless for some reason the network senses it needs more Argon gateways.

Couple of things happening:

@Zonker has a nice summary page of his Particle process at arduinoprojectz [licensed for non-commercial use only] / Particle Mesh Dashboard

My Fanstel USB Thread Dongles arrived, still need to wait for the Nordic and Seeedstudio ones

On ubuntu I can see these dongles using

ls /dev/ttyA*

but can’t seem to move the NCP image to the dongle.

If I load the dongle on my windows machine it auto enters DFU mode, but I am not sure which software to use with it. Bit worried that the Dongle has no buttons to push so not sure how to get it back to DFU mode if I install anything on it.

Nordic has some fancy software and Apps that might work with it. The nrftoolbox for android

and and outdatedSDK for windows

Looks like Nordic is moving away from OpenThread.

Lots to learn as I dig a bit deeper.

Found this interesting bit of information about how to eventually use some of the OpenThread C++ commands with Particle Mesh devices but have a fair bit to learn about how to do it. Once again a bit confused about how to move programs from the computer to the devices.

Wondering if anyone has messed around with cloud virtual linux boxes such as: https://repl.it or https://glitch.com for working on either the Particle/firmware github or the Openthread github . I teach using http://c9.io but it needs a creditcard to get started. (It costs $1 per month to assign all my students to have logins to a ubuntu virtual machine. Not sure if it has fully been absorbed by AWS, but the community does not seem very active lately.)

These virtual machines might work with an Over The Air type Mesh device installation but will not work with anything that needs physical connections, however often fun just to see how an installation works using the virtual box before trying it on your own ubuntu computer.

Most of the information about the OpenThread Border Router will be at this thread, but I will probably post summaries here.

1 Like

After much frustration things are finally looking up.

Check out the topic Local Build Argon using po-util with OpenThread

1 Like

Also today got po-util kind of working on Windows using Bash on Windows WSL Windows Subsystem for Linux

1 Like

Started a couple of more threads:

So on Monday, Feb 4th, 2019 I will need to start my 4th Semester teaching High School Robotics, sadly without using any Particle Mesh devices. This is not without effort on my part, I have spent an intensive month trying to connect Mesh devices to an Openthread network, also having wasted several hundred school dollars on 15 Argons and 15 Xenons and $200 of my own funds on nrf52840 USB Dongles (Can’t use Pro-D funds for hardware :frowning_face: ).

All because, when it was first introduced, I thought the Particle Mesh would solve some daily random instability my Photons experience in a busy school wifi environment. I thought the Mesh connection redundancy would allow the wifi strong devices to support the wifi weak devices.

I am disappointed with Particles’ lack-luster interest in connecting their devices to a standard OpenThread network, as well as their non-response on setting up an education plan for when the Mesh is finally working. Presently my 15 Argon mesh would cost $200 per month which turns out to $2000.00 per school year so that I can teach students about the Particle devices instead of teaching about Arduinos!

Charging $2000.00 per school year to an education facility is a complete lack of understanding of education funding and a disgusting cash-grab by Particle. Note: Cloud9 charges me $1.00 per month for an education account and most other sites are completely free. If traffic is a concern I could probably setup my own cloud version.

This situation is not all without some positives:

  1. I learnt about po-util.com which is very good for programming any of the Particle devices.
  2. I learnt how to make true openthread networks, using the Border-Router, the Client and wpantund which runs wpanctl
  3. I can use openthread software to build and flash the CTL or NCP firmware to nrf52840 USB Dongles
  4. I learnt all about secured OpenThread devices and how important they are for network security but how difficult they are to program using nrfutil
  5. I learnt about “nrf-Connect for Desktop” and how good it is for flashing code to the USB Dongles
  6. I have done some great Argon Hacking using the extern C function that I am not completely ready to share yet.
  7. I have done some preliminary Particle-Openthread networking, but it needs work.
  8. I learnt that Particle is using there own experimental cloud version of OpenThread, instead of using a Border-Router for Thread Commissioning and the Mesh Internet Gateway.
  9. I can stop carrying 3 laptops home each day, setting up Thread networks at both home and school.
  10. I learnt that OpenThread is not really that hard to work with, it is just really confusing to get started as old examples don’t help with the new products. It could use a few more example webpages and it’s own community not just the openthread-users google group
  11. I made this really ugly, but useful OpenThread Installation Webpage
  12. I get to start exercising and not waking up at 5 am with solutions to this issue :smiley:
  13. I also get to use the amazing Photon again :smiley:
  14. I don’t have to do any prep, as my course is online here, I just add a bit about electric circuit components, the physics of current and voltage and lots of connecting circuits together. The basic course is: students draw circuits including connections to the Photon and then they make it work and take a video of it working, then repeat.
  15. It was kind of fun to have something really hard to work on.

Once again thanks to the Particle Community for all their positive support and useful suggestions. I don’t give up well, but I have a course to teach and need to put this aside for a bit.


Sorry to hear you won’t be able to teach the new class with Mesh, hopefully you’ll be able to by the time next semester comes around.

Wanted to chime in on some points, to give my $0.02.

I don’t think it’s a lack of interest, but rather one of priorities. I can understand they choose to make their own setup work well before they attempt to work on compatibility with other systems. At the moment there are a lot of basic functionalities that could be added that would serve more people better than compatibility with non-widespread OpenThread. You’re the only one I know of that makes it a priority to get that working whereas there are a bunch more people in dire need of sleep modes and Bluetooth for example. I’m not saying OpenThread compatibility is a bad thing, but there’s only so much that can be done at once.

I know pricing is a hot topic, but I haven’t been able to find where you got the $200/month/15 Argon from, would you mind pointing me towards those resources?
Most of the ‘special’ s pricing schemes fall under a “contact us” option, where possibilities can be discussed with Particle directly. Furthermore there’s the Particle for Good program to which you can apply: https://www.particle.io/for-good/

That might be part of where the misunderstandings stem from. To summarize in simple terms:“If you’re willing to set up your own server to handle this, then why haven’t you already?”. Part of the reason why not will most likely lie in the complexity of researching, designing, building, maintaining, upgrading, hosting, and securing of a setup like that. And that’s just the cloud side of things.
As you’ve noticed, setting up an OpenThread network in and of itself isn’t a walk in the park either. Hauling three laptops, a variety of dongles, programmers and whatnot around doesn’t sound all too easy, especially is you want to use that as a teaching tool.

That’s also where Particle’s value comes in: they make it easy to do. You can program a OpenThread Meshed endnode from anywhere in the world from your browser. I don’t see that happening so easily with a DIY setup. Not saying it can’t be done, but if you take into account the time/effort required, you’ll soon soar over that budget. I’m not sure how much you evaluate your time to be worth, but “an intensive month” worth of time, along with the required hardware and other resources needed will soon approximate what it would’ve costed to go with Particle entirely.

No criticism in general, just trying to put into perspective what it is Particle offers. That the prices are up for debate is fair enough as well, as they’ve changed in the past too, after review.
Though the above doesn’t offer a resolution of any kind, I do hope it makes you consider their point of view as well (at least, that’s my take on their point of view). In the end, Particle has to charge for their services if they are to make a living wage and want to be able to keep growing improving.

Like I mentioned above, hopefully the circumstances have improved by the time next semester comes around and you’ll be able to make full use of Mesh in your curriculum.


@Moors7, could people who don’t work for Particle stop replying in Particles’ defense. I get it, you really like the Particle product, I do too. Particle has employees (who aren’t involved with fixing the mesh issues) who are paid to deal with this kind of stuff, but they never reply.

I could have got the very confusing pricing page incorrect, but a few months back, it looked like each router was $9.99 USD per month. Which today is $13.13. CDN. Multiply by 15 Argons you get $196.95 CDN per month times that by 10 teaching months a year, I get $1969.50 CDN. I still don’t know if you pay for Cloud and Mesh or if Mesh costs cover all the Cloud costs.

I have posted 100’s of times on this forum, I have emailed Particle, you would think a Particle employee would reach out and perhaps talk to me one-on-one about my concerns.

Why do companies give free or cheap education pricing?

  1. Companies really like that Teachers can promote their product as free advertising while teaching a new generation to use their product.
  2. Companies try to reduce the negative publicity of charging schools regular prices.

Particle has never really shown much interest in what I do in the classroom so option #2 is my only choice.


Most of the Particle software is Open Source except for the Particle Cloud that controls everything. I am fairly sure I can’t setup my own Particle Cloud, although if that would solve all education costs I would definitely work with someone from Particle on that solution.



Check out this link:
Is An End-Product Based On OpenThread Automatically Thread-Certified?

No. If a company uses OpenThread to build a product, they need to be a member of the Thread Group in order to gain the Intellectual Property (IP) rights to ship Thread products and to complete product certification, which ensures that products using Thread work together effortlessly and securely right out of the box.

As far as I can tell Particle has a licensing obligation to make their thread certified product work with OpenThread. I am not a lawyer, I can’t even get the pricing correct so I may be wrong with this as well, but from an Advertising point of view

it sure looks like, on that blog, that the Particle devices work seamlessly with Google Nests OpenThread.

Yeh, who puts legal obligations as a priority. :grinning:



In Closing:

If Particle allowed us hobbyists to connect the devices to OpenThread, we might be able to help with some of their connections issues. We possibly could show Particle which problems are to do with the Mesh Hardware and which problems are to do with their Experimental Cloud Border Router. If hobbyists can get Particle devices working well on OpenThread using and purchasing the Particle Mesh hardware, why is that a problem?

Has anyone ever considered that I am trying to help Particle!

Please, don’t reply unless you are a Particle employee. I need to plan for next semester which starts on Monday and I have already wasted much to much time.


I know you didn’t want responses from non-employees, buuuut…

I find the pricing info a bit confusing, myself. But I think for your situation, you aren’t planning to build “high-availability” networks, you just want students to have 1 Argon + 1 Xenon, each as their own network, right? In that situation, your first 10 networks are free, so you only need to worry about the other 5 networks, which are only US$2.99 each, so about US$15/month total, or about US$180/year (or about CA$236). That’s still a lot more than “free” but far from from $2000.

Keep in mind that these are “Community” Forums. I always appreciate when official Particle employees respond to questions here, but I don’t generally expect them to poke into every forum thread, no matter how much attention it’s getting. If I were you, I would probably use the official support request form, limiting my query to one specific topic, like asking if there was any chance of getting an educator discount of some sort. If I didn’t get a response after a few days, I might send a private direct message to a Particle employee here in the forums, asking if there was a better way to reach someone who could answer your questions.

Lastly, I don’t know what Particle’s future plans are regarding interoperability with general OpenThread meshes. It doesn’t seem like it would fit in with their current business model for Mesh + Particle Cloud. But perhaps they might come out with an alternative firmware that lets us use OpenThread, but doesn’t include Particle Cloud functionality? Again, don’t know, just theorizing a possibility. But it’s still early days in their development of the Mesh features, so I think we’ll just have to wait and see what happens.


Nooo. The micro networks are worse than just using a Photon. Now you have 2 to 10 devices using one wifi gateway. One of the strengths of a mesh network is multiple wifi gateways supporting each other. If one shuts down the others support it. A mesh network wants several wifi points. The micro networks are not useful to me.

1 Like

Okay, I misunderstood your student use-case, then. Sorry about that.


Hey there @rocksetta – adding the “Particle employee” perspective to the mix here. Before I get started, a couple notes on community discourse that apply here as well as every other thread on our community:

As @dougal pointed out, these are community forums. If this were a blog written on your own web properties, you would have an ability to control who responds to your public posts. If you want to have a private conversation with someone from the team, tagging us (using the @ symbol, then our community handle), is the best way to get our attention.

Although we can’t be in every thread, there are plenty of us at Particle whose job it is to listen and support our developer customers. Not sure who to tag? Consider

The first rule of etiquette in these forums that applies to every single member is the following:

Several posts in this thread are flirting with that line. To everyone – a quick reminder that there is no excuse for rudeness here. Period.


Since we’ve launched Mesh, I have certainly noticed your increased engagement with the product and with the forums. Reading your posts, it sounds like there you had some specific educational use cases in mind for Mesh that you’re struggling to realize with the current state of the product and pricing.

Thank you for your feedback and participation – our goal is help our customers be successful with our products, and the best way for us to do so is to learn directly from your experiences. As others have mentioned, we have a couple of programs that cater to educators using Particle in the classroom, including our Particle for Good program as well as a non-public Educator program.

I’ll send you a PM to find a time where we can chat about your experience with Mesh, your goals as an educator, and the ways that Particle can (as well as cannot) commit to addressing your areas of constructive feedback.

Lastly, to clarify and address a legal issue that you raised,

Particle is a member of the Thread Group in order to gain IP rights to ship products built on Thread. Particle leverages OpenThread, an open source implementation of the Thread standard, to power Particle Mesh, the mesh networking solution for IoT products built on Particle.

The purpose of the Thread certification is to ensure that end products that implement Thread have done so correctly such that interoperability between products is possible, though it is by no means mandatory in order to receive IP rights.

For context, Thread was created by Nest as a mesh networking technology for the connected home, where interoperability between off-the-shelf products from a variety of hardware manufacturers might be valuable to the end consumer. In other words, certification it is there to protect end customers from crappy implementations of Thread (on products which bear the Thread logo) that prevent their smart home from functioning successfully.


Thanks @Will for the reply. The list below is very helpful.

As I find time in my new semester I will get in touch with the appropriate people, probably starting with you.

Once again thank you for making contact.
From Jeremy Ellis


Just an update:

I will try to have a chat with @will on Friday.

I have started my 5th semester teaching Robotics using the Particle.io Photon, and it has been horrible. Nothing to do with the Photon, it is wonderful, but to do with Wifi connectivity of our schools newly upgraded Enterprise 2 Wifi system. Last year, I would have poor connections about once a week, and then only for a few Photons. This year I have only 3 photons getting stable connections and the rest connecting for about 5 minutes only every 20 minutes. Needless to say it has been a horrible experience. Many calls to the techs, who can’t, don’t know or won’t, make the needed changes.

Solution: Use 2 laptops with my enterprise 2 teacher login, setup Ethernet to Wifi hotspots from the laptops and then my Photons are golden. Unfortunate it took several wasted teaching weeks to find that solution.

Anyone who has been following this thread probably knows that I am trying to connect Multiple Particle Mesh devices, with websockets for fast internet connections and Cell Phone Machine Learning using Tensorflowjs in the browser for environmental analysis and decision making. I will have to wait until next semester to use the mesh networks but as far as the Machine Learning goes I just generated my ~50th Teaching example at:


Back to the Mesh networks, I have been out of the loop for about 6 weeks.

  1. Has there been any update on the ability for developers to use multiple Argons in one network (High Availability Networks)?

  2. Has anyone been able to get a few Argon’s working with OpenThread?

I saw @RWB @overcode link at Circuit Python on Argon? for connecting the nrf52840-dongle to CircuitPython which is really cool, but I work with Javascript not Python, plus as @rickkas7 points out, this solution totally obliterates the Particle Cloud and all firmware etc.

I just want to use multiple Argons with OpenThread or a Particle solution without a monthly cost like I thought I was purchasing for my school an entire year ago.

I was able to get my photons working with WPA2 Enterprise (eduroam) at my university. I needed to use external antennas though.

1 Like

Nathan I conducted 2 tests with eduroam at UCL London and Imperial College London. Both failed. Both use Cisco APs and I suspect that if you were successful at using WPA2 Enterprise this is because you were on PEAP v0 and not PEAPv1. Cisco standard?

The lack of support for WPA2 Enterprise security except on what must be a very narrow set of hardware and RADIUS servers must be addressed by Particle soonest.

I’m not sure exactly. I just tried setting up WPA2 again and it worked successfully.

1 Like

Thanks for replying. Lucky man! Which Device OS are you using for this? I have a test AP setup per the eduroam specification and I get the following. It flashes green and then returns to flashing blue. I can log into this AP using my Windows 10 laptop but not the iMac?

The photon is running v1.0.1.

Here is the testing app I’ve been using by the way:

Thanks for the reply’s. As I said I have solved my problem with Laptop hotspots, but I agree the issue should be solved. I just tried 5 Photons with external antennaes with no improvement.

I will need to try your listed setups. I get AES but have not tried EAP type PEAP/MSCHAPV2. will try that.

I know Particle has some support for Enterprise since this code is available in the documents

at https://docs.particle.io/reference/device-os/firmware/photon/#wificredentials-class

// EXAMPLE - setting multiple root certificates
WiFiCredentials credentials;
credentials.setClientCertificate("-----BEGIN CERTIFICATE-----\r\n" \
                                 /* ... */ \
                                 "-----END CERTIFICATE-----\r\n"
                                 "-----BEGIN CERTIFICATE-----\r\n" \
                                 /* ... */ \
                                 "-----END CERTIFICATE-----\r\n\r\n"

but I havn’t asked my techs if they will generate some certificates for me. (Actually a little scared of asking the techs :smirk: as you can imagine I am probably not their favorite teacher.)

1 Like