Recent discussions
I'm pretty much a noob with Cypress BLE PROC/PSOC but loving the cypress BLE dev environment. I want to use my CY5677 USB dongle to scan for BLE iBeacons in order to determine an estimate distance for any beacons detected based on TX power and RSSI.
I'm stuck on the basics. Typically a beacon / another PRoC assigned as a beacon will transmit a predefined data packet (lets say iBeacon format). This typically includes an RSSI value from the beacon. Do I treat this as TX power and then use the CY5677 to estimate it's RSSI value to then calculate beacon distance based on a standardised formula (there's a few available if you search online).
Insight / pointers greatly appreciated.
Thanks.
Show LessHi,
How to know if the BLE device is scanning in FAST mode or SLOW mode? In fact, for my particular case, I would like to know when exactly the device is advertising to blink a LED at the same rate.
Thanks,
Denis Alain, Eng.
Show Lesshello,
I can not change the maximum number attached to my device.
I do not want to do the pairing for each connection
see file BLE_StackGap.h
We are using the CYBLE-022001-00 module in a project and need to send some commands to another device via the I2c bus. Is anyone aware of a sample project that covers this application?
Show LessHello Everyone,
I am using two PROC BLE devices one configured as GAP Peripheral & another as GAP Central.
I want to scan for the device and run service discovery only for the first time I connect with the device.
From the second time onwards I should only connect to the device update a value and disconnect.
Is this possible?
Show LessHey guys, I'm designing authentication control system with rfid keys. And I stacked with one issue - rfid reader is connected with UART and it causes non-stop stream of received data. I've decided to solve that with making a flag that UartGetChar works only if correct key haven't been founded, but it works just with right key I need the same limit for incorrect key, because non-stop stream is bad idea to work with. I tried to make flag that changes state after arrays were compared, but it works incorrectly, first comparison is good but while array is forming second time in array first 7 elements are empty spaces and output looks like this -
Access granted! Card Number: 09008B316BD8
Time ran out!
Access denied! Card Number:
Time ran out!
Access denied! Card Number:
Time ran out!
Access denied! Card Number:
Time ran out!
And it doesn't matter what key I check, true or false it makes the same output.
Show LessI want to send single advertisement packet on particular event (data from serial interface) without entering Deep Sleep mode, In Project #009: Dynamic Broadcaster I use CyBle_GappStopAdvertisement()
to stop advertisement (see code below). However, when I call CyBle_GappStartAdvertisement(CYBLE_ADVERTISING_FAST)
it seems to be ignored. Why CyBle_GappStartAdvertisement(uint8 advertisingIntervalType)
doesn't work?
int main()
{
InitializeSystem();
UART_1_Start();
for(;;)
{
CyBle_ProcessEvents();
rxData = UART_1_UartGetChar();
if (rxData)
{
CyBle_GappStartAdvertisement(CYBLE_ADVERTISING_FAST);
}
else
CyBle_GappStopAdvertisement();
#if ENABLE_DYNAMIC_ADV
DynamicADVPayloadUpdate(rxData);
#endif
}
}
Hello,
I'm using CY8CMBR3116 CapSense controller in my project. HI is configured on pin23 (SPO0), CSx pins also - related to connected buttons.
In datasheet p.15 it is described that HI should be enabled in every change of CSx.
How it should be (according to datasheet)
On button activation HI goes low for THI after this time back to high,
on release goes low for THI after this time back to high. (Figure 10)
How it works
On button activation HI goes low and stays as long as button is pressed.
It will go high only on release.
Because of this it is not possible to detect action on other button (without pooling) while other is pressed.
I couldn't find any description how to use it like in datasheet and also I couldn't find anything to configure in register map.
So where is the problem, hardware or missing configuration?
Thanks.
Show LessHello,
we try to connect from cyble-022001-00 to 3 or 4 cyble-022001-00 successively.
First : we build a array ( TONOFFC [][] ) with the mac addresses we want to connect to.
Second : we read the address in the array and setup the peer address after that we connect.
Third : We disconnect the ble . This code is managed in other condition because that doesn't work if it is in the previous condition.
See below a part of our code :
Main ()
{
......
while (1)
....
{
peerAddr.bdAddr[0]=TONOFFC[intTest][5];
peerAddr.bdAddr[1]=TONOFFC[intTest][4];
peerAddr.bdAddr[2]=TONOFFC[intTest][3];
peerAddr.bdAddr[3]=TONOFFC[intTest][2];
peerAddr.bdAddr[4]=TONOFFC[intTest][1];
peerAddr.bdAddr[5]=TONOFFC[intTest][0];
peerAddr.type = 0;
CyBle_GapcConnectDevice(&peerAddr);
CyBle_ProcessEvents();
}
if(state==CONNECTED )
{
CyBle_GapDisconnect(cyBle_connHandle.bdHandle);
state=DISCONNECTED;
CyDelay(200u);
CyBle_ProcessEvents();
}
}
Result :
For the moment only the first device of the array is working. the while loop works correctly because each variable change.
But there is no connection to the second , third ... devices.
If somebody have any idea , please help us.
Nota : We already use this code for connect one cyble-022001-00 to another one and it works fine.
Show LessCan i use LE Generate DHKey Command for CY5676A PRoC BLE 256KB Module in HCI mode ?
Because i get the status 'Unknown HCI Command' :
@15:12:38.733 <+ 50 msec> DUT command
raw = [0x01, 0x26, 0x20, 0x40, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10]
Opcode = 0x2026 (HCI_LE_GENERATE_DHKEY)
Parameter Total Length = 0x40
Remote_P_256_Public_Key = 0x100000000000000F100000000000000F100000000000000F100000000000000F100000000000000F100000000000000F100000000000000F100000000000000F
-------------------------------------------------------------------------------
@15:12:38.747 <+ 14 msec> DUT event
raw = [0x04, 0x0F, 0x04, 0x01, 0x01, 0x26, 0x20]
Event Code = 0xF (HCI_COMMAND_STATUS)
Parameter Total Length = 0x4
Status = 0x1 (Unknown HCI Command)
Num_HCI_Command_Packets = 0x1
Command_Opcode = 0x2026 (HCI_LE_GENERATE_DHKEY)