3 Replies Latest reply on Jun 22, 2020 7:53 AM by star_4633391

    smp_query_bonds  does not read bonded devices in EZ-Serial WICED Firmware V1.1.1 .

    koTs_4636851

      I am trying to develop a BLE application utilizing CYBT-343026-01 series modules and ez-serial firmware version  EZ-Serial WICED Firmware V1.1.14 .

      smp_query_bonds  command does not work according [1]  page 113 .  In [1] page 113 you say that the commands return a response with the number of bonded devices but it does not return the number and the the smp_bond_entry events.   smp_bond_entry events are sent by the cypress module for each bond entry ([1] page 150).  EZ-serial can store a maximum of four bonded devices .

       

       

      I have proper configured  with smp_set_security_parameters( [1] page 116) the pairing mode. I have managed to bond ( pair ) my phone successfully with cypress BLE module . I can confirm it from the BLE test android application which I am using . The android application is the nRF connect from Nordic Semiconductors.

       

      https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop

       

      I can confirm that my phone is bonded with the cypress module also with the android application lightBlue

      https://play.google.com/store/apps/details?id=com.punchthrough.lightblueexplorer&hl=en_GB

       

      May you suggest another android application to Test?

       

       

      First I am setting the pairing mode

       

      Send command smp_set_security_parameters (SSBP, ID=7/11)

       

      (0xC0),(0x06),(0x07),(0x0B),(0x09),(0x00),(0x10),(0x00),(0x03),(0x01),(0x8E)

      mode = 0x08 | 0x01, bonding  = 0x00, keysize  = 0x10 , pairprop  = 0x00, io  = 0x03,

      flags    = 0x01

       

       

      Receive event

       

      (0xC0),(0x02),(0x07),(0x0B),(0x00),(0x00),(0x6D)  Response for smp_set_security_parameters (SSBP, ID=7/11) 

       

      From the user guide [1] page 117  I am reading that there are no response parameters but from the logic analyser there are one uint16_t or two uint8_t parameters which are 0x00 ,0x00 ( the 5th and 6th byte  of the response. May you clarify these parameters ?

       

      Subsequently  I am bonding (pairing) with my smartphone and I am receiving these events sequence:

       

      gap_connected (C, ID=4/5)

       

      (0x80) (0x0F) (0x04) (0x05) (0x01) (0x63), (0xFF),(0xF9),(0x4F),(0x16),(0x53),(0x00),(0x28),(0x00),(0x00),(0x00),(0xBC),(0x02),(0x00),(0x2B)   gap_connected (C, ID=4/5)  conn_handle = 0x01  , address   , type = 0x00   ,  interval = 0x0028  , slave_latency = 0x0000 , supervision_timeout = 0x02BC, bond = 0x00

       

       

      (0x80),(0x05),(0x07),(0x02),(0x01),(0x00),(0x00),(0x00),(0x00),(0x28)    smp_pairing_requested (P, ID=7/2)  conn_handle =0x01 ,mode = 0x00,  bonding =0x00  , keysize =0x00  , pairprop =0x00

       

       

      (0x80),(0x03),(0x07),(0x03),(0x01),(0x00),(0x00),(0x27)  smp_pairing_result (PR, ID=7/3)  conn_handle =0x01  , result = 0x0000.

       

       

       

      (0x80),(0x02),(0x07),(0x04),(0x01),(0x00),(0x27)    smp_encryption_status (ENC, ID=7/4)

      conn_handle =0x01  , status= 0x0000.

       

       

      (0x80),(0x07),(0x04),(0x08),(0x01),(0x06),(0x00),(0x00),(0x00),(0xF4),(0x01),(0x28)

      gap_connection_updated (CU, ID=4/8)  conn_handle = 0x01  , interval =0x0060 , slave_latency = 0x0000  , supervision_timeout = 0x01F4

       

       

      (0x80),(0x07),(0x04),(0x08),(0x01),(0x27),(0x00),(0x00),(0x00),(0xF4),(0x01),(0x49),

      gap_connection_updated (CU, ID=4/8)  conn_handle = 0x01  , interval =0x0027 , slave_latency = 0x0000  , supervision_timeout = 0x01F4

       

       

      (0x80),(0x02),(0x04),(0x02),(0x00),(0x03),(0x24)

      gap_adv_state_changed (ASC, ID=4/2)   state = 0x00   , reason = 0x03

       

       

       

      After the bonding procedure I try to read the bond entries

       

       

      Send Command

       

      (0xC0),(0x00),(0x07),(0x01),(0x61) smp_query_bonds (/QB, ID=7/1)

       

       

      Receive response

       

      (0xC0),(0x03),(0x07),(0x01),(0x00),(0x00),(0x00),(0x64), smp_query_bonds (/QB, ID=7/1) count = 0

       

       

      I am not receiving smp_bond_entry event according ([1] page 150) with the bonding information for the bonded device. Also the   smp_query_bonds  response ([1] page 113)

      Parameter Count  shows Bond entries are zero.

       

      I can see from the nRF connect that I have bonded with the device . Where is the error ? Can you clarify please ?

       

      I have attached also the logic analyser diagram sequence2_Pairing Bug.logicdata . You can open it utilizing [2]. Or Open the attached text documents for TX and RX with the aforementioned commands ,responses and events sequence .

       

      Thanks

      Kostas

       

      [1] EZ-Serial_WICED_Firmware_Platform_User_Guide_for_CYW2070x-based_Modules-v1.1.14 . pdf

      [2] https://www.saleae.com/downloads/

        • 1. Re: smp_query_bonds  does not read bonded devices in EZ-Serial WICED Firmware V1.1.1 .
          XinghaoZ_26

          I have checked internally and the command is not supported yet.

          1 of 1 people found this helpful
          • 2. Re: smp_query_bonds  does not read bonded devices in EZ-Serial WICED Firmware V1.1.1 .
            koTs_4636851

            Hi XinghaoZ

             

            In documment [1] page 113 it says that it is supported.  I want to use this command in order to unpair ( delete the pairing information from the cypress module).  How i will do that?   In [1] page 113 it says that  EZ-Serial currently supports a maximum of four bonded devices at the same time. To bond with additional devices after all four bond slots are full, you must delete one of the existing bonds with the smp_delete_bond (/BD, ID=7/2) API command. May you help me with that ?  I am utilizing CYBT-343026-01 series modules and ez-serial firmware version  EZ-Serial WICED Firmware V1.1.14 .  If i bond ( pair) with 4 devices and subsequently i try to bond(pair) with a 5th device how i will delete one of the four?  May you clarify please?

             

            Thanks

            Kostas

             

             

             

             

             

            [1] EZ-Serial_WICED_Firmware_Platform_User_Guide_for_CYW2070x-based_Modules-v1.1.14 . pdf

            • 3. Re: smp_query_bonds  does not read bonded devices in EZ-Serial WICED Firmware V1.1.1 .
              star_4633391

              Hi XinghaoZ,

               

              Thank you for your response. Is it possible for this functionality to be implemented and what would the procedure be for requesting this? What would the timescale be?

               

              Is there an alternative to using a smp_query_bonds command if it is not yet implements? I can't see an alternative way to know which devices are currently bonded and therefore which device to request to un-bond using the smp_delete_bond command. This would mean after bonding 4 devices, the only way to bond a new device would be to wipe the flash (e.g. with a system_factory_reset command).

               

              Regards,

               

              Stephen