Studio Bluetooth Forum Discussions
Hi everyone
Regarding NCC approval, are you promoting with FMA(Full Module Approval) or LMA(Limited Module Approval)?
The following is the previous contact history:
https://community.cypress.com/thread/53602?et=watches.email.outcome
Thanks
Yang
Show LessHello
After performing (pairing and bonding), if the power is turned from OFF to ON, the key exchange will be performed at the time of connection as if the bonded information was lost.
The following pairing process is implemented.
・ Base application: ble_hello_sensor
・GATT connection event (GATT_CONNECTION_STATUS_EVT): At connection
wiced_bt_dev_sec_bond() : Pairing start
・Device link key update event (BTM_PAIRED_DEVICE_LINK_KEYS_UPDATE_EVT)
Save link key (wiced_bt_management_evt_data_t paired_device_link_keys_update) to DCT
・Device link key request event(BTM_PAIRED_DEVICE_LINK_KEYS_REQUEST_EVT)
Output : saved link key
・Power OFF→ON event(BTM_ENABLED_EVT)
Set the held link key with wiced_bt_dev_add_device_to_address_resolution_db()
・I am using a user passkey when pairing.
・Operating environment CYW43438 & WICED-Studio-6.4
If you connect to the central device again after turning the power off and on, the inquiry and key exchange of the user passkey will operate.
I want to connect to the central device once bonded without re-entering the user passkey.
In Windows10 and iOS terminals, user passkey inquiry and key exchange work.
On Android devices, user passkey query and key exchange do not work.
Please tell me how to solve the problem.
Show LessDevelopment environment:
Windows 8.1 pro
Platform: CYBT-423028-02
IDE: Wiced Studio 6.2.1
We want to designed a custom PCB using CYBT-423028-02 module and 10x2 keypad,
(1) How can we design a matrix keypad interface with ble module.?
(2) How can we wake a ble module on GPIO activity?
Show LessDevelopment environment:
Windows 8.1 pro
Platform: CYW920719Q40EVB-01, CYBT-423028-02
IDE: Wiced Studio 6.2.1
1) I have prepared a custom "clientapp" application from "hello_client" reference wiced example code. (Firmware loaded to Wiced kit as mentioned above )
2) And prepared a custom "peripheral" application. And configured vendor specific service named "testservice" (128 UUID)
With two characteristics one with properties of READ and WRITE with READ WRITE permissions & other characteristics with READ property and READ permission.
(Peripheral Firmware loaded to our custom board design using CYBT-423028-02 module)
// ***** Primary Service 'Generic Attribute'
#define HDLS_GENERIC_ATTRIBUTE 0x0001
// ***** Primary Service 'Generic Access'
#define HDLS_GENERIC_ACCESS 0x0014
// ----- Characteristic 'Device Name'
#define HDLC_GENERIC_ACCESS_DEVICE_NAME 0x0015
#define HDLC_GENERIC_ACCESS_DEVICE_NAME_VALUE 0x0016
// ----- Characteristic 'Appearance'
#define HDLC_GENERIC_ACCESS_APPEARANCE 0x0017
#define HDLC_GENERIC_ACCESS_APPEARANCE_VALUE 0x0018 /*peripheraltest*/
// ***** Primary Service 'testservice'
#define HDLS_TESTSERVICE 0x0028
// ----- Characteristic 'ReadWriteChar'
#define HDLC_TESTSERVICE_READWRITECHAR 0x0029
#define HDLC_TESTSERVICE_READWRITECHAR_VALUE 0x002A
// ===== Descriptor 'User Description'
#define HDLD_TESTSERVICE_READWRITECHAR_USER_DESCRIPTION 0x002B /*READWRITE*/
// ----- Characteristic 'BatStat'
#define HDLC_TESTSERVICE_BATSTAT 0x002C
#define HDLC_TESTSERVICE_BATSTAT_VALUE 0x002D
// ===== Descriptor 'User Description'
#define HDLD_TESTSERVICE_BATSTAT_USER_DESCRIPTION 0x002E /*BatteryStat*/
Success
A) Individually both Firmware works properly, I am able to read an write to devices.
b) I want to connect to Cypress kit to our custom board. I am succeeded to connect both the device, and discover the services and its starting and ending handles of peripheral device.
By this I am able to read the descriptor value by handle 0x002B (value: READWRITE )and 0x002E ( value BatteryStat).
In peripheral device I had set the value in handle 0x002D which is "battery 90", I am able to read from other devices .
Query: I am unable to read or write to peripheral devices for specific handle
For READ Operation:
From Cypress kit I am unable to read the value of handle 0x002D, and getting the status from
Finction : "wiced_bt_gatt_status_t clientapp_gatt_op_comp_cb( wiced_bt_gatt_operation_complete_t *p_data )"
operation : read
Status : 0x0d (WICED_BT_GATT_INVALID_ATTR_LEN)
Note: from any other devices (Mobile app cysmart) the values are easily readable.
For WRITE Operation:
From Cypress kit I am unable to write the value to the handle 0x002A,
Case 1:
Prepared a packet to send
p_write->handle = 0x2A; /* write data */
// p_write->offset = 0;
p_write->len = sizeof(mydata); /mydata = "3,1"/
p_write->auth_req = GATT_AUTH_REQ_NONE;
memcpy(p_write->value,&mydata,sizeof(mydata));
wiced_bt_gatt_send_write ( g_client.conn_id, GATT_WRITE, p_write ); //Trial 1
and getting the status from
Finction : "wiced_bt_gatt_status_t clientapp_gatt_op_comp_cb( wiced_bt_gatt_operation_complete_t *p_data )"
operation : write
Status : 0x03 (WICED_BT_GATT_WRITE_NOT_PERMIT)
Case 2:
Prepared a packet to send
p_write->handle = 0x2A; /* write data */
// p_write->offset = 0;
p_write->len = sizeof(mydata); /mydata = "3,1"/
p_write->auth_req = GATT_AUTH_REQ_NONE;
memcpy(p_write->value,&mydata,sizeof(mydata));
wiced_bt_gatt_send_write ( g_client.conn_id, GATT_WRITE_NO_RSP, p_write ); //Trial 2
and getting the status from
Finction : "wiced_bt_gatt_status_t clientapp_gatt_op_comp_cb( wiced_bt_gatt_operation_complete_t *p_data )"
operation : write
Status : 0x00
Expected Scenario : At the peripheral side on receiving "3,1" the LED light has to start blinking,
Actual Scenario : but no activity of LED.
Note: from any other devices (Mobile app cysmart) its works fine , LED start blinking.
Show Less
Hello!
Although I saw a similar topic, I guess I'd need your guinness here:
Namely, I attached the CYBT_343026_EVAL platform as it's described on your website and did first flashing of my modules with either demos "hello_client" and "hello_sensor", changing the Make Target to "xxx-CYBT_343026_EVAL download UART=COM6" and that works perfect!
Following "Client control mesh app" user guide I wanted to flash my modules with mesh_provision_client snip application so I renamed the Make Target to "snip.mesh.mesh_provision_client-CYBT_343026_EVAL download UART=COM6" however I've got the errors like:
Compiling platform.c
Compiling spar_setup.c
Compiling mesh_provision_client.c
Compiling (Lib) fw_upgrade.c
Compiling (Lib) ota_fw_upgrade.c
Compiling (Lib) gatt_utils_lib.c
../../libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.c: In function 'wiced_ota_fw_upgrade_init':
../../libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.c:909:61: error: 'FLASH_SIZE' undeclared (first use in this function); did you mean 'OTP_SIZE'?
uint32_t fw_upgrade_flash_size = FLASH_SIZE;
^~~~~~~~~~
OTP_SIZE
../../libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.c:909:61: note: each undeclared identifier is reported only once for each function it appears in
../../libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.c:76:24: error: 'FLASH_SECTOR_SIZE' undeclared (first use in this function); did you mean 'DS_SECTOR_SIZE'?
#define DS_SECTOR_SIZE FLASH_SECTOR_SIZE
^
../../libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.c:921:85: note: in expansion of macro 'DS_SECTOR_SIZE'
fw_upgrade_flash_size = (FLASH_SIZE - (APPLICATION_SPECIFIC_FLASH_RESERVATION * DS_SECTOR_SIZE));
^~~~~~~~~~~~~~
makefile:291: recipe for target '../../build/mesh_provision_client-CYBT_343026_EVAL-rom-ram-Wiced-release/libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.o' failed
make.exe[1]: *** [../../build/mesh_provision_client-CYBT_343026_EVAL-rom-ram-Wiced-release/libraries/fw_upgrade_lib/../../../common/libraries/fw_upgrade_lib/ota_fw_upgrade.o] Error 1
make.exe[1]: *** Waiting for unfinished jobs....
Makefile:552: recipe for target 'snip.mesh.mesh_provision_client-CYBT_343026_EVAL' failed
make: *** [snip.mesh.mesh_provision_client-CYBT_343026_EVAL] Error 2
I did a clean (in make target) and compiled but it's still happening. May I get your support?
Thanks in advance!
Regards,
Jacek
Show LessHi,
CYW20719 will transfer a 300KB file. I fill this 300KB file in 'uint8_t data[512] ' array for 600 times and send it.
sendFile()
{
uint8_t data[512];
uint16_t i;
...
for(i=0; i<600; i++)
{
wiced_bt_gatt_send_notification(thermistor_conn_id, HDLC_FILE, sizeof(data), data);
}
...
}
Unfortunately sendFile( ) sends only 10 notifications every time(note: i<600) !
What's wrong?
Thanks a lot
Show LessI bought the CYW920719Q40EVB-01 Evaluation Kit hoping to use it as a higher powered bluetooth dongle. I gather that this would probably mean running an application on the dev board that just exposes standard HCI interfaces, and then the OS would know how to deal with it. Is there any such example HCI application which would make it just look detectable as a bluetooth devices to macOS ,Linux, or Windows?
Show LessHow to configure CYW20719 Data bus?
From the answer in the discussion above, it looks like we will have to read each pin respectively and combine them into an 8 bit data. It might be too slow as each bit will take a few instructions. Do we have a method to configure the pins to be read at once?
Thanks,
Yong
Show Less