PSoC™ 4 Forum Discussions
Hello,
I'm looking for a ready-made tool to perform an OTA Firmware Upgrade using the Security Key feature found in the Bootloader component v1.50.
That was once possible (maybe) with the Bootloader Host, but unfortunately (from AN97060) "Bootloader Host tool support for OTA is broken with the release of the CySmart 1.2 dongle firmware" - and we are using 1.2.1.21. I was initially thinking of downgrading the dongle's firmware, but I was unable to find the older versions on Cypress' site.
No CySmart version (PC, iOS, Android) seems to support the Security Key feature, so it looks like the only way to use it is by modifying the apps to get a customized one which supports that feature.
Can anyone shed some light on my doubts? Thanks!
BR - Stefano Voulaz
Show LessRight now I have to navigate to the Bootloader.hex and program it to my device, then navigate to my Program.hex and program that to my device for it to work.
Is there a way using PSoC Programmer to program my device with the Bootloader.hex and Program.hex at the same time?
Show Less1/ I have 10 samples of the CYBLE-212020-01, which we will be fitting in our new product.
The new PCB is around 2 weeks away, consequently, I’ve been using the CYBLE 212019-00 ( fitted to a Cypress kit cyble-212019-eval ez-ble evaluation board), which is plugged into a the CY8CKIT-042 BLE board.
2/Using the CY8CKIT-042 BLE board, I’ve used the over the air update example ( upgradeable stack and device CY8C4248LQI-BL583). This over the air update works.
I’ve changed the device to CYBLE 212019-00 ( same memory size to the BL583 etc ) and the i/o pin for sw2.
3/ After programming, the LED is green, I’ve used an APP on my mobile phone, which detects the ‘findme’ advertising packet. I can connect ( LED goes out) & then disconnect ( Green LED comes on). The Red LED comes on after 40 seconds ( the period which I’ve set in the GAP Settings).
4/ If I reset the dev kit ( SW1) & then press SW2 ( to request the over the air update ) when the LED is green, my mobile phone sees the OTA bootloader, however CY Smart 1.2 doesn’t see the OTA Bootloader.
The LED is RED and goes out completely after 3 minutes as set in the GAP setting in the upgradeable stack example project and the phone app no longer sees the OTA Bootloader advert.
( USB dongle is BLE 4.2, firmware 1.2.3.32, Hardware 2.0.0.0)
5/ When I reset the dev kit, the LED is RED and the mobile phone sees the OTA Bootloader advert, the LED goes off after 3 minutes.
6/ The only way that I can get the original ‘findme advert’ back is to reprogram the device from PSoc 4.0 creator.
Show LessI am using Chip: CY8C4245 LQI-483 and Program: PSoC Creator 4.
I have a custom designed board with 6 buttons and a slider and I am having a slight issue with a fraction of the boards (button and slider layout are in the attached .png). So the issue on these boards are mostly with button 6 but sometimes with 5 and even 4 (6 is far right and buttons go down as they go left).
As you can see from the pad location for the chip, it is between the buttons and the slider, I thought maybe the issue had to do with the distance the buttons were from the switch. However, when I run the program in debug mode I find that all of the buttons have very similar Cp (10-12pF). This is completely within the limits of this chip since the datasheet says SmartSense can do up to 55 pF.
Another issue I thought I may have had was the plastic thickness I had over the buttons. The datasheet says up to 5mm for plastic and I am at 3mm. The test that ruled this out for me was by removing the plastic and finding that even touching the button directly had the same issue.
Now when I change from SmartSense to Manual (with Run-time tuning) on some of these boards, it is able to pick up a signal wen the button is touched. On some boards this signal is weak but on others it is strong enough to trip the threshold.
Is there anything I can do to fix this problem and increase the signal? I have already tried changing the resolution and sensitivity in the CapSense module.
Show LessThe distributer said they do not have this board.
I am currently working with my first HID over GATT project. I am using the sample code for HID Keyboard as the starting point. However, I am unable to understand two things:
1. The 8 bytes of data I send out using CyBle_HidssSendNotification. What do they mean? Where can I find the specification?
2. How do I know when I can send another key? For example, if I want to send the string "Hello" what should I do? I tried sending via subsequent calls but only the first one arrive.
Thank you.
Show LessHi!
There is a project that requires communication between a battery and the inverter attached to the battery. The battery has an in built chip for communication. I am involved in designing the inverter. I have decided to use a PSoC-4M chip for inverter control.
The communication between the battery and inverter needs to happen over Modbus and/or CAN. Modbus is compulsary, CAN may or may not be included. The problem is that I have never used any of the two up till now. After searching, I found two PSoC-4M chips that have a CAN driver. But I can't find one with a Modbus driver. Neither can I find Modbus interface IC. Like we have SCB for I2C, UART, SPI etc. don't we have one for Modbus? Please help me find a way of implementing modbus support on PSoC-4M.
Thank you
Show LessHello,
I'm working on driving the dongle cypress CY5677 with a custom application which replace CySmart.
I have the 3 dlls cybledonglecommunicator.dll, cybledonglecommonbase.dll and cybleautobase.dll converted into .h files.
The 3 initializations are going well, I have no error on it.
I read the API_guide_reference but I'm still very confuse with the use of these files. Indeed, I want to set a BLE address to the dongle, so I want to use the following function :
int CVIFUNC CySmart_DongleCommunicator_API_ICyBleMgr_StartScan(
CySmart_DongleCommunicator_API_ICyBleMgr __instance,
CySmart_DongleCommunicator_API_CyBleScanSettings settings,
CySmart_DongleCommunicator_API_CyScanCallback cb,
CySmart_DongleCommunicator_API_CyApiErr * __returnValue,
CDotNetHandle * __exception);
Here is my issue, I don't know how to use this function, as example : the parameter " CySmart_DongleCommunicator_API_CyScanCallback cb " is only defined by " typedef struct __CySmart_DongleCommunicator_API_CyScanCallback * CySmart_DongleCommunicator_API_CyScanCallback; " in cybledonglecommunicator.h but how to initialize that type of variable ? I didn't find any create or get function.
Can you help me with this issue ?
Best regards,
Guillaume
Show LessHi all, I've been trying to get BLE notifications working correctly on the PROC, but I keep running into issues (perhaps they are related?)
1) I'm using an iOS app called LightBlue as my BLE client interface (I've used this for a year or two on dozens of BLE projects from other vendors, with no problems - so I think the app is solid). When I 'listen for notifications', and then perform an action which should send a notification from the PROC to the phone, I ALWAYS get 2 identical notifications. However, nowhere in my code am I sending the same notification twice (I've printf'd the hell outta my code and manually debugged).
Is there something in ProcessEvents, or elsewhere that I should be looking for potential causes?
2) I'm trying to send multiple notifications in a row, however, I get a crash which pushes the PROC into the exception handler infinite loop (I should be able to send 4-6 per connection interval, but at this point, I don't care about performance, I just don't want a crash). It crashes after the very first notification.
Here is the code which causes it (ble_Run gets called every iteration of the main.c loop, fakesync_data is just a uint8 pointer to a few hundred data points - static data, so it's not disappearing off the stack):
void ble_Run(void)
{
if (mIsSynching)
{
if(CyBle_GattGetBusStatus() == CYBLE_STACK_STATE_FREE && remainingPackets > 0)
{
ble_SendNotification(CYBLE_DATA_SYNC_DATA_CHAR_HANDLE, fakesync_data(), 20);
--remainingPackets;
}
if (remainingPackets <= 0) // Reset the test
{
mIsSynching = 0;
remainingPackets = 20;
}
}
CyBle_ProcessEvents();
}
void ble_SendNotification(CYBLE_GATT_DB_ATTR_HANDLE_T characteristic,
uint8* data, uint16 length)
{
CYBLE_GATTS_HANDLE_VALUE_NTF_T notification;
notification.value.val = data;
notification.value.len = length;
notification.attrHandle = characteristic;
if (CyBle_GattsNotification(cyBle_connHandle, ¬ification) != CYBLE_ERROR_OK)
{
PRINT("ERROR sending notification\r\n");
}
//CyBle_ProcessEvents();
}
Thanks!
And NOT the "A" which seems to crop up when I do a product search. Are they referring to the same thing?
Anyways, I'm trying to proto-type an application that uses this board. When I try to find the CY8CKIT-042-BLE kit in the "Create Project" dialog I can only find the CY8CKIT-042-BLE-A. When I select that "Target Kit" I end up with the incorrect processor. It shows the CYBL11573-56LQXI instead of the CY8C4247LQI and of course refuses to program it.
Cheers!!
Show Less