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

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

The AP system log shows the device associated and then disassociated after 7 seconds - tries 3 times, then gives up. I have not had the explanation for this yet. Behaved the same way at 2 university sites.

Mar 13 16:27:25 kernel: e0:4f:43:36:96:1e had associated successfully
Mar 13 16:27:25 kernel: [WLAN] EAPOL process start.^M
Mar 13 16:27:32 kernel: e0:4f:43:36:96:1e had disassociated.
Mar 13 16:27:32 kernel: [del_web_portal_client], but hash_id:[15] is empty!
Mar 13 16:27:33 kernel: e0:4f:43:36:96:1e had associated successfully
Mar 13 16:27:33 kernel: [WLAN] EAPOL process start.^M
Mar 13 16:27:39 kernel: e0:4f:43:36:96:1e had disassociated.
Mar 13 16:27:39 kernel: [del_web_portal_client], but hash_id:[15] is empty!
Mar 13 16:27:40 kernel: e0:4f:43:36:96:1e had associated successfully
Mar 13 16:27:40 kernel: [WLAN] EAPOL process start.^M
Mar 13 16:27:47 kernel: e0:4f:43:36:96:1e had disassociated.
Mar 13 16:27:47 kernel: [del_web_portal_client], but hash_id:[15] is empty!

1 Like

By the way I use this little bit of code to see all 5 of the Photon SSIDS

I have commented out a few ways to set the WIFI. Since I set all 5 SSIDS the most important thing is how many SSIDs were stored.

// By Jeremy Ellis
// Shows the first 4 letters of which Wifi SSID's have been setup on your photon.
// Does not show passwords.
// Also shows the connected SSID with Quality and signal strenth percent

STARTUP(WiFi.selectAntenna(ANT_AUTO)); // continually switches at high speed between antennas
//STARTUP(WiFi.selectAntenna(ANT_INTERNAL)); // selects the CHIP antenna
//STARTUP(WiFi.selectAntenna(ANT_EXTERNAL)); // selects the u.FL antenna

// global variables
WiFiAccessPoint ap[5];
int found;  
void setup() {
    pinMode(D7, OUTPUT);
    //  WiFi.clearCredentials();
    // I set up all possible SSIDS in one go, 5 for the Photon.
    //  WiFi.setCredentials("mySSID", "myPassword");   // Wifi needs to be active, this works best    
    // WiFi.setCredentials("mySSID", "myPassword", WPA2, WLAN_CIPHER_AES_TKIP);  // This works for my cell phone hotspot
    // WiFi.setCredentials("mySSID", "myPassword", WPA2, WLAN_CIPHER_AES);    // This does not seem to help
    found = WiFi.getCredentials(ap, 5);


void loop() {
    digitalWrite(D7, 1);
    WiFiSignal sig = WiFi.RSSI(); 
    Particle.publish( "*: " + String(WiFi.SSID()).remove(9)+", Q:"+String(sig.getQuality(),0)+ "%, S:"+String(sig.getStrength(),0)+"%","F:" + String(found) +", "+ String(ap[0].ssid).remove(4)+", "+String(ap[1].ssid).remove(4)+", "+String(ap[2].ssid).remove(4)+", "+String(ap[3].ssid).remove(4)+", "+String(ap[4].ssid).remove(4), 60, PRIVATE);
    digitalWrite(D7, 0);
    delay(30000);  // wait 30 seconds

So it shows the active SSID with Quality and Strength. Then shows how many SSIDs are stored and the first 4 characters of the SSID names. In order, so the first one will be removed if another SSID is entered.

This is going to sound really nit-picky, but adding that many Strings together when a char array and a single snprintf would work hurts my eyes a little. :wink:

String::format would work as well, I think.


Getting off topic, 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 (HA = High Availability Networks)? Anyone want to comment on this? Are they working yet? Where are we at with these, has anyone made an HA as an example?

  2. Has anyone been able to get a few Argon’s working with OpenThread? Until the HA networks are perfected, I really think OpenThread is a viable option (Not an easy option, working with Openthread is a huge pain, but definitely something to use our hardware on.)

No and No.


I would perhaps be good to split this off into a separate thread… I’ve been thinking about this issue as well 'cause I want more flexibility than Particle is interested in offering and I don’t care for their cloud service.

Aside from ranting :slight_smile: my plan is to hack the firmware so I can set-up an argon or boron as if it were a xenon, while retaining some internet-facing (wifi/cell) code, so it can make outbound connections. Then a mesh would have a primary gateway which the Particle cloud would see and it would have some number of “secondary gateways” that happen to have Mesh and internet connectivity. I would then do internet communication by running a gatewaying app on the primary and secondary gateways. I’m mostly interested in MQTT, so I would most likely gateway the Mesh pub/sub with MQTT pub/sub somehow.

Anyway, aside from ranting this is mostly just a plan at this stage, although I have started to hack the firmware, so it’s not a black box anymore.

1 Like