Using Particle Mesh Devices with the OpenThread Border Router

So since my other dongles are on backorder and the Fanstels need secure firmware which I haven't found out how to do, I thought I would open one.

Couple of things to note: These are labelled BT840F not USB840F like I have been searching for and finding almost nothing about. Also the serial numbers do not look long enough to be individual. Kind of want to open another Dongle to see if the numbers are different.

On the other side is the 2 buttons I might need, if this thing does not go into DFU mode. So that issue is solved, thanks for the suggestions to open it up @Zonker

I think nrf-Connect for Desktop can automatically put the device into DFU mode so that is probably why these Dongles are sealed up.

...

My seeedstudio dongles are supposed to ship late January. Hopefully as @peekay123 thinks, they are pre-installed with the OpenThread Border Router connection firmware.

Now you know where the buttons are… get out a dremel, and your micrometer, and make a couple extra holes in the cases… :slight_smile:

1 Like

do a google on 4100a-bt840 and select images. that appears to be a generic identifier.

1 Like

Not actually finding anything of use googling 4100a-bt840, what is the 4100a?

I often search for nrf52840 and PCA100059 or PCA100056

I did just find this Everything nRF52840 | MySensors Forum
which at least has lots of entries.

I also have the Nordic SDK samples which seems to have encryption samples, but I am not sure how to load them or which ones to use.

try this,
https://www.google.com/search?q=4100a-bt840&safe=off&rlz=1C1CHBF_enUS818US818&source=lnms&tbm=isch&sa=X&ved=0ahUKEwirkK7imO7fAhWBOn0KHQ03Co4Q_AUIESgE&biw=1522&bih=706

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.

https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v13.0.0%2Findex.html

which on closer inspection is not what I need. Looks like this is more relevant.

https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk%2Fdita%2Fsdk%2Fthread_zigbee_sdk.html&cp=4_2

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. :joy: :joy:

Strange that it is Open Source and Intellectual Property all at the same time, probably best to read the small print. :face_with_raised_eyebrow: 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?

1 Like

There are multiple levels and it's not cheap:

https://www.threadgroup.org/thread-group

1 Like

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.

3 Likes

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

https://www.fanstel.com/download-opensource/

which would have been very helpful if I had found that 2 weeks ago.

3 Likes

"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,
https://groups.google.com/forum/#!forum/openthread-users
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.

1 Like

Really good point. :joy: :joy: :joy:

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.

https://www.pureengineering.com/projects/nrf52_secure_bootloader

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

nrfutil version

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

where
–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. :smirk:

Nice primer for anyone looking into OpenThread.

and found this about the Fanstel Dongle

http://static6.arrow.com/aropdfconversion/ccdd42ab513658a40f8a6901ea0f75412b0b6d4/bluenor_bt840f_datasheets.pdf

4 Likes

So I did manage to brick one of the Fanstel Dongles :rofl:

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

and then

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 :grinning:

You broke it – your so sad :frowning_face:

The total programming roller coaster is where the fun is.

update:

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.

image

I am back in DFU mode – happy again :grinning:

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:

  1. The web GUI (I can connect to an Argon, when I have the masterkey)
  2. The Android Thread App (although I can’t ever get past the password)
  3. I can make a Thread Network
  4. I have installed nrf-connect for desktop on both windows and ubuntu
  5. I have installed nrfutil
  6. I can run ot-ncp-ftd.hex wpantund and wpanctl and scan and join an Argon and other dongles
  7. I can run the client ot-ctl-ftd.hex using screen and see the router table of other Argons
  8. On bootup my border router automatically runs

So things are getting there.

1 Like

I hear you :slight_smile:, 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. :grinning:

1 Like

4 posts were merged into an existing topic: Viabiliity of Mesh based Smart-Home