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

Master Control Panel vs Gatttool

I'm in the process of migrating from SDK11 to SDK13. I have a custom UUID with 3 characteristics (2 notify chars for data and 1 r/w for sending commands), based off HRS and the LED command example.

I have it working now using Master Control Panel. I can connect, enable notifications, send commands, receive data etc.

HOWEVER, when I go to do the same thing from an off-the-shelf 4.0 bluetooth dongle and gatttool I can connect, and write to the characteristic configuration handle to enable notifications, but then I get a GATTC timeout (after about 6 seconds or so), and a BLE disconnect on my device.

Is there something that Master Control Panel is doing on connection that I need to manually do now with gatttool that is new to SDK13? (I have previously had this work with my prior revision on SDK11)

Command I'm presently using is:

gatttool -b {macID} -t random --char-write-req -a 0x{handle} -n 0100 --listen

Parents
  • Ok.. dug out sniffer. Looks like it might be hanging up on the MTU exchange. The BLE dongle that I'm using with gatttool doesn't seem to support it.

    Gatttool + Pluggable BLE dongle

    2222	56.084918000	Slave	Master	BLE Data	35	LL Control PDU: unknown
    2223	56.121044000	Master	Slave	BLE Data	28	LL Control PDU: LL_UNKNOWN_RSP
    

    versus: nRF Connect App (instead of Master Control Panel cause I only have one nRF51 at my desk at the moment)

    977	29.926437000	Master	Slave	BLE Data	32	LL Control PDU: LL_VERSION_IND
    978	29.945158000	Slave	Master	ATT	33	Rcvd Exchange MTU Request, Client Rx MTU: 158
    981	29.996311000	Slave	Master	BLE Data	35	LL Control PDU: unknown
    982	30.014089000	Master	Slave	ATT	33	Rcvd Exchange MTU Response, Server Rx MTU: 158
    983	30.034285000	Master	Slave	ATT	33	Rcvd Exchange MTU Response, Server Rx MTU: 158
    

    With SDK13 do I need to have a default MTU set in case the dongle doesn't support the exchange? Is this not currently implemented in the HRS example?

Reply
  • Ok.. dug out sniffer. Looks like it might be hanging up on the MTU exchange. The BLE dongle that I'm using with gatttool doesn't seem to support it.

    Gatttool + Pluggable BLE dongle

    2222	56.084918000	Slave	Master	BLE Data	35	LL Control PDU: unknown
    2223	56.121044000	Master	Slave	BLE Data	28	LL Control PDU: LL_UNKNOWN_RSP
    

    versus: nRF Connect App (instead of Master Control Panel cause I only have one nRF51 at my desk at the moment)

    977	29.926437000	Master	Slave	BLE Data	32	LL Control PDU: LL_VERSION_IND
    978	29.945158000	Slave	Master	ATT	33	Rcvd Exchange MTU Request, Client Rx MTU: 158
    981	29.996311000	Slave	Master	BLE Data	35	LL Control PDU: unknown
    982	30.014089000	Master	Slave	ATT	33	Rcvd Exchange MTU Response, Server Rx MTU: 158
    983	30.034285000	Master	Slave	ATT	33	Rcvd Exchange MTU Response, Server Rx MTU: 158
    

    With SDK13 do I need to have a default MTU set in case the dongle doesn't support the exchange? Is this not currently implemented in the HRS example?

Children
No Data
Related