I've been trying to integrate the Mesh SDK 3.1.0 alongside the nRF5 SDK 15.2.0 on a custom board. I've integrated the light switch server example as part of the code (replacing the simple_hal with the bsp) and I'm having a touch of a problem here. The problem being that while the device shows up on the mobile mesh application properly when unprovisioned, it kind of finishes provisioning, but no event in mesh_evt_handler in mesh_provisionee.c ever fires. I added some custom logging to the mesh and this is what i get on being provisioned:
Successfully updated connection parameters Successfully updated connection parameters Provisionee: invite received! Provisionee: sending capabilities Provisionee: provisioning start message received! Provisionee: public key message received! Provisioning: provisioning confirmation received! Provisionee: provisioner's random number received! Provisionee: received provisioning data! gatt_database_reset bearer_handler_stop bearer_handler_stop timeslot_trigger BEACON TX FC:A9:E7:6F
It seems that the event is registered just fine, but after calling timeslot_trigger, the execution kind of stops. The PC at that point stays in the SoftDevice, but I assume that it's there because of sd_app_evt_wait. I'm using the app_timer implementation provided by the mesh SDK rather than the one in nRF5 SDK. I've fiddled around with some interrupt priorities (as per Mesh interrupt priority level documentation) and SOC Observers to no avail. I am hoping someone could point out to me what I have possibly overlooked because I'm not getting mesh events.