This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE Time App

I am running the free BLE Time App on the TI keyfob.  When the Time App connects to the Server, it issues a "Discover Service by UUID" Command (GATT_DiscPrimaryServiceByUUID).   When the response is received, the response byte expected is ATT_FIND_BY_TYPE_VALUE_RSP (0x07).  But the actual received byte is ATT_ERROR_RSP (0x01).  This occurs whether the responding Server is the TI USB Dongle or the Iphone 5.  Is anyone else experiencing this problem?

  • hi Matthew,

    looks like you have successfully modified the TimeApp to run on the Keyfob instead of EM, congratulations! 

    Well, TimeApp runs on EM or Keyfob will act as a GATT client, it will do service discovery and characteristic discovery. It needs a GATT server with BLE Timer Profile running on for example iPhone.

    When it's doing service discovery, if you look into code, for example, in TimeAppDiscCurrTime(), it calls GATT_DiscPrimaryServiceByUUID() with UUID value defined by "CURRENT_TIME_SVC_UUID". 

    On the other hand,  I am sure TI USB dongle with BTool does not have BLE Timer Profile, neither does iPhone 5. That's why you are having error response.

    Easiest way is you go to app store and find a BLE app has BLE timer application, then do the service discovery again, see what happens.

  • Hi Yan,

    Thanks for your response.   We have been using a Free App on the Iphone 5 known as "Light Blue"  This is a handy little BLE tool which can serve as either a Peripheral or a Central Device.  When operating as a Central, it can read and display all services and characteristics from the Peripheral.  (By the way, our IPhone 5 is running IOS 6, and IOS 6 does support all BLE Time Services.)

    When we use Light Blue as a Central Device and the Time App runs on the keyfob, we are still receiving an error message (0x01) in response to the Time App's request for  GATT Service by UUID, where UUID = 0x1805.  (GATT_DiscPrimaryServiceByUUID).

    Here is the code segment from timeapp_discovery.c:

    case DISC_CURR_TIME_START:
    {
    uint8 uuid[ATT_BT_UUID_SIZE] = { LO_UINT16(CURRENT_TIME_SVC_UUID),
    HI_UINT16(CURRENT_TIME_SVC_UUID) };

    // Initialize service discovery variables
    timeAppSvcStartHdl = timeAppSvcEndHdl = 0;
    timeAppEndHdlIdx = 0;

    // Discover service by UUID
    GATT_DiscPrimaryServiceByUUID( timeAppConnHandle, uuid,
    ATT_BT_UUID_SIZE, timeAppTaskId );

    newState = DISC_CURR_TIME_SVC;
    }
    break;

    I guess our question continues to be, what is missing from the Time App that would cause the Central Device to respond with an error when interrogated with a "Discover Service by UUID Command?

    Which Central App has TI used in order to prove out the correctness of the example TI Time App?

  • We are having the same problem. We would also like to know what TI used to verify the time service
  • Hi Mathew,

    Can you please elaborate on how you managed to get the TimeApp running on the CC 2540 keyfob rather on EM ?board?

    I am working on a Time sync project with TI BLE beacons on an android platform. Want to display the time the packets are being transmitted to the android phone. Thought the TimeApp would be of much help here, but the thing is not being shown on the android receiver (apart from the adv data, of course).

    What are the changes you made to get it running on the Keyfob?

    Thanks.