question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

How to avoid multiple nodes with the same UUID after DFU?

See original GitHub issue

Describe the bug The first version of the firmware was a simple generic level model, which will be replaced by a proprietary vendor model. When updating the firmware from the generic level to the vendor model, the node automatically unprovisions itself because Softdevice/Mesh SDK detects that the (generic level) model data is invalid for the new vendor model.

Now, when reprovisioning the node after DFU, the library contains the node twice: Once with the generic level model and once with the vendor model. Unprovisioning any of them will remove both nodes. Question now is, is there a way to remove the old (generic level) node from the library without also removing the (new) node containing the vendor model?

Considering the following from this discussion:

each node has a unique UUID and if the UUID is the same for each provisioned device you will be overwriting the same node during provisioning.

Makes me think that this could be a bug in the library.

To Reproduce Steps to reproduce the behavior:

  1. Open an example project from nRF5 SDK for Mesh in Segger Embedded Studio, compile and program on a device.
  2. Provision the device.
  3. Open another example project from nRF5 SDK for Mesh in Segger Embedded Studio, compile and program onto the same device. The device will start unprovisioned because model_config_file_config_apply() returns NRF_ERROR_INVALID_DATA.
  4. Reboot the device once. This is necessary, otherwise provisioning will fail.
  5. Provision the device.
  6. The app now shows both nodes.

Expected behavior Because the node’s UUID did not change during DFU, reprovisioning the node should overwrite (remove) any other nodes with the same UUID.

Platform details:

  • Device: Any Android Device.
  • OS: Any Android Version.
  • Library Version 3.1.6

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
FluffyBunniesTasteTheBestcommented, Mar 21, 2022

@R0m4in-dooz Sounds promising. Thanks for sharing this! I’ll have a look at it.

1reaction
R0m4in-doozcommented, Mar 18, 2022

Hello @FluffyBunniesTasteTheBest, We just open sourced our Flutter plugin that provides a Dart API to use this library and its iOS counterpart. It still lacks some “get started” documentation, but the example app should be enough to jump in with basic mesh network features 👍 If it can help you to develop your projects, feel free to give our plugin a try ! Regards 👋

Read more comments on GitHub >

github_iconTop Results From Across the Web

Same system UUID shared between nodes #1027 - GitHub
I tried to run a VM live migration on a kind cluster using kubevirt VMs. ... all nodes share the same UUID, this...
Read more >
Console error: Duplicate node uuids detected for nodes - IBM
1. Stop the asperacentral service on the machine of your cloned transfer server. ... On Windows go to Start > Control Panel. Select...
Read more >
How to change filesystem UUID (2 same UUID)?
To generate a random new UUID, one can use: $ uuidgen. To actually change the UUID is file system dependent. Assuming ext-family filesystem....
Read more >
nRF Mesh DFU over the air - Nordic Q&A - Nordic DevZone - Nordic ...
Hello, I'm trying to set up the DFU over the air mesh. ... After reading some documentation, I have not been able to...
Read more >
Improve Your Bluetooth Project With This Valuable Tool: Part 2!
Supposedly you can also reserve your own UUID if you're a member. ... platform you may find the same settings though all not...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found