How to collaborate a private protocol with BLE.

Hi, 

My device is working with BLE most of the time, but it also needs to activate a private protocol,

1. to send messages to other devices in case of an emergency, 

2. to keep the possibility to receive the messages sent by other devices.

I know NCS supports multiple protocols at the same time,

But how to get the private protocol to work together with BLE?

Thank you in advance!

  • Hi,

    When I request a next (or end) timeslot in case of receiving MPSL_TIMESLOT_SIGNAL_CANCELLED in mpsl_cb, like below:

    static mpsl_timeslot_signal_return_param_t* mpsl_cb(mpsl_timeslot_session_id_t session_id, uint32_t signal)
    {
        ...
        
        
        case MPSL_TIMESLOT_SIGNAL_BLOCKED:
        case MPSL_TIMESLOT_SIGNAL_CANCELLED:
            ts_session->request_normal.params.normal.distance_us += ts_session->ts_interval_us;
            return &ts_session->action_next; /*&ts_session->action_end*/
    
        ...
    }

    I got an MPSL_ASSERT error shown below.

    What does "mpsl_init: MPSL ASSERT: 106, 477" mean?

    [00:00:14.527,099] <inf> interconn: mpsl_cb, session 1 signal 6
    [00:00:14.527,130] <err> mpsl_init: MPSL ASSERT: 106, 477
    [00:00:14.527,160] <err> os: ***** HARD FAULT *****
    [00:00:14.527,191] <err> os:   Fault escalation (see below)
    [00:00:14.527,191] <err> os: ARCH_EXCEPT with reason 3
    
    [00:00:14.527,221] <err> os: r0/a1:  0x00000003  r1/a2:  0x200025f8  r2/a3:  0x200025f8
    [00:00:14.527,252] <err> os: r3/a4:  0x00000000 r12/ip:  0x00000000 r14/lr:  0x00025127
    [00:00:14.527,252] <err> os:  xpsr:  0x61000000
    [00:00:14.527,282] <err> os: Faulting instruction address (r15/pc): 0x00021668
    [00:00:14.527,282] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
    [00:00:14.527,313] <err> os: Current thread: 0x200025f8 (MPSL Work)
    [00:00:15.044,433] <err> os: Halting system

  • Hello 

    I am using nrf52840.

    The two boards communicate well with each other with 1Mbps or 2Mbps bitrate, but if I set the bitrate to 250kpbs or 500kbps, they can't communicate.

    I wonder if it is possible to set the bitrate to 125kpbs or 250kpbs for ESB?

  • Hi,

     

    My apologies for the late reply.

    ESB does not support long-range bit modes.

    These are the supported bit rates:

    https://github.com/nrfconnect/sdk-nrf/blob/main/subsys/esb/esb.c#L595-L629

     

    NRF 250 kBit is supported (although this is a deprecated radio bit rate and not recommended to be used as per the PS), but you will need to adjust your re-transmission delay to a higher value.

     

    Kind regards,

    Håkon

Related