Page 1 of 1

BLE Mesh level server node as relay node also.

Posted: Mon Dec 09, 2024 1:44 pm
by oz1cmdk
Hi all,

I have multiple ESP32-S3 as level servers (Lamps) and a couple of Level clients (Remote control for lamps. Also ESP32-S3) in the same network and group.
As far as i understand, it is possible to have the level server, with the Relay node function activated also?

My problem is that, if one of the lamps is behind a wall or something, the remote ( RF signal) cannot always reach the lamp.
I know i can use more RF power. But i really like the idea that every Lamp is a Relay node also, so the lamps can forward the message to the others. I actually thought this was default in BLE Mesh.. But aparrently not?

Best regards
Christian

Re: BLE Mesh level server node as relay node also.

Posted: Wed Dec 11, 2024 12:22 pm
by chegewara
Hi,
When you are using ble mesh with bluedroid you can check if relay is enabled in menuconfig.
I don't remember from top of my head, but I think if relay is enabled then it should be on by default and can be controlled from provisioner. Please check with nrf mesh.

Any ble mesh node, except LP node, can be also a relay.

Re: BLE Mesh level server node as relay node also.

Posted: Tue Jan 28, 2025 3:02 pm
by oz1cmdk
Hi,

You are correct..
I found the problem..

The "issue" is when you "activate" store BLE settings persistently in menuconfig, then it also saves whether it is a relay node or not. This happens inside BLE_init..

So even though i set the esp_ble_mesh_cfg_srv_t struct to enable relaying, it will be overwritten with whatever is stored in memory..

That confused me a bit..

Best regards
OZ1CM

Re: BLE Mesh level server node as relay node also.

Posted: Wed Jan 29, 2025 6:50 am
by snutw_
Yaa that BLE saving in memory can be confusing when someone starts to develop BLE mesh xd

Re: BLE Mesh level server node as relay node also.

Posted: Wed Jan 29, 2025 1:56 pm
by chegewara
Yes, there is few configs in esp_ble_mesh_cfg_srv_t which may cause you headache.
Recently, and i dont complain (it was only my fault), i hit the wall because i could not finish provisioning when ive been using my own library (i didnt work with it for few months).
I forgot to set "gatt_proxy" in that struct and it was hard to find the cause, because nrf mesh can connect to node, start provisioning, but after disconnecting from node it cant reconnect it.

I would expect there wont be possible to start GATT provisioning with that flag disabled, but hey, it is what it is. Sometimes we need to learn hard way.