Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

Studio Bluetooth Forum Discussions

edOfTheInfineon
Level 1
5 questions asked 5 replies posted 5 likes given
Level 1

I am seeking advice on using CYSPP to connect to an iOS app.

What I Am Doing

  1. EZ-Serial has been installed on CYBT-483039-EVAL board
  2. CYBT-483039-EVAL board is connected via USB serial port to PC
  3. PC app is emulating a BLE device that will use a CYBT device
  4. iOS app connects to CYSPP service
  5. iOS app sends dumpbinfile command to CYSPP device
  6. PC app, in response to  dumpbinfile, returns number of bytes it is about to send, then dumps contents of a binary log file by sending binary data directly to CYBT-483039-EVAL board, appending a CRC32
  7. iOS app received data over CYSPP Unacknowledged Data Characteristic

All is good most of the time. 

Intermittently, the iOS app does not receive the expected number of bytes.  Data loss is more common on a larger 3 MiB file than a 7 kB file.

Questions:

1) Is problem because I am sending data to CYBT-483039-EVAL over PC USB serial without using any API commands?

2) For reliability do I need to use both the Acknowledged Data characteristic and RX Flow characteristic ? 

3) How can send binary data to CYBT-483039-EVAL board, over the USB serial connection, to the Acknowledged Data characteristic and use RX Flow characteristic ?

 

When I send data to CYBT-483039-EVAL over PC USB serial, it appears by default, to send using Unacknowledged Data Characteristic.

Thank you for your help,

-Ed

 

 

 

0 Likes
2 Replies
DheerajPK_41
Moderator
Moderator 750 replies posted 500 likes received 500 replies posted
Moderator

Hi,

"When CYSPP data mode is active, any data received from an external host will be transmitted to the remote peer, and any data received from the remote peer will be sent out through the hardware serial interface to the external host" - This means, you do not have to use any APIs for communicating between an external host and CYSPP device. It is already implemented in that way.

For reliability, you can definitely use Acknowledged Data as well as RX Flow Control.

 

As you can see in the user guide, the remote device (IOS) can choose data characteristics. 

2. Upon connection, a remote peer must subscribe to one of the two “Data” characteristics:
a. Acknowledged Data, enable indications (guaranteed reliability)
b. Unacknowledged Data, enable notifications (faster potential throughput)

Please check the below user guide.

https://www.infineon.com/dgdl/Infineon-EZ-Serial_WICED_Firmware_Platform_User_Guide_for_CYBT-4830XX-...

Thanks,

-Dheeraj.P.K

edOfTheInfineon
Level 1
5 questions asked 5 replies posted 5 likes given
Level 1

Dheeraj,

Thank you for explaining why sending binary data to CYBT eval board seems work without using APIs.

Could my missing data be caused by PC over-running the CYBT Eval board, when sending 3 MB of binary data over USB serial to CYBT eval board?

Looking at the silkscreen, module solder pad 22 is RTS and I never see RTS go low. However, I also see no data on module solder pad 24 RXD UART (HCI UART) Receive Data Only, but I can see data being received by the iOS client app.  I do not see how this is possible.  Maybe I forgot how to use an oscilloscope.  I see UART flow control enabled by factory default.
 
My eval board is configured with SW4 HCI UART all switches ON
 
Thank you for your patience,
-Ed
0 Likes