all the bt840 appear to have the same icid. what you refer to as serial number i think.
Things are going well. I just need to get these Fanstels working or wait for the other types of Dongles to arrive. Looks like I should look at the Documentation:
Here is the link for Nordic SDK 15.2.0
And here is the link for its’s Documentation.
which on closer inspection is not what I need. Looks like this is more relevant.
with a thread sdk download here
What is a bit confusing is that Nordic uses the term MESH for their own Bluetooth 5 protocol, whereas Thread stands for OpenThread protocol which the Particle Devices are based on.
This is interesting? From this site https://www.threadgroup.org/support#specifications
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.
That last line is best part, I wonder if any of the development devices work effortlessly and securely right out of the box.
Strange that it is Open Source and Intellectual Property all at the same time, probably best to read the small print. This link shows the OpenThread license.
Would this mean that if you sold a product built with Particle Mesh you’d have to get it OpenThread certified?
Probably a good idea to put this in it’s own topic. Stuff like that this me glad I am a teacher and don’t have a startup.
Anyone know how much it costs to be a member of the thread group and to certify an OpenThread product?
There are multiple levels and it’s not cheap:
the bsd-3 license they use is the standard one.
the 3rd clause means that you can not use the names to endorse the product which i think in this case means certified. the way i interpret it is feel free to use the code but include the copyright. at the same time do not label the product a certified or endorsed by the copyright holders which in this case are the OpenThread authors unless you have their permission which probably would mean having to join the group. my guess is as long as the product does not say certified OpenThread or use any of the authors/group names but otherwise works it would be ok. thing is marketing it that way would limit traction in the marketplace. the copyright holders are ok with you using the code they just don’t want you mucking up their good name by marketing it as endorsed/certified unless you go through their process. that’s my opinion based on previous bsd license experience but not openthread. also, i’m not an IP lawyer.
This is getting off topic but, Particle is a certified Thread Product (I think) but it looks like I am the only one working on getting the Particle devices to work with other Thread devices which I think is the tone of the statement below.
I guess at some point Particle will have to activate OpenThread connection protocols to be compliant with their OpenThread certification.
To get back on topic. It looks like the Fanstel Dongles have a product download at
which would have been very helpful if I had found that 2 weeks ago.
"I guess at some point Particle will have to activate OpenThread connection protocols to be compliant with their OpenThread certification."
i would guess so. but then OpenThread , in my opinion, has work to do to make OpenThread compliant with OpenThread certification. i know you’ve been here,
but anybody who spends an hour or so in that forum can see that the concept of “work together effortlessly and securely right out of the box” starts with OpenThread getting their code together to achieve that goal.
Really good point.
Update on the Fanstel Dongles:
They are pre-programmed with Bluetooth functionality, not the NCP I want for the Open Thread Border Router. Not sure yet if they will let me have the private key, but they are talking to me by email.
Here is a link of a possible way to install the secure bootloader for OpenThread.
Looks like I need nrfutil which is a pip install, but needs python2.7
The windows install is super easy just go to this page https://github.com/NordicSemiconductor/pc-nrfutil/releases and get the top .exe file or click here for windows nrfutil version 4.0.0.
Here are the steps I used on Ubuntu Linux:
sudo apt update pip --version sudo apt install python-pip pip install nrfutil nrfutil --help
I tried several times to install it since I tested it with nrfutil --version and it said it wasn’t installed, but nrfutil does not have a --version command. Very strange. Just found out you have to
So I got a debug private and public key from Fanstel and this command seems to generate a package. The following command works but not sure if it is what I want to be able to connect this to the border router.
nrfutil pkg generate --hw-version 52 --sd-req 0x80 --bootloader-version 4 --bootloader nrf52840_xxaa.hex --key-file private.pem output/nrf52840_xxaa.zip
–sd-req 0x80 “soft device” is not relevant for thread but needs to be in the command line
–hw-version 52 “hardware version”
–bootloader bootloader .hex file
–key-file private key
Last entry is the folder and file name.zip note: folder must be pre-made
My next problem is that I am not sure if I need to generate a bootloader or an application. Either way it should be fun breaking the Fanstel Dongle. Hoping that my pre-loaded OpenThread Border Router Seeestudio Dongle ships tomorrow.
Nice primer for anyone looking into OpenThread.
and found this about the Fanstel Dongle
So I did manage to brick one of the Fanstel Dongles
But I learnt so much:
I managed to sign an application .hex file
nrfutil pkg generate --hw-version 52 --sd-req 0xA9,0xAE --application-version 6 --application nrf52840_xxaa.hex --key-file private.pem outBest/nrf52840_xxaa.zip
and then to install it on the Dongle:
sudo chmod 777 /dev/ttyACM0
nrfutil dfu usb-serial -b 9600 -p /dev/ttyACM0 -pkg nrf52840_xxaa.zip
The other 100 attempts it gave all kinds of error messages but this time it uploaded and said it was successful.
But now the Dongle does nothing and I am not sure how to get it back into DFU mode. (button combination???) The two buttons seem to do nothing and no LED’s active.
What I might need to do is get the nrfutil settings correct, but I don’t know enough information about the Fanstel bootloader. I have sent them an email
Here is an example settings command.
nrfutil settings generate --family NRF52840 --application nrf52840_xxaa.hex --application-version 6 --bootloader-version 2 --bl-settings-version 1 settings.hex
I love the emotional highs and lows of programming. Very hard to get this across to my students.
It works – your so happy
You broke it – your so sad
The total programming roller coaster is where the fun is.
I tried using a stick to hold down the hard to reach button when the device is plugged into any USB connection but could never do it so I thought it did not work. Howeve, using a usb extension cable I managed to push the button.
I am back in DFU mode – happy again
Update Jan 25, 2019.
Probably not the best order to get my nrf52840 USB Dongles:
Fanstel, completely secured really hard to program.
Nordic, No security, they work but everything is still fairly confusing.
Seeedstudio, Pre-installed NCP firmware, will arrive in a few days.
This openthread stuff is really confusing to work with. I am making a cookbook of how to do things, just testing stuff now. I really think other Particle Developers should get interested in this. It would be nice to have help. Making your own Particle OpenThread might be really useful, especially for testing.
So far I have working randomly:
- The web GUI (I can connect to an Argon, when I have the masterkey)
- The Android Thread App (although I can’t ever get past the password)
- I can make a Thread Network
- I have installed nrf-connect for desktop on both windows and ubuntu
- I have installed nrfutil
- I can run ot-ncp-ftd.hex wpantund and wpanctl and scan and join an Argon and other dongles
- I can run the client ot-ctl-ftd.hex using screen and see the router table of other Argons
- On bootup my border router automatically runs
So things are getting there.
I hear you , I’ll be getting into this sometime soon too. The networking models and pricing models offered by particle are just too constraining…
Something I don’t yet understand, do you register your devices with the particle cloud at all? Do they have any internet connectivity?
Working on both options. 1. Install openthread ncp on the Argon, interesting if it can be done but probably very limiting. 2. Connect regular Argons to a border router for interconnectivity. That is probably the best route. Then the border router could provide an internet connection or the particle cloud could be your internet.
A 3rd route is that Particle actually embraces and promotes their awesome hardware as having openthread connectivity, not easy to work with, like the Particle cloud is, but a free option for the advanced developer or cheap educator.
Viability of Mesh based Smart-Home
So glad @ScruffR has joined this thread, perhaps he can use his big brain to help solve the Openthread-Particle Interconnection problem.
Lets define this problem with an example:
“We would like to include your product in the Google Nest family and are willing to pay x millions, we are coming to visit you in 3 days and would like to see a demonstration of how well your product works with OpenThread”
But Particle Mesh products, that have been heavily advertised as being OpenThread based, do not work with Openthread. @ScruffR loses his chance to make money and goes back to helping people for free on the Particle Forum.
Why would a Product Creator choose Particle Mesh when so many other companies are designing products that will soon or already do work with OpenThread? Especially anyone who is following the issues
Particle is having with the Mesh devices. It’s only us Hobbyists that already love the Particle products that are loyal enough to hang around to see how this thing pans out.
Here is my Quickstart Guide to OpenThread. It is perhaps the ugliest web page I have every made, but the OpenThread documentation is very confusing and I am trying to simplify it.
@ScruffR you are really perhaps the best person to help Particle by solving the Openthread-Particle Interconnection problem, do you have any useful positive ideas?