OpenMesh low power

pschwamb gravatar image

asked 2017-04-21 17:01:30 +0200

I'm looking to use the nrf open mesh on battery powered devices based on nrf51822. I would like to enable the mesh for short periods of time to transmit values (~50 nodes, each with a single 20 byte attribute they are responsible for). I have implemented a time sync protocol using advertising packets, that is working well.

My question is about tuning the network for operation with short intervals. Each node's value is updated once every 10 seconds. I would like to minimize the amount of time the network needs to be running to synchronize that data.

My first crude attempt was to just call rbc_mesh_start() and rbc_mesh_stop() for short periods (400ms) each ten seconds, but I am having trouble with the values getting synchronized.

Should I be modifying the #defines in timeslot.c, considering the small window I'm aiming for?

edit retag flag offensive close delete report spam

1 answer

Sort by » oldest newest most voted
hungbui gravatar image

answered 2017-04-25 14:00:20 +0200

updated 2017-04-25 15:29:30 +0200

Hi Pete,

If you keep all the device with very low duty cycle like that (400ms in 10s) there will be an issue for the network to be able to synchronize.

Note that it's hard to keep all the nodes to be time synchronized and all wake up at the same time because of the clock drift. You may need to configure so that some of the node will have to stay up all the time and act as the relay nodes. Other nodes can be considered leaf/end node and be operate in low power mode. These leaf nodes won't have to forward/relay any packet as it's the job of the relay node. These node can sleep for long time and only wake up and check if any data for it or to send any data.

edit flag offensive delete publish link more


Thanks. There may be an option of having a smaller set of relays. The entire network will have to send out HB packets (we're trying to estimate proximity of nodes), but those aren't put on the mesh directly.

For a network of 30 or so (< 50) devices that each update a single 20 byte attribute every 10 seconds, randomly arranged in a smaller space (< 1000 sqft), so that distance between any two is usually < 15 ft.

Normal RF noise (a few wifi signals visible, probably only a couple phones active), any rough guess at time to synchronize? And any options that will help reduce that time? As for clock synchronization, the sync happens every minute from a master, and I have listening windows that assume some drift.

Pete ( 2017-04-25 15:17:57 +0200 )editconvert to answer

I haven't tested or do calculation to have a good guess. But from the nature of the rbc mesh it would take just a few MESH_INTERVAL_MIN_MS to relay a message to all nodes in the network (if all nodes are on all the time)

Hung Bui ( 2017-04-25 17:06:04 +0200 )editconvert to answer

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer. Do not ask a new question or reply to an answer here.

[hide preview]

Question Tools

1 follower


Asked: 2017-04-21 17:01:30 +0200

Seen: 53 times

Last updated: 2 days ago