How to handle the RBLE_SM_LTK_REQ_FOR_ENC_IND event on a collector

For a collector the RBLE_SM_LTK_REQ_FOR_ENC_IND event occurs when the peripheral sends a security request either to request pairing or encryption. By spec the collector is supposed to invoke either a pairing request or encryption start depending upon the peripheral's paired state.

The documentation illustrates the sequence of events that the application is supposed to do but in the V1.20 release those sequences do not work. When I invoke the RBLE method indicated by the documentation, nothing happens and the connection to the peripheral times out and disconnects.

However, if I ignore the documentation and go directly to starting bonding (creates a pairing request over the airwaves) or starting encryption (as the case warrants) the behavior over the airwaves is correct and all appears to work. What bothers me is that the documentation shows otherwise and I do not know what the consequences are of NOT following the documentation. It does not have any immediate consequences that I can tell but I am still uncomfortable violating the documentation.

It would be helpful if someone could explain why those extra steps as shown in the documentation need to be taken (and why they might not work).

I am using the RL78/G1D in modem mode with a PC USB dongle and in association with an RX64M in modem mode. In both environments I get the same behavior. I am writing a Health device collector application.


  • Was rBLE_Host on RX64M updated to V1.20?



  • In reply to K.noto:

    Yes. Both the PC and RX64M have updated V120 rBLE HOSTs

  • In reply to Brian:

    Are parameters of RBLE_SM_Ltk_Req_Resp correct?

  • In reply to K.noto:

    As far as I know they are. What should they be? Documentation here is not very thorough. Given that the documented sequence is only exchanges with the RBLE software it is hard to logically determine what it is that the RBLE software wants without clear documentation.

    Recall I am a CENTRAL and not a peripheral. The disturbing aspect is that if I ignore the sequence diagram as shown in the documentation and just invoke the operation as demanded by the core specification, it works.