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

Gazell nrf24 host, nrf52 device compatibility

Hi,

We have a product with nrf24L01p Gazell (LastChangedRevision: 133) that acts as a Host. At the moment I'm trying to pair with this host via a PCA10040 Devkit (nRF52832) that acts as a device. For this I'm using the SDK15.3 example: gzll_dynamic_pairing_device_pca10040

Should this setup pair out-of-the-box? Or can I expect some compatibility issues with this setup? At the moment it does not pair at all. Secret key, PIPE addresses and so on are equal.

Parents Reply Children
  • When I add: 

    NRF_LOG_INFO("Gazelle: transmission:, id_req_status: %x send_crypt_data: %x", id_req_status, send_crypt_data);

    The result is:

    <info> app: Gazelle: transmission:, id_req_status: 3 send_crypt_data: 0
    <info> app: Gazelle: transmission:, id_req_status: 3 send_crypt_data: 1

    3= GZP_ID_RESP_FAILED

    For some reason there is a problem with "host ID" request. 

    I can confirm that these params are equal on both, the host and device:

    Factory preset parameters

    For pairing and key exchange to occur, an unpaired Host and Device must share the following factory preset parameters in the following table:

    Parameter Secret? Bytes Purpose Set
    Secret Key Yes 16 Encrypting Host ID when sent from Host to Device Factory preset
    Pairing Address No 5 Sending of System Address from Host to Device Factory preset
    Packet Validation ID No 3 Authentication of packets Factory preset
  • My suggestion is to first use the nRFgo SDK from v2.3 on a nRF24LE1 DK, and find what changes you must do to make it work there. Is that possible?

    I believe that gazell will give you "GZP_ID_RESP_FAILED" by default if no communication with host is detected. If host does not accept, you should first get a "GZP_ID_RESP_PENDING" response, then a failed response later. Maybe you can monitor the id_req_status for all attempts here (even failing).

  • You are right, I receive the GZP_ID_RESP_PENDING response first before getting the GZP_ID_RESP_FAILED. The default value is: GZP_ID_RESP_NO_REQUEST. We only receive GZP_ID_RESP_NO_REQUEST if we turn off the host.

    I will check if we can setup the nRFgo SDK for debugging, we need to order the hardware for that.

  • I was thinking you already had that. It may get a bit costly to get an nRFgo Starter Kit and an nRF24LE1 DK, though that may also be the only intermediate step that can solve this.

    I was thinking a bit on the sequence GZP_ID_RESP_PENDING -> GZP_ID_RESP_FAILED. 

    Maybe the problem here is not gazell pairing parameters, but the timing. What if the device send packets faster than the host can prepare the encryption key/ID. Not sure if you have measured any timing on the host, but for testing maybe you can add some 10ms delays in gzp_id_req_send() between packets to see if that have any impact on the issue you experience. But if that was the case, then that would not explain why also nRF24L01 device -> nRF52 host fails, so it still seems like a mismatch in parameters.

  • Hello Marcel,

    I'm trying to do a similar thing as you did. Did you manage to solve this issue? What was the solution?

    Best regards

    Thomas

Related