PSoC™ 4 Forum Discussions
Hi,
I want to send 512 bytes row data to PROC BLE by using the command "Write Long Characteristic Value" of CySmart,
when the AppCallback() function get a few "CYBLE_EVT_GATTS_PREP_WRITE_REQ",
the CySmart will get the error code : "BLE_GATT_ERR_PREPARE_WRITE_QUEUE_FULL".
How do I modify the queue size?
I tried to change the heap and stack size in cydwr (Design-Wide Resources) but it is not help!
Thanks!!
Aaron Deng
Show LessBeen using Micropython on the Raspberry Pi.
More ARM chips are now running Micropython.
Recently Micropython has been ported to the BBC Microbit.
Any plan to do likewise for the Cypress Bluetooth parts?
PRoC modules would be first obvious target!!!
It would be harder to do the PSoC BLE because of the programmable hardware?
An Arduino like library made from Creator?
The Spansion ARM Cortex M4's would also be nice in the ARM mbed environment.
I don't see Cypress in the mbed vendor list.
I can see the BBC Microbit turning the embedded micro world upside down like the Raspberry Pi is doing to the low cost PC and Linux market.
BBC Microchip and Bearlabs are going to do wonders for the Nordic BLE chip and Freescale.
Cypress BLE Smartbit for USA/RoW school kids?
Recompile Designer/Creator to run on my Raspberry Pi's?
A bit too big an ask? Next year?
Show LessI'd like to use the CYBLE-022001 in my wearable gadget design.
The BLE modem functions to transmit serial data to a smartphone.
Does this module default to a basic COM interface?
Other radios come pre-programmed with UART 9600 BAUD Slave mode firmware.
Is there a similar option for CYBLE-022001, or will it need to be flashed?
Show LessI just want to change color on the RGB LED, I modify the PrISM example code.
here is the CODE:
void sleep(int s)
{
int x;
while(x<s)
x++;
}
int main()
{
/* Start PrISM */
PrISM_1_Start();
/* Enable Global Interrupts */
CyGlobalIntEnable;
/* No work has to be done in main loop */
while(1u){
PrISM_1_WritePulse0(255);
PrISM_1_WritePulse1(0);
sleep(1);
PrISM_1_WritePulse0(255);
PrISM_1_WritePulse1(255);
sleep(1);
}
}
but it only change two times, after that, it is no longer to change
Show LessHi there,
I am working on a design where I need the best touch sensing performance available, especially to achieve long distances for proximity detection.
Does the PSoC4 CapSense component have similar performance to a dedicated chip like the MBR3? Which IC would be the one to choose with the best sensitivity of all?
Thanks a lot for your help.
Regards,
Joe
Hi,
Just wondering if it is possible to debug the 049kit using the KitProg from the 059kit? I select the debug target from the Debug menu but no break points are hit. Is it flat out not compatible?
Thanks.
Show LessI have an idea for a PSOC BLE peripheral device connecting to a smartphone. The smartphone needs to know the Peripheral is available and working all the time. Some very infrequent (once per month) trigger event happens on the Peripheral and it needs to make the smartphone aware quickly (latency <2s). The app on the PSOC also needs to know when the smartphone has received the event (latency <2s).
I want maximum to squeeze every last drop of battery life on the peripheral so was considering that having a long term, open GATT connection running between the two devices might not be the best power saving strategy (this is just a hunch btw). Hence I have thought of several scenarios involving complex advertising strategies, something like:
1 Peripheral: Broadcast "I'm here" (Advertise Slow, undirected, non connectable).
2 Smartphone: observes "I'm here", performs some simple internal operation.
3 Peripheral: Some predetermined event happens to an external sensor and fires a GPIO isr.
4 Peripheral: StopAdvertising.
5 Peripheral: Change advertising data reflecting the "triggered" state.
6 Peripheral: Advertise Fast, connectable "triggered"
7 Smartphone: detects new advertisement "triggered"
8 Smartphone: connects to Peripheral
9 Smartphone: writes a characteristic
10 Peripheral: detects write operation
11 Peripheral: performs internal operation
12 Peripheral: disconnects smartphone
13 Peripheral: resets
This looks reasonable and I have already created a smartphone app which is continually scanning for advertisements from the peripheral. Surprisingly this constant filtered scanning has shown little impact on device battery (Nexus 5, Lollipop) so I am assuming it's been offloaded to the smartphone's BLE subsystem.
Areas of concern
Step 6 where I change from non-connectable to connectable advertising. Anyone got an example, seems it should be possible?
Step 8 I'm not too bothered about security but I suppose if I use a whitelist on the Peripheral then I wont have to implement a rogue client disconnect strategy. But the smartphone will no doubt use a random public address for privacy so I'll need some previous bonding stage to enable the resolving of client addresses for the whitelist. I seem to recall that IRK wont work with whitelist and that my PSOC app needs to do the address resolution itself, am I correct? The upside of this though is that the connection from the bonded smartphone could serve as a suitable "triggered" acknowledgement without the need to update a GATT characteristic.
Any comments welcome especially on areas of power consumption and my areas of concern.
Regards
Paul
Show LessI experience very unsteady connection times when establishing a connection between twi CYBLE-022001-00 modules.
One module is configured as central, the other a peripheral. The time I am talking about is the time measured between the "CYBLE_EVT_GAPC_SCAN_PROGRESS_RESULT" event at the central
and the "CYBLE_EVT_GAP_DEVICE_CONNECTED" event at the peripheral.
Normally this time is wll below 100ms. But sometimes it takes 1 second, or even two seconds until the peripheral receives the "CYBLE_EVT_GAP_DEVICE_CONNECTED" event.
For clarification I added two screenshots:
The first "BLE-Connection-Good.png" is the good case.
The second one "BLE-Connection-Bad" is an example of a bad one.
The time scale is the same (100ms/div) in both screenshots.
The channels are as follows:
Green, rising edge: central receives "CYBLE_EVT_GAPC_SCAN_PROGRESS_RESULT" event
Red, rising edge: central calls "CyBle_GapcConnectDevice()"
Yellow, rising edge: periperal receives "CYBLE_EVT_GAP_DEVICE_CONNECTED" event
Blue: current consumption of peripheral (approx. 20mA/div); when the yellow trace is high, an additional LED current of approx. 40mA flows.
Does anyone have a hint for solving this issue? I wouldn't care about a fluctuation of 100ms to 300ms. But more than 1 or 2 seconds?
Thanks in advance.
Regards,
Martin
Edit: I just realized that I accidentally uploaded two identical pictures (both were the good case), fixed.
Show Less