PSoC™ 4 Forum Discussions
I am very puzzled by the API for controlling GAP Peripheral advertising. There appears to be two API functions:
CyBle_GappEnterDiscoveryMode: This requires a user-provided CYBLE_GAPP_DISC_MODE_INFO_T structure and allows full control of the settings ignoring the component configuration.
CyBle_GappStartAdvertisement: This seems to take the settings from the component configuration with the only option being to chose between Fast and Slow interval settings from the configuration ('custom' is also documented, but it is not clear what this does).
The second of these API functions is generated code which can be examined in source form, from which we can see that it simply calls the first (which is precompiled and not visible) passing it an undocumented CYBLE_GAPP_DISC_MODE_INFO_T instance which has presumably been created from the configuration settings (after some patching of interval settings).
This seems to be a very "all or nothing" approach: either let the component configuration control the one-and-only advertising settings or forget the configuration and do it all programatically. What if you just want to programatically control the Discovery Mode, for example? If you use Limited Discovery Mode, you will typically want to revert to Non-Discoverable advertising afterward so the paired central can re-connect.
I have found myself copying the source of CyBle_GappStartAdvertisement into my own code and modifying it with parameters to change other advertisment settings such as discovery mode. But this is not good programming practice since it assumes undocumented features not part of the API. Is there a better way?
Show LessMy understanding is that CySysFlashWriteRow API can be used to write data to flash
However it's not clear how to programmatically determine the row number where application data can be written
What's the recommended way?
This is for CYBLE 022001-00
Thank you
Show LessI'm trying to use RSSI as a rough measurement of distance using a CYBLE-214009-00 and connected Android phone. To do this, I've set up a thread on an Android application to continually poll the RSSI value, then use the CYBLE-214009-00 to print the value over the UART TX port and send the RSSI back to the phone to display it there. However, if I sample the RSSI below 200 ms, I typically see values like 127 dBm appear. However, if I do NOT send the RSSI back to the phone (and only print to the UART port), I can sample as fast as I want. Is there any particular reason why this is happening?
Thank you,
Alex
Show LessHi,
I've developed a software library for Bluetooth BLE Secure OTA updates, the Secure Device Update library (SDU) which leverages existing open source mobile applications and development scripts. I'm considering porting it to the PSoC 4 BLE if there is any interest.
Here's a LinkedIn post which describes the project in more detail:
https://www.linkedin.com/pulse/announcing-secure-device-update-sdu-library-ota-through-dan-walkes
I'm curious if anyone using the PSoC 4 would find this useful. If so please contact me at danwalkes@trellis-logic.com, via LinkedIn, or add comments here.
Thanks!
Dan
Show LessI am trying to use the CY5670 CySmart USB dongle with a C# program using the CySmart APIs. I found example code for connecting to the dongle, but every time I try to connect I get an error--"Not a valid CySmart Dongle!" I have made sure the firmware is up to date, and the dongle works fine with the CySmart software. What could be the problem here?
I've attached my code and the DLLs I'm using.
Thank you.
Show LessI am not sure where to post this small remark about EZ-Serial API documentation, so feel free to move or delete this post.
I am working with the EZ-Serial Host API library and I found a small error in the documentation.
In "EZ-Serial User Guide 0002-11259 Rev. *C", Section 7.2.5.11, Command arguments, the data type for the "data" field should be "uint8a" instead of "longuint8a".
Data type for this command are defined in "ezapi.h" line 1618-1623.
This is not a problem when using the command-specific structure defined in "ezapi.h" (i.e. "ezs_cmd_gatts_notify_handle_t"), but in my code I used another type/declaration.
Please let me know where I can post such a remark if I found other errors in the documentation or in the Host API.
Up to now the Host API works great (ported on a Cortex-m0+), and the documentation is nice.
Best,
David
Show LessI am interested to use the CY8C4014FNI-421T WLCSP-16 device. I cannot find any documentation in the PSOC4 datasheet, or any of the WLSCP hardware/layout application notes as to which pin on this device functions as the XRES reset function for programming. It is listed for the other packages in this family, but not this device. Without this information and having a high level of confidence I will be able to program it, I can't move forward with wanting to use this device.
Thanks,
Kevin
Show LessHi,
in my current project I want to send a value from my Arduino UNO to my PSoC 4200.
I looked into some examples and videos but unfortunately I don't get it...
I suppose in my case the PSoC is the master, isn't it?
I want the received value to be stored in a variable.
For instance I send 0x01 from Arduino to the PSoC.
This value should be stored in a variable in PSoC so I can process it.
What is the easiest/beginner friendliest way to realize this?
Hello,
I am facing a weird problem. I am able to program my CYBLE-102011 eval board using MiniProg3 in PSoC Creator studio. However, I am unable to program using PSoC Programmer.
I uploaded my PSoC programmer screenshots in the attachments. The settings are same as the Port Settings in PSoC Creator. I am exiting creator studio before I open PSoC program to avoid acquire conflicts.
1.PNG shows the PSoC programmer when I connect my MiniProg3 to the PC with EVAL board attached and after I click 'Progrram'
2.PNG shows up after a while with error messages.
The busy LED on the MiniProg3 never lights on even though the PSoC creator shows BUSY.
What am I missing?
Thanks
Dheeraj