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

I have some trouble to get thingy's motion sensor.

Hi.

I applied https://github.com/crfosse/Thingy-52-to-nRF52xx project to get thing'y motion sensor by nRF52840 DK.

When I init DK, it discovered only 7 UUID so euler, rotation matrix, heading, gravity service couldn't use.

Also Quaternion, step counter, raw data service had same handle.

How can I get to thingy's motion data?

Thank you for reading.

uint32_t ble_thingy_tms_c_init(ble_thingy_tms_c_t * p_ble_thingy_tms_c, ble_thingy_tms_c_init_t * p_ble_thingy_tms_c_init)
{
    uint32_t      err_code;
    ble_uuid_t    thingy_tms_uuid;
    ble_uuid128_t thingy_tms_base_uuid = {THINGY_UUID_BASE};

    VERIFY_PARAM_NOT_NULL(p_ble_thingy_tms_c);
    VERIFY_PARAM_NOT_NULL(p_ble_thingy_tms_c_init);
    VERIFY_PARAM_NOT_NULL(p_ble_thingy_tms_c_init->evt_handler);
    
    
    p_ble_thingy_tms_c->peer_thingy_tms_db.euler_cccd_handle    = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.euler_handle         = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.heading_cccd_handle  = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.heading_handle       = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.orient_cccd_handle   = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.orient_handle        = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.pedometer_cccd_handle = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.pedometer_handle     = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.quat_cccd_handle     = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.quat_handle          = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.raw_cccd_handle      = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.raw_handle           = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.rot_cccd_hanlde      = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.rot_hanlde           = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.tap_cccd_handle      = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.tap_handle           = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.gravity_cccd_handle  = BLE_GATT_HANDLE_INVALID;
    p_ble_thingy_tms_c->peer_thingy_tms_db.gravity_handle       = BLE_GATT_HANDLE_INVALID;



    p_ble_thingy_tms_c->conn_handle                    = BLE_CONN_HANDLE_INVALID;
    p_ble_thingy_tms_c->evt_handler                    = p_ble_thingy_tms_c_init->evt_handler;
    
    
    err_code = sd_ble_uuid_vs_add(&thingy_tms_base_uuid, &p_ble_thingy_tms_c->uuid_type);
    if (err_code != NRF_SUCCESS)
    {
        return err_code;
    }
    VERIFY_SUCCESS(err_code);

    thingy_tms_uuid.type = p_ble_thingy_tms_c->uuid_type;
    thingy_tms_uuid.uuid = THINGY_TMS_UUID_SERVICE;

    return ble_db_discovery_evt_register(&thingy_tms_uuid);
}

Related