Newbie help with EZ-BLE

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

cross mob
Anonymous
Not applicable

I'm trying to get a sample app running on my new CYBLE-212019 evaluation board using Creator v3.2 and Programmer v3.25.0.  

   

I selected a sample project for PRoC BLE device family (device information) and it builds just fine, apparently for CYBL10563-56LQXI.

   

The programmer, PSoC MiniProg3, correctly identifies my device as 212019, but it complains that "The hex file does not match with the acquired device, please check the device".  

   

Creator/Project/Device Selector offers me a bunch of parts, but none of them are 212019

   

How do I map the Creator device selection to my 212019?  Or is the problem elsewhere?

   

TIA, Richard

0 Likes
18 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Welcome in the forum, Richard.

   

I would suggest you to update Creator to latest version (4.0). This will enable the newer devices.

   

 

   

Bob

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Thanks Bob.  I'm now able to program and run the sample apps (rookie mistake)

   

Unfortunately, the apps all hang up in the infinite loop in IntDefaultHandler after trying to start BLE.  I'm guessing it's a configuration issue, but darned if I can find where.  I haven't changed any of the code and the fault seems to be inside the stack for which there is no source.

   

 

   

   

0 Likes
rola_264706
Level 8
Level 8
50 likes received 25 likes received 10 likes received


Increase your Heap size to 0x200 that may help.

0 Likes
rola_264706
Level 8
Level 8
50 likes received 25 likes received 10 likes received

Post you code so we can check it.

0 Likes
Anonymous
Not applicable

Thanks for the suggestion but no go.

   

I increased the heap size to 0x800; results are the same - infinite loop in the IntDefaultHandler. Note that the while(1) is not the trap for ENOMEM error, but the else case.  I added code to save the error number and in both the Device Information and FindMe examples, errno is 0.  Curiously, running the temperature measurement example app, the error number is 0x58.  But they all hang up in the same place.

0 Likes
rola_264706
Level 8
Level 8
50 likes received 25 likes received 10 likes received
        What example are you using?   
0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Take the error message seriously: Something definitively has gone wrong. When this happened before main() is called something with the oscillators went amiss. When past initialization you probably clobbered the stack.

   

Post your actual code, everything else is guessing.

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

@bobgoar

   

Increasing the heap size to 0x0200 is not a cure for errors other than printing floats. It has to do with the float formatting of newlib nano which seemingly clobbers the heap. I found out when I tried to print floats under my "ARTS" rtos.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Below is the code that fails.  I did not write this code, I'm just trying to run the example application (BLE_Device_Information_Service) that comes with PSoC Creator 4.0.  The call to CyBle_Start() never returns because the code ends up in an infinite loop in the IntDefaultHandler().  Errno is NOT "ENOMEM".  

   

Is it perhaps that I'm using the MiniPOrg3 debugger rather than the Pioneer dev kit? 

   

Thanks,

   

Richard

   
   

int main()
{
    const char8 serialNumber[] = "123456"; 
    
    CyGlobalIntEnable;  
    
    Disconnect_LED_Write(LED_OFF);
    Advertising_LED_Write(LED_OFF);

   

    CyBle_Start(AppCallBack);  

   

     ^^^^^^^^

   

    NEVER RETURNS FROM THIS FUNCTION
    

   
0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Not enough memory error? check your stack settings.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

1. Errno is NOT ENOMEM

   

2. I've increased the stack and heap to 4kb each, it still hangs up.

   

Is there anyone from Cypress on this forum?  I really expected development kit samples to work out of the box; am willing to troubleshoot the problem, but there's no source for the code which is failing.

0 Likes
Anonymous
Not applicable

Hi Richard,

   

Can you archive your workspace with the Project -> Archive Workspace/Project menu entry and attach it here? If it is a problem with the source somewhere, it will be reproducible on another device (e.g. my BLE Pioneer kit with CYBLE-212019-EVAL module). If it is a problem with your hardware, then your unmodified source should compile and run correctly elsewhere.

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi jrow,

   

Thanks for helping.  I've attached the 'complete' archive ('bundle' archive was too large to upload).  I've also attached the output from the build process.  

   

The only change I made to the example app is to increase stack and heap to 0x1000 each.

   

One possibly 'non-standard' wrinkle is that my project is not located in the default location suggested by the Creator.  The Creator wants to put the project on one of our servers, but it fails to build there so I am have pointed the Creator to create the project on a directory on my local C: drive.

   

Richard

0 Likes
Anonymous
Not applicable

Hello Richard,

   

I compiled and flashed the project that you sent onto my CYBLE-212019-EVAL module (plugged into an original CY8CKIT-042-BLE kit), and it appears to boot and run correctly. The green LED blinks for a while, then eventually switches to solid red. While the LED is blinking, I am able to discover the device in a scan from CySmart and connect to it, and discover all attributes.

   

I confirmed with WinMerge that my compiled output is 100% identical to your compiled output, so it isn't anything unique on my machine. If you flash the same output .hex file onto your own module with either Creator or PSoC Programmer, and it does not run correctly, then I suspect a hardware issue with your kit or module.

   

Can you confirm:

   
        
  1. J16 on the Pioneer kit has a jumper selecting either 5V or 3.3V
  2.     
  3. J15 on the Pioneer kit has a jumper connecting VDD to BLE_VDD
  4.     
  5. J3 on the CYBLE-212019-EVAL module has a jumper connecting VDD to VDDR
  6.    
   

These (or electrical equivalents) are all necessary for correct operation. Especially J3 could cause a problem for you; VDDD is required for programming, but VDDR is required for radio operation.

0 Likes
Anonymous
Not applicable

I don't have a Pioneer kit.  Rather I am using the CY8CKIT-002 Miniprog3 Evaluation kit.  The documentation and sales literature says that the EZ-BLE Evaluation board can be used with either the Pioneer or MiniProg3 evaluation kits.  

   

http://www.cypress.com/products/ez-ble-proc-module-bluetooth-smart

   

Is that not true?  Is the Pioneer kit required?

0 Likes
Anonymous
Not applicable

I got a Pioneer board from a colleague and the example apps are now working as expected.  Not sure what the issue was with MiniProg3, but I'm up and running now.  Thanks to all for your help.

   

Richard

0 Likes
Anonymous
Not applicable

Glad to hear that it's working for you. The MiniProg3 works fine for programming, and the KitProg main board is not strictly necessary for most of the demos (including this one), although it is really convenient.

   

Do you have target power enabled at 3.3v or 5v in the Port Setting dialog for the MiniProg3? And, is the VDD-VDDR jumper in place to ensure the radio is powered along with the digital logic supply?

0 Likes
Anonymous
Not applicable

I tried the MiniProg3 again and found that the J3 on the 212019 module was not installed correctly.  Its embarassing because I checked jumpers several times and somehow missed that 😞 

   

Thanks for your patience

0 Likes