This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BLE_Gateway mesh device will not broadcast

Hi,

I am trying to set up a small mesh network. Basically I have a couple of PCA10028 (v1.1.0) and I have flashed the mesh example:

github.com/.../BLE_Gateway

One of the devices is connected via SPI to a photon and receives commands correctly through api requests. Also, on MCP I can see both devices advertising and I can connect and change the LEDs lighting on both of them.

The problem. My understanding was that once I modify the LEDs status in one of the devices, it will be re-broadcast to the other one, but this is not happening.

Any help is most welcome.

UPDATE 1:

I have followed David advice. Back to basics. I have taken the photon out of the equation. I proceed as follows:

  1. I have flashed both PCA10028 (v1.1.0) devices with the s110_nrf51_8.0.0 using nRFgo Studio.
  2. I have compiled the mesh example aforementioned (BLE_Gateway) without any mods (no RBC_MESH_SERIAL defined) and I have flashed both devices with this code.
  3. I can see both devices advertising as shown on MCP .
  4. I have modified the connection interval to be 100ms on the MCP . Suggested by Trond.
  5. I have connected to one of the devices and send the following command (00-00-00-00-01) to set the LED1 on and it works!

I have a problem to turn them off. It seems that the data is somehow corrupted and it always arrives to the second device with a value. The handle is correct but the data is not. I will spend more time on it and if I can get it sorted I will open another case! Thanks

Parents
  • The 4th byte should set the length of the data you're sending, and the command you mention in the 5th step sets the value with zero length, while your data is 1 byte. If you don't check this length in your nRF51 application, you might see corrupted data. Building the BLE_gateway from the 0.8.3 version of the mesh, the command 00-00-00-01-01 works on my setup, with a 20ms connection interval, slave latency 0, connection supervision timeout at 3000ms, auto-accept connection update enabled in MCP 3.10.0.14. In MCP, I select a mesh device, connect, discover services and enable services, before writing the command as a hex-value to the last characteristic in the list (UUID 2A1E0005-...).

Reply
  • The 4th byte should set the length of the data you're sending, and the command you mention in the 5th step sets the value with zero length, while your data is 1 byte. If you don't check this length in your nRF51 application, you might see corrupted data. Building the BLE_gateway from the 0.8.3 version of the mesh, the command 00-00-00-01-01 works on my setup, with a 20ms connection interval, slave latency 0, connection supervision timeout at 3000ms, auto-accept connection update enabled in MCP 3.10.0.14. In MCP, I select a mesh device, connect, discover services and enable services, before writing the command as a hex-value to the last characteristic in the list (UUID 2A1E0005-...).

Children
No Data
Related