RoadTest: PSoC® 6 WiFi-BT Pioneer Kit (CY8CKIT-062-WIFI-BT)
Author: MARK2011
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?:
What were the biggest problems encountered?: Kitprog firmware update issues (described in RT below); Necessity of install at least two large programming suites (disc capacity issue) Lack of BT or TFT examples for particularly PSoC6 WiFi BT Kit
Detailed Review:
Thank you Cypress, thank you Element 14 for providing me not only very interesting equipment:Cypress PSoC6 WiFi-BT Pioneer kit
but also opportunity to deal with fascinating nevertheless quite challenging project.
The PSoC 6 board is a low-power programmable system dedicated to developers of modern IoT systems.
Learning its parameters and features we may become overwhelmed by such a small and powerful tool.
But don't worry - good documentation, instructions and manuals accompanied with many examples
together with active as well as helpful Cypress support / community forum will never let you get lost.
On the other hand - programming, using PSoC creator or Wiced Studio is relatively demanding.
In that (IDE) case advertised "Arduino compatibility" would not work.
I planned to write some details about features later but let me emphasize most interesting components of the kit:
4GHz WLAN & Bluetooth functionality module ( WiFi + Bluetooth combo chip) which opens the "doors" to the world of IoT
And invitation to create many incredible projects using additional sensing environment:
Maybe you think about audio related projects:
last not least...
The story starts from quick unboxing
The kit is delivered in safe and elegant box.
If you ask for quality of delivery and packing I'm glad to confirm the best ranks.
The USB “C” standard has been appreciated by Cypress which seems to be quite handy nowadays!
The USB cable is 1m long.
The mainboard and TFT module are delivered coupled.
If you hoped to start the adventure with PSoC6 from reading of paper manuals you may be disappointed but I'm sure all of us
are accustomed and confirm lack of paper documentation provided together with equipment.
not that there was nothing - Convenient and quality guide is attached
CY8CKIT-062-WiFi-BT PSoC® 6 WiFi-BT Pioneer Kit Quick Start Guide.pdf
A little funny thing are wires accompanied the kit.
Although that hardware lags behind a little from remaining parts of the kit it's not a bad idea to support some DIY conventional projects.
My question is did you Cypress wanted to keep the right balance between wired and wireless (WiFi+BT etc..) technologies?
Soon after plugging the kit greets us invited to explore the implemented onboard demo CE222494
But let me tell about it later.
At the beginning I want to summarize some basic names types and markings as we have it mixed a little.
full name:
CY8CKIT-062-WiFi-BT
PSoC 6 WiFi-BT Pioneer Kit
other names used
Cypress PSoC6 WiFi-BT Pioneer kit
PSoC6 Pioneer Kit CY8CKIT
Main components:
CY8CKIT-062-WiFi-BT Board
CY8CKIT-028-TFT Display Shield
the heart of that beast is
CY8C6247BZI-D54 Cypress PSoC 6 MCU
I promised myself not to copy or multiply datasheets wide available on the net
the summary of parameters and features of the kit is well described and available on Cypress site.
But let me present only:
Remaining informations are easy available in:
Below - documentation I found most convenient and I used mostly:
CY8CKIT-062-WiFi-BT_Kit_Guide.pdf (rev.E)
CY8CKIT-062-WiFi-BT_Quick_Start_Guide.pdf
PSoC 6 Brochure.pdf
AN210781 Getting Started with PSoC 6 MCU with Bluetooth Low Energy BLE Connectivity.pdf
AN219434 Importing PSoC Creator Code into an IDE for a PSoC 6 Project.pdf
AN213924 - PSoC 6 MCU Device Firmware Update Software Development Kit Guide.pdf
KitProg2_User_Guide.pdf (Document Number: 002-10738)
All available at cypress site:
Cypress.com Kit Resource Page
Cypress Programming Solutions
https://www.cypress.com/products/psoc-programming-solutions
or on the GitHub: PSoC-6-MCU-Getting-Started
https://github.com/cypresssemiconductorco/PSoC-6-MCU-Getting-Started
32-bit Arm® Cortex®-M4 PSoC® 6
https://www.cypress.com/products/32-bit-arm-cortex-m4-psoc-6
And great help online: Cypress Developer Community Page
with great support for PSoC 6 MCU
https://community.cypress.com/community/psoc-6
https://www.cypress.com/products/psoc-creator-integrated-design-environment-ide
installs all components required for a programming and debug solution.
equipped with following additional tools
https://www.cypress.com/products/wiced-software
WICED Studio Wi-Fi/Combo Docs and Downloads
https://community.cypress.com/community/wiced-wifi/wiced-wifi-documentation
https://www.cypress.com/products/modustoolbox-software-environment
Honestly - not used yet but seems to be more and more required...
KitProg is Cypress’ low-level communication firmware for programming and debugging - not available as a separate product.
Programming tools listed above use a KitProg. Cypress development kits have KitProg firmware installed, and so “just work” with supported IDEs.
After installation of the most recent programs, the KitProg2, is available
To get most recent (KitProg3 in my case) you need to initialize the upgrading.
All necessary documents, instructions basic examples as well as required software can be downloaded as an ISO image.
The content of DVD image: CY8CKIT-062-WiFi-BT Kit ISO (Create CD) (1,19GB)
I have decided to burn that disc but I don’t recommend it.
All of the disc content covers above described software and documents which is available and easy/ clear to find and download (fresh - most recent version)
Download packages variants:
CY8CKIT-062-WiFi-BT Kit Only: This executable file installs only the kit contents, which
include kit code examples, hardware files, and user documents. This package can be used if all the software prerequisites (listed in step 3) are installed on your PC.
CY8CKIT-062-WiFi-BT Kit Only Package (Kit Design Files, Documentation, Examples) (33,1MB)
CY8CKIT-062-WiFi-BT Kit Complete Setup: This installation package contains the files
related to the kit including PSoC Creator, PSoC Programmer, and PDL. However, it does not
include the Windows Installer or Microsoft .NET framework packages. If these packages are
not on your computer, the installer will direct you to download and install them from the
Internet.
CY8CKIT-062-WiFi-BT Kit Complete Setup (Kit Design Files, PSoC Creator, PSoC Programmer, Documentation, Examples) (568.65MB)
Talking about software I can't omit just another group of applications:
Yes: for any interested in development of BT projects, Cypress release free mobile apps:
https://play.google.com/store/apps/details?id=com.cypress.cysmart
https://play.google.com/store/apps/details?id=com.cypress.cypressblebeacon
https://play.google.com/store/apps/details?id=com.cypress.app.wicedsense
PSoC 6 MCU Code Examples
https://www.cypress.com/documentation/code-examples/psoc-6-mcu-code-examples
Materials are available on both Cypress "root" site or on its Github repositories
PSoC 6 MCU Device Related Designs
https://github.com/cypresssemiconductorco/PSoC-6-MCU-Device-Related-Design
Code example repos for ModusToolbox software (in my case - field of further experiments).
https://github.com/cypresssemiconductorco/Code-Examples-for-ModusToolbox-Software
Very valuable courses were prepared in "Cypress Academy"
I followed well presented webinars at:
Cypress Academy:Online Video Training and Tutorials from Cypress:
https://www.cypress.com/training/free-online-video-training-and-tutorials-cypress
Courses are accompanied with files needed to conduct examples from "Cypress Academy PSoC 101"
https://github.com/cypresssemiconductorco/CypressAcademy_PSoC101_Files
And here let me for some complaining... one of (not a little) examples of my bad luck:
CE218138 – PSoC 6 MCU with BLE Connectivity: BLE Thermometer (RTOS)
Very interesting subject, fruitful from the point of view of learning PSoCs features
but unfortunately not for my WiFi-BT kit:
After some attempts to adapt it to run it on my (062 WiFi- BT) kit I found definitely confirmation that following statement is absolutely right:
"If you want to just use BLE, and want to use PSoC Creator then I suggest you get the CY8CKIT-062-BLE.
unfortunately above concerns most fine examples for PSoC kits.
I'm honestly disappointed that many BT examples I wanted to use/ learn/ modify, are dedicated to the BLE kit only!
I honestly admit, I decided to follow the instructions from getting started leaflet,
without special preparation and software installation.
The beginning wasn't smooth as I hoped …
After connecting to the USB driver installation started but soon I got:
it must have been driver mismatch!
????
lets find the solution: searching the "kitprog usbuart" sentence directed me soon at:
https://community.cypress.com/thread/20596
also looking for similar issues and the proposals of solution:
“Please re-install the PSoC Programmer from: <http://www.cypress.com/products/psoc-programming-solutions>.”
after install PSoC Programmer and plug in the device:
!!!!!!!!!!!!!!!!!!! OK!!!!!!!!!!!!!!!!!!!!
In the new "virtual" E folder I found the file:
STATUS.TXT with following content:
Cypress KitProg2 v1.05 Mass Storage Programmer.
Click the mode switch button to exit or enter Mass Storage mode.
NOTE: Only PSoC 4/6 Families are supported in this version. Dragging and dropping of a HEX
file shall trigger the programming of the target device. In case of an incorrect HEX file or a
programming error, firmware of the target device shall be erased.
Target device:CY8C6247BZI-D54
STATUS: Ready to be programmed with HEX file.
Now lets review the installation ofl
According to above links to Cypress software:
The file
During Installation I’ve just followed default options:
Help > About PSoC Programmer :
Installed CyInstaller Products:
Bridge Control Panel 1.20.0.4174
Clock Programmer 1.9.0.4174
Device Database 4174
Example Code 4174
PSoC Programmer 3.28.3.4174
USB Bootloader Application 4174
OK - looks fine it works now!
one important comment:
plug the dev board into the host PC before launching the programmer, and then the virtual drive should appear in the Port Selection box automatically.
After start of the Programmer the warning pops-up
The request of the firmware update!
Sometimes I encountered memory mismatch errors FAIL (above)
The solution is to press "load from device"
DEVICE was recognized and works properly:
One thing is strange!
Is the kit really out of date.? Should I ask Cypress to get a replacement?
some messages from the programmers console:
KitProg2 (CMSIS-DAP/1B0B0EDD02197400)
Automatically Detected Device: CY8C6247BZI-D54
Device set to CY8C6247BZI-D54
1048576 FLASH bytes
Device Family set to CY8C62xx
Memory Types Load from HEX Requested
Active HEX file set
Port Opened with Warnings KitProg2 firmware in CMSIS-DAP mode is detected.
Device Family set to CY8C62xx
Automatically Detected Device: CY8C6247BZI-D54
Silicon: 0xE206, Family: 0x100, Rev.: 0x22 (*B)
SROM Firmware: 2.01, Flash Boot: 1.0.1.20 (*B)
Protection state: 0x02 (NORMAL), Life Cycle stage: 0x01 (NORMAL)
According to the previous warning lets move to KitProg3
But simple run of upgrade isn’t available offhand
- that “button” is grayed - unavailable!!!!
According to instructions - when “Upgrade Firmware button is greyed out”,
It means, KitProg2 “is not in the right mode”
- push the mode switch button (SW3)
- Then the Upgrade Firmware button will become available and you can click on it to update the firmware.
But in my case that didn’t work
I tried to find the solution at the Cypress Community forum. That thread was quite informative for me:
https://community.cypress.com/message/196350#196350
Then I tried again: according to “KitProg2_User_Guide.pdf”
5.1 Enter or Exit the Mass Storage Programmer Mode
Follow these steps to enter or exit the Mass Storage Programmer mode of KitProg2:
1. Connect the kit to the PC. Ensure that the amber status LED is ON and not blinking.Amber status LED ON indicates that the current configuration is KitProg2 Programmer and Debugger.
2. Press and release the mode switch within two seconds. The KitProg2 re-enumerates as a MassStorage Programmer/CMSIS-DAP programmer if the previous configuration is PPCOM programmer and debugger.
The amber status LED stops glowing indicating that the kit is in Mass Storage
Programming/CMSIS-DAP programming mode.
3. The KitProg2 remains in the selected mode until you change the mode manually using the modeswitch. To exit the Mass Storage Programming mode, press and release the mode switch within two seconds.
The amber status LED is continuously ON, indicating that the KitProg2 is in theKitProg2 Programmer and Debugger mode.
BTW I decided to change firmware using:
“PSoC 6 MCU KitProg Firmware Loader”
“Another method is to use fw-loader.exe tool to switch between KP2 and KP3.
BTW, please make sure the SW3 onboard is switched to correct mode for programming.”
I downloaded the loader from github:
https://github.com/cypresssemiconductorco/Firmware-loader
Fw-loader-2.1.0.52-windows.zip
In the folder bin\firmware I had file “version”:
1.10.2946
then following instructions:
first you need to get your kit out of "CMSIS-DAP HID" mode. To do this, you press SW3 on your board.
After pressing that button, status LED 2, right below the SW3, should go from OFF (which I hope it is now) to ON.
Now, you should be able to run fw-loader --update-kp3
C:\PSOC 6\bin>fw-loader --device-list
Cypress Firmware Updater, Version: 2.1.0.52
(C) Copyright 2018-2019 by Cypress Semiconductor
All Rights Reserved
Info: Start API initialization
Info: Connected - KitProg3 CMSIS-DAP HID-1B0B0EDD02197400
Info: Hardware initialization complete (686 ms)
Error: Error = Cannot open Hid device with the path: \\?\hid#vid_04b4&pid_f154&
mi_00#8&1e90080e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
Connected supported devices:
1: KitProg3 CMSIS-DAP HID-1B0B0EDD02197400
First I couldn’t manage to run fw -updateproperly
But playing with SW4 SW3 at last let to work:
C:\PSOC 6\bin>fw-loader --update-kp3
Cypress Firmware Updater, Version: 2.1.0.52
(C) Copyright 2018-2019 by Cypress Semiconductor
All Rights Reserved
Info: Start API initialization
Info: Connected - KitProg3 CMSIS-DAP HID-1B0B0EDD02197400
Info: Hardware initialization complete (811 ms)
Device 'KitProg3 CMSIS-DAP HID-1B0B0EDD02197400' opened successfully
Info: Kit FW is 'KitProg3' ver. 1.01 b158. Upgrade file is 'KitProg3' ver. 1.10
b2946. Upgrade file contains a Custom App.
Info: Disconnected - KitProg3 CMSIS-DAP HID-1B0B0EDD02197400
Info: Connected - KitProg Bootloader-1B0B0EDD02197400
Info: Bootloader Version: Major 1, Minor 1, Build 40
Info: FW Upgrade to version: 1.10 b2946. Upgrade of Custom App
Info: Bootloading of Custom App...
Info: Verifying of Custom App...
Info: Bootloading of KitProg FW...
Info: Verifying of KitProg FW...
Info: Upgrade completed
Info: Disconnected - KitProg Bootloader-1B0B0EDD02197400
Info: Connected - KitProg3 CMSIS-DAP HID-1B0B0EDD02197400
FW update completed successfully
The first, most funny is the message from PSoC programmer:
Port Opened with Warnings KitProg3 version Expecting 1.01.158, but found 1.10.2946.
and... my bad luck - I had auto-upgrade selected thus my "hard work" with obtaining most current version was lost…
Run the PSoC Programmer with autoupdate option downgraded 'KitProg3' to ver. 1.01 b158!!!!
Successfully Connected to
KitProg3 (CMSIS-DAP/BULK/1B0B0EDD02197400)
KitProg3. CMSIS-DAP Version 2.0.0. Firmware Version 1.01.158. Hardware Id 02.
I realized that v1.01.158 is a bit...lame... Lack of DapLink support, unclear ... or faulty ... functionality of SW3 (mode selection)
I have Important remark
KitProg3 with version 1.01 b158 couldn’t provide the mass storage - downloading the firmware through the virtual drive! DAPLINK didn’t work!
SW4 switched off the program, it let me say “bricked” the board. Both running code and programming was unavailable. Status LEDs 1-3 blinked.
That state was strange, didn’t fit any description from instructions.
I realised, thanks to cypress community forum, that I’m not alone with similar problems:
“After change from KitProg2 to KitProg3 fw - unable enter into CMSIS-DAP mode with mass storage. there is no mass storage device with kitprog3 fw.
When I press SW3 (mode select) to enter into CMSIS-DAP mode nothing happened except com port is changed from COM0 to COM1. And also the LED2 which is supposed to be turned off
When I use kitprog2 fw everything works perfectly.
Is there any other solution except downgrading to KitProg2 FW?
>>>The KP3 does not cover mass storage mode any more. This mode has been transferred under DAPlink.”
That situation forced me to the second attempt...
After disabling auto-upgrade
I installed v1.10.2946 again using fw-loader --update-kp3
I started to enjoy the new tool. Easy availability of three modes: CMSIS-DAP Bulk + CMSIS-DAP HID + DapLink delights indeed!
I could see the change of COM:
Changing the mode (SW3) I could switch between COM33 - COM34
KitProg is visible in the Device Manager too
Also new : in the folder:
C:\Cypress\Programmer
New hex files:
Lets explain the SW3 function:
It switches
CMSIS-DAP HID/CMSIS-DAP BULK modes
After upgrade with firmware v1.10.2946 mode selection works fine
In the state SW3 BULK (with status LED 2 constantly lighting) I got:
C:\PSOC 6\bin>fw-loader --device-list
Cypress Firmware Updater, Version: 2.1.0.52
(C) Copyright 2018-2019 by Cypress Semiconductor
All Rights Reserved
Info: Start API initialization
Info: Connected - KitProg3 CMSIS-DAP BULK-1B0B0EDD02197400
Info: Hardware initialization complete (842 ms)
Connected supported devices:
1: KitProg3 CMSIS-DAP BULK-1B0B0EDD02197400 FW Version 1.10.2946
SW3 - state BULK
KitProg3 (CMSIS-DAP/BULK/1B0B0EDD02197400)
Switching SW3 into HID - status LED 2 “ramp”
Disconnected KitProg3 (CMSIS-DAP/BULK/1B0B0EDD02197400)
Connected KitProg3 (CMSIS-DAP/HID/1B0B0EDD02197400)
C:\PSOC 6\bin>fw-loader --device-list
Cypress Firmware Updater, Version: 2.1.0.52
(C) Copyright 2018-2019 by Cypress Semiconductor
All Rights Reserved
Info: Start API initialization
Info: Connected - KitProg3 CMSIS-DAP HID-1B0B0EDD02197400
Info: Hardware initialization complete (639 ms)
Connected supported devices:
1: KitProg3 CMSIS-DAP HID-1B0B0EDD02197400 FW Version 1.10.2946
It is important to emphasize, that KitProg3 doesn’t support anymore the virtual mass storage feature!
But now after update the FW and KitProg3 working properly, using SW4 I can enter the mode of virtual drive DAPLINK
Successfully Connected to CMSIS-DAP/248484 CMSIS-DAP Version 1.10
Works!!!
Although the beginning was frustrating a little:
…it was temporary
No errors in Device Manager
It is recognized as
Folder E content changed:
DETAILS.TXT
# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 19000000dd0e0b1b02ddxxxxxxxxxxxxxxxxx
HIC ID: 2e127069
Auto Reset: 0
Automation allowed: 1
Overflow detection: 1
Daplink Mode: Interface
Interface Version: 0251
Git SHA: 0ceae64926c06bf4481xxxxxxxxxxxxxxxxx
Local Mods: 0
USB Interfaces: MSD, CDC, HID, WebUSB
Interface CRC: 0xab8e0b36
Remount count: 0
But nothing is ideal!!!
I cant upload Some projects via virtual drive
Now I realized, that attempts of upload of selected firmware, using mass - storage (DapLink) fails:
FAIL.TXT
error: The hex file cannot be decoded. Checksum calculation failure occurred.
type: transient, user
As I wrote above: only selected, some .hex were accepted, remaining rejected...
These binaries came from tested, successful build and were accepted when programming directly from PSoC Creator or WICED
.hex files "generated" using PSoC Creator are fine - I could program PSoC taking these files
and using mentioned above PSoC Programmer.
the "company": PSoC Programmer+ PSoC Creator + my .hex files in my opinion seems to be correct.
I suppose we should focus on PSoC board+DapLink when looking for the solution.
I'm afraid I need some fine-tuning around DapLink driver etc. but presently no idea what to fix...
That question was answered on Cypress community:
“I tested the "Drag-and-Drop Programming" feature of DAPLink mode just now, and found that the hex files
generated by PSoC Creator are invalid to be used under DAPLink mode.
You have to use mbed to generate the required hex files. I guess there are some differences between the file formats.
Just follow the steps shown in the part "Getting Started with Mbed OS" of the following link - PSoC 6 BLE Pioneer Kit | Mbed“
Additionally:
In the DAPLINK mode in the Folder E I found MBED.HTM
It directs to:
The license key from your board will be transferred to your account. This will give you access to compiler tools for the following board:
I tried to run it
But unsuccessfully:
OK I decided to leave that issue for now.
No comments - no issues - just simple installation:
At that moment I decided to leave updates untouched.
PSoC Creator ready to (hard) work
To be up-to date I had to install following PDL’s one by one...
Remaining software didn’t ask for facelift.
Another necessary tool is
Simple comment from community forum:
“ If you are looking to use PSoC 6 + WiFi then yes you must use WICED. There is no support for WiFi in PSoC Creator.
If you are looking use the BT/BLE features of the 4343W (Murata 1DX module) on the CY8CKIT-062-WiFi-BT then again you must use WICED. “
Well another eclipse-based suite, another gigabytes taken…
Microchip, Matlab, Ti Composer, Digilent - Cypress add next 2 IDEs.
It's a pity we can’t use one “engine” for different programming environment.
Just only select the proper platform and we are ready to conduct our project.
Wait, one more
There are no plans to add WiFi support to PSoC Creator. The plan is to integrate PSoC and WiFi functionality into Cypress' new tool ModusToolbox
http://www.cypress.com/products/modustoolbox-integrated-design-environment-ide
Modus is a cross platform eclipse based IDE. It will provide tools to easily configure the PSoC peripheral and add in WiCED WiFi support.
As I said at the beginning, although I haven’t used it yet but that tool seems to be more and more required...
Let’s move some steps back to experiments with primary (onboard) DEMO firmware.
The board already came with the WiFi-BT demo program preloaded. Demo helps to understand usage of implemented WiFi capabilities with both AP + client features
as well as simple usage of TFT module and impressing CapSense buttons/ slider.
It worked fine, following short instruction I successfully ran it
Following screens depicts progress of that exercise.
Initial screen of the TFT
AP recognized
Unfortunately using the PC I faced some issues related to connection errors:
I took the smartphone to try establish the connection and it work
192.168.0.31
CE222494 PSoC 6 WICED™ WiFi Demo
According the instruction, the demo program control the LED brightness by PPM, tuned using CapSense slider. Additionally light sensor readouts are presented.
Another code example dedicated to The PSoC 6 WiFi-BT Pioneer Kit can be simply developed using PSoC Creator. CE222221 is available from Start > Kits on the PSoC Creator Start Page.
According to instruction, file update should be deselected!
I forgot that remark, which caused errors:
Acting according to instruction let me successfully compile the project
Another important settings in our workspace:
That project uses RTOS thus right memory management settings must be selected
After successful build hex file is delivered:
C:\PSOC 6\examples kopie\Firmware\PSoC 6 MCU\CE222221\CE222221_Voice_Recorder.cydsn\CortexM4\ARM_GCC_541\Debug\
The Kit is converted now into the cute voice recorder with RECORD; PLAY; PAUSE features available with CapSense buttons and volume controlled with slider.
Then I tried to use another interesting demo project
CE225248 – PSoC 6 MCU RGB Display Interface
That example uses EmWin Graphics library and Quad SPI FRAM as Display Buffer
To be prepared better to conduct that experiment I read about CapSense-based designs: https://community.cypress.com/docs/DOC-9249
and about similar example: PSoC 6 TFT Display Interface with EmWin Graphics Library
Trying to keep instructions:
make sure the file is not selected (it is deselected by default),
I thought I have success:
--------------- Build Succeeded
But soon I meet the sad reality:
main_cm4.c:14:17: fatal error: GUI.h: No such file or directory
compilation terminated.
The command 'arm-none-eabi-gcc.exe' failed with exit code '1'.
According to instruction
“Peripheral Driver Library (PDL) 3.0.4 or higher”
Must be set:
Some necessary fittings in project files:
LCDConf.c
/* Physical display size */
#define XSIZE_PHYS 240 //320
#define YSIZE_PHYS 320 //240
/* Virtual display size */
#define VXSIZE_PHYS 240 // 320
#define VYSIZE_PHYS 340 // 240
#define DISPLAY_DRIVER GUIDRV_FLEXCOLOR //GUIDRV_TEMPLATE
Run “Generate application”
code:434496 sram:38820
Build Succeeded
Programming device 'PSoC 62 CY8C6247BZI-D54 (CM4)' with file 'C:\PSOC 6\examples kopie\Firmware\PSoC 6 MCU\CE225248_DisplayBuffer01\CE225248_DisplayBuffer01.cydsn\CortexM4\ARM_GCC_541\Debug\CE225248_DisplayBuffer01.hex'.
Device ID Check
Erasing of Main Flash...
Programming of Flash Starting...
Protecting...
Verify Checksum...
Finished Programming
Device 'PSoC 62 CY8C6247BZI-D54 (CM4)' was successfully programmed
????? Program run but I got nothing but the white screen !!!!!
Ok - I have already got used to - just another example of lack of good support for WiFi-BT board - the example was as usual for the BLE version of the kit…
Disappointed a little I moved to exploration of WICED IDE
The most simple exercises based on the use of “download run” targets.
I started with “Demo download run in WICED Studio IDE”
According to short instruction for snip.scan example I followed:
Right-click 43xxx_Wi-Fi in the Make Target window and click New.
Double-click the Clean Make Target to remove any output from the previous build.
It is recommended to do Make clean when any new files are added or removed to the corresponding Target.
Note from the manual: “Before executing the next step, ensure that you connect the CY8CKIT-062-WiFi-BT kit to the PC, ensure that the kit is successfully enumerated and Port Selection is set to CMSIS-DAP mode.
Double-click the snip.scan-CY8CKIT_062 to build and download it to the CY8CKIT-062-WiFi-BT.”
The project is built and programmed into the CY8CKIT-062-WiFi-BT
Build Finished (took 1m:9s.14ms)
With KitProg3 the mode HID should be selected!
Programming using WICED I encountered problems when PSoC programmer was running parallely!
Let's check the results in serial terminal:
Remember right baud rate!
Works fine how about next simple exercise?
snip.apsta-CY8CKIT_062 download run
I decided to make changes to avoid conflict with router address
apsta.c :
static const wiced_ip_setting_t ap_ip_settings =
{
INITIALISER_IPV4_ADDRESS( .ip_address, MAKE_IPV4_ADDRESS( 192,168, 9, 1 ) ), //192,168, 0, 1
INITIALISER_IPV4_ADDRESS( .netmask, MAKE_IPV4_ADDRESS( 255,255,255, 0 ) ),
INITIALISER_IPV4_ADDRESS( .gateway, MAKE_IPV4_ADDRESS( 192,168, 9, 1 ) ), //192,168, 0, 1
};
Build results:
TOTAL (bytes) | 279384 | 55796 |
Build Finished (took 9m:33s.520ms)
Results in the Terminal:
Starting WICED vWiced_006.002.001.0002
Platform CY8CKIT_062 initialised
Started ThreadX v5.8
Initialising NetX_Duo v5.10_sp3
Creating Packet pools
WLAN MAC Address : DC:EF:CA:A8:B3:00
WLAN Firmware : wl0: Apr 30 2018 04:14:19 version 7.45.98.50 (r688715 CY) FWID 01-283fcdb9
WLAN CLM : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-04-11 22:31:21
0000 00:00:00.000 wiced logging system is initialized
Joining : SSID
Successfully joined : XXXXXXX
Obtaining IPv4 address via DHCP
DHCP CLIENT hostname WICED IP
IPv4 network ready IP: 192.168.0.40
Setting IPv6 link-local address
IPv6 network ready IP: FE80:0000:0000:0000
0001 00:00:09.940 Pinging 192.168.0.1 3 times every 1000ms with a 900ms timeout.
IPv4 network ready IP: 192.168.9.1
Setting IPv6 link-local address
0002 00:00:10.942 Ping #0 Reply : 2 ms
0003 00:00:11.941 Ping #1 Reply : 1 ms
0004 00:00:12.941 Ping #2 Reply : 1 ms
IPv6 network ready IP: FE80:0000:0000:0000
0005 00:00:12.961 softAP "WICED Soft AP" is up
0006 00:00:13.941 Ping #3 Reply : 1 ms
0007 00:00:13.941 deregister ping timer
And again I had to use smartphone - PC didn't want to connect to the new AP
"WICED Soft AP
0008 00:05:07.868 http response stream callback, received 486 bytes
0009 00:05:07.868 data:
GET / HTTP/1.1
Host: 192.168.9.1
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Linux; U; Android 6.0.1;XXXXXXXXXXXXXXXX
Accept-Encoding: gzip, deflate
Accept-Language: pl-PL,en-US;q=0.8
X-Requested-With: com.opera.mini.native
According to my plans, I’m sure I will employ PSoC to work in my Smart Home Project.
As the very beginning I checked handy example for control application:
First make the target:
demo.appliance-CY8CKIT_062 download run
Starting WICED vWiced_006.002.001.0002
Platform CY8CKIT_062 initialised
Started ThreadX v5.8
Initialising NetX_Duo v5.10_sp3
Creating Packet pools
WLAN MAC Address : DC:EF:CA:A8:B3:00
WLAN Firmware : wl0: Apr 30 2018 04:14:19 version 7.45.98.50 (r688715 CY) FWID 01-283fcdb9
WLAN CLM : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-04-11 22:31:21
IPv4 network ready IP: 192.168.0.1
Setting IPv6 link-local address
IPv6 network ready IP: FE80:0000:0000:0000:DEEF:CAFF:FEA8:B300
After entering 192.168.0.1 and delivering LAN access data
AP was removed
And in the terminal:
Joining : mySSID
Successfully joined : SSID
Obtaining IPv4 address via DHCP
DHCP CLIENT hostname WICED IP
IPv4 network ready IP: 192.168.0.40
Setting IPv6 link-local address
IPv6 network ready IP: FE80:0000:0000:0000:
Using above IP
I started web application
Pushing button we send commands by UART
********************************************************************************************************
For those who want to learn console usage with PSoC the next example would be interesting:
Target looks as follows:
test.console-CY8CKIT_062 download run
Downloading resources filesystem ... build/test.console-CY8CKIT_062/filesystem.bin at sector 1 size 96...
Downloading apps lookup table in wiced_apps.mk ... build/test.console-CY8CKIT_062/APPS.bin @ 0x0000 size
Downloading Application ...
Download complete
Resetting target
Target running
Build complete
Making .gdbinit
Build Finished (took 10m:7s.291ms)
Starting WICED vWiced_006.002.001.0002
Platform CY8CKIT_062 initialised
Started ThreadX v5.8
Initialising NetX_Duo v5.10_sp3
Creating Packet pools
WLAN MAC Address : DC:EF:CA:A8:B3:00
WLAN Firmware : wl0: Apr 30 2018 04:14:19 version 7.45.98.50 (r688715 CY) FWID 01-283fcdb9
WLAN CLM : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-04-11 22:31:21
Console app
Then I went to the UART terminal
And tested few commands:
> start_ap myssid wpa2 password 6
IPv4 network ready IP: 192.168.0.1
Setting IPv6 link-local address
IPv6 network ready IP: FE80:0000:0000:0000:
> iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 12.1 KByte (default)
------------------------------------------------------------
Spawning a listener.
> iperf -c 192.168.0.136 -u -S 0xE0 -t 90 -b 10M
------------------------------------------------------------
Client connecting to 192.168.0.136, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 12.1 KByte (default)
------------------------------------------------------------
[ ID] Interval Transfer Bandwidth
[ 0] 0.0-90.0 sec 107 MBytes 10.0 Mbits/sec
[ 0] Sent 76534 datagrams
[ 0] WARNING: did not receive ack of last datagram after 1 tries.
I tried to use another example of the target
but audio_loopbac example was not ksupported:
audio_loopback application does not support CY8CKIT_062 platform. Stop.
But now - let’s create it in the WICED Studio IDE
Above examples wasn’t very demanding to implement
Demo CE222494 is more tricky. To build the project some import/export between default folders were necessary.
For the WICED WiFi-SDK our working directory is “43xxx_Wi-Fi”
Folders from the PSoC creator default folders (two directories called apps and resources)
Should be copied into WICED-Studio-6.1\43xxx_Wi-Fi\
As previous we need to put new Target Name in the Make Target window demo.CE222494_PSoC6_WICED_WiFi-CY8CKIT_062 download_apps download run
simple?
Making demo.CE222494_PSoC6_WICED_WiFi-CY8CKIT_062.bin
| | Static |
Module | Flash | RAM |
App | 4922 | 1176 |
crc | 1060 | 0 |
device_configuration | 3609 | 20 |
DHCP_Server | 1460 | 132 |
DNS | 2048 | 44 |
DNS_Redirect_Daemon | 718 | 0 |
HTTP_Server | 3946 | 8 |
Interrupt Vectors | 652 | 0 |
libc | 32892 | 3368 |
Linked_List | 466 | 0 |
mbedTLS | 111926 | 88 |
Networking | 6030 | 13912 |
NetX-Duo - Interfaces & Stacks | 0 | 16 |
NVRam | 640 | 0 |
Other | 93179 | 7625 |
Packet Buffers | 0 | 22470 |
platform | 3908 | 736 |
RAM Initialisation | 4372 | 0 |
resources | 59611 | 0 |
Ring_Buffer | 160 | 0 |
Simple_HTTP_Server | 1034 | 0 |
SNTP | 712 | 96 |
SPI_Flash_Library_CY8CKIT_062 | 1088 | 352 |
Startup Stack & Link Script fill | 147 | 29 |
Supplicant - BESL | 7581 | 864 |
ThreadX | 8744 | 400 |
TLV | 214 | 0 |
ugui | 8052 | 4 |
WICED | 6006 | 1076 |
Wiced_RO_FS | 568 | 0 |
WWD | 18645 | 3208 |
----------------------------------+---------+---------|
TOTAL (bytes) | 380018 | 55624 |
Download complete
Resetting target
Target running
Build complete
What can we see in the serial terminal (115200)
Starting WICED vWiced_006.002.001.0002
Platform CY8CKIT_062 initialised
Started ThreadX v5.8
Initialising NetX_Duo v5.10_sp3
Creating Packet pools
WLAN MAC Address : DC:EF:CA:A8:B3:00
WLAN Firmware : wl0: Apr 30 2018 04:14:19 version 7.45.98.50 (r688715 CY) FWID 01-283fcdb9
WLAN CLM : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-04-11 22:31:21
*******************************************************
Using another device connect to the following WiFi network
SSID : WICED Config
Password: 12345678
Open a web browser and go to http://192.168.0.1
On the page click the Wi-Fi Setup button. Select your WiFi network
type in the password, press connect
*******************************************************
IPv4 network ready IP: 192.168.0.1
Setting IPv6 link-local address
IPv6 network ready IP: FE80:0000:0000:0000:
Program works as described at the beginning of that RT.
After that success I tried to adapt that “flagship" demo to have possibility to communicate with the initial AP from my PC.
I wanted to simply modify of initial IP address of PSoC (used when it starts and temporary works as the AP).
By default we have 192.168.0.1. I intend to play with last figures.
I tried to dig a little in the codes to find that phrase... but honestly i feel lost until now
I found a lot of instances which appear to be the target of modification…
C:\Users\____\WICED-Studio-6.2\43xxx_Wi-Fi\apps\demo\wifi_onboarding\wifi_onboarding.c
C:\Users\____\WICED-Studio-6.2\43xxx_Wi-Fi\libraries\utilities\connection_manager\connection_manager.c
C:\Users\____\WICED-Studio-6.2\43xxx_Wi-Fi\libraries\daemons\device_configuration\device_configuration.c
C:\Users\____\WICED-Studio-6.2\43xxx_Wi-Fi\libraries\daemons\DHCP_server\unit\dhcp_server_unit.cpp
C:\Users\____\WICED-Studio-6.2\43xxx_Wi-Fi\libraries\utilities\command_console\wifi\command_console_wifi.c
INITIALISER_IPV4_ADDRESS( .ip_address, MAKE_IPV4_ADDRESS( 192,168, 0, 1 ) ),
Which one is correct? Is there one definition of that address?
I couldn’t find it…
Just to avoid some obvious questions: The purpose of that silly modifications...
Is just the conflict with the router I use (I was too lazy to change its default address…)
The only proposal I get was to go to testing a simple AP function, using snip\apsta,
That works of course, after modification of the right file
But I couldn’t adopt it in the DEMO project.
Thus my wish to modivy AP in PSoC 6 WICED WiFi Demo is still an open question.
Then I checked demo projects from “Find code example”
“This example uses the Cortex-M4 (CM4) CPU of PSoC 6 MCU to execute two tasks: UART communication and LED control.
At device reset the Cortex-M0+ (CM0+) CPU enables the CM4 CPU.
The CM4 CPU uses UART Component to print a “Hello World” message in a UART terminal emulator and when the Enter Key is pressed by the user, the LED on the PSoC 6 MCU WiFi-BT Pioneer Kit starts blinking.”
First I had to import(download) the demo clicking the internet icon next to the example name.
Some hasitations but I decided to leave it as default
Now I moved to the UART terminal
After pressing ENTER (on the PC)
Green LED started to blink
I hoped to play with KITs onboard thermometer
CE218138_BLE_Thermometer_RTOS01
CE218138_BLE_Thermometer_RTOS01.hex
code:221524 sram:66136
--------------- Build Succeeded
Yes successfully build
Isn’t it the problem with the PDL?
https://www.cypress.com/documentation/software-and-drivers/peripheral-driver-library-pdl
Check the PDL status:
Confirm that PSoC Creator can find the PDL code.
A. Select the Tools > Options command to open the Project Management panel.
B. Confirm that the PDL v3 (PSoC 6 devices) location is correct.
That looks fine where is the issue?
Then I discovered -
My stupid fault - I didn’t set correct DEVICE
Unfortunately that example can’t be used on PSoC 62 CY8C6247BZI-D54
Error in component: BLE. The BLE_PDL_v2_0 component (BLE) is not compatible with the selected device. Please check the component datasheet for details on updating to a compatible component.
I’m not the only one who hoped to try that example on our kit:
https://community.cypress.com/thread/33753
#1 If you are looking to use PSoC 6 + WiFi then yes you must use WICED. There is no support for WiFi in PSoC Creator.
#2 If you are looking use the BT/BLE features of the 4343W (Murata 1DX module) on the CY8CKIT-062-WiFi-BT then again you must use WICED.
#3 If you want to just use BLE, and want to use PSoC Creator then I suggest you get the CY8CKIT-062-BLE. The PSoC 6 device on this kit has an integrated BLE radio (not a separate chip like the CY8CKIT-062-WiFi-BT). With this kit you can use PSoC Creator .
#4. The current generation of PSoC 6 devices do not have hardware to support eMMC.
#5. We are still working on USB Host support, probably won't be available until end of this year.
you have the CY8CKIT-062-WiFi-BT. The project you mentioned will not work on that kit. The project you mentioned is for the CY8CKIT-062-BLE.
If you are using the CY8CKIT-062-WiFi-BT, the BLE functionality is done on the 4343W radio chip that is separate from the PSoC 6. To do BLE or Bluetooth projects with this device you need to use WICED 6.1.
My Dual-Core project ups and downs
- First I download code example CE216795 - PSoC 6 MCU Dual-Core Basics.
First attempt to build was unsuccessful:
Hex File parsing failure. Hex file does not exist or cannot be opened.
I was too fast - some fine tuning was necessary!
Select Debug > Program. The Select Debug Target dialog appears
>Select the CM4 target,
The target device selected in this window does not have a Silicon ID and Revision that matches the current project's selected device. Either pick a different debug target here, or go back and change the project's selected device.
If you believe the target's detected revision number is incorrect, verify that the selected Debug Clock is 1/3 of the chip's Bus Clock and try running Port Acquire to reset the device.
As we know from PSoC programmer:
Our device is CY8C6247BZI-D54
I need to select it:
And Build the project again:
Select Debug > Program. The Select Debug Target dialog appears
Select the CM4 target,
Programming device 'PSoC 62 CY8C6247BZI-D54 (CM4)' with file
The CE216795_DualCoreBlinky01.hex file was generated
Device ID Check
Erasing of Main Flash...
Programming of Flash Starting...
Protecting...
Verify Checksum...
Finished Programming
Device 'PSoC 62 CY8C6247BZI-D54 (CM4)' was successfully programmed
Well done! DualCoreBlinky works!
RTC
As the final project I decided to check clock (RTC) features of PSoC
I conducted that experiment as previous ones.
In that case I need to be careful with update files pop-up:
Note: During the build process, do not replace the stdio_user.h file
--------------- Build Succeeded
Programming device 'PSoC 62 CY8C6247BZI-D54 (CM4)' with file 'C:\PSOC 6\examples kopie\CE216825\RTC_Basics.cydsn\CortexM4\ARM_GCC_541\Debug\RTC_Basics.hex'.
Device ID Check
Erasing of Main Flash...
Programming of Flash Starting...
Protecting...
Verify Checksum...
Finished Programming
Device 'PSoC 62 CY8C6247BZI-D54 (CM4)' was successfully programmed
Cypress mobile application
is rady to communicate with PSoC
Unfortunately I didn't manage to create BT project
I treat it as a big failure of that RT. Looking for solution and attempt to learn how to program PSoC using BT section of the LBEE5KL1DX-883.
At that point I see the pros only.
No interferences, stable work of all Kit’s parts, reliable manufacturing and qualified components.
I didn't experience any problem with communication when the unit was in relative close distance from the wifi router when in infrastructure or laptop/ mobile using AP mode.
Mechanical issue - quality of implementation, form factor, compatibility with other boards etc
All above deserves the best, highest marks!
I didn't find any cons regarding board quality. Reliable and handy for me all requirements are fulfilled.
The only, really small, remark concerns Arduino compatibility.
The form factor of the board pins - are 100% arduino compatible
But the voltage 3.3V - the little cons in the case of my experiments.
After relative (too) long time of dealing with CY8CKIT-062-WiFi-BT PSoC 6 WiFi-BT Pioneer Kit accompanied with the CY8CKIT-028-TFT,
spending several hours configuring and experimenting PSoC Creator IDE, WICED Studio SDK, PSoC Programmer with KitProg2&3
I feel ready to put some words as the summary.
I found PSoC 6 WiFi-BT as the promising system to develop both simple as well as advanced IoT projects.
We need to confirm that our KIT is a complete hardware & software solution to help develop Cypress IoT applications in the really simplest way.
Although I haven’t tested these features very much, it can be employed for mobile applications for control, telemetry and other IoT systems.
Supporting both wireless client and AP (server) modes that can be accessed directly without AP or router.
It's hard for me to criticize that sophisticated and powerful device.
But generally talking about the whole kit solution and concept, I'm confused now:
...plenty of tools, serious changes in functionality in new versions...
Starting with PSoC kit I knew I needed to learn and get acquainted with "PSoC Creator" as well as "Wiced Studio"
Nevertheless I see that "Cypress Programmer" is still alive and some instructions/ examples basis on it...
Now I hear about "ModusToolbox" as the leading tool and successor of all above...
And additionally It seems the Mbed OS is required… what else?
I will repeat the sentence from the middle of that RT: another eclipse-based suites, another gigabytes taken…
Microchip, Matlab, Ti Composer, Digilent - Cypress add next 2 IDEs.
It's a pity we can’t use one “engine” for different programming environment.
My ups and downs with examples:
I'm honestly disappointed that many BT examples I wanted to use/ learn/ modify, are dedicated to the BLE kit only!
My learning curve basis mostly on good examples, I couldn’t find recommendation of good examples for particularly PSoC6 WiFi BT Kit,
except these basic, explained in the manual.
The usage of the PSoC Creator IDE, WICED Studio SDK which are eclipse based suites isn't good for beginners.
Some programming skills are necessary.
Nevertheless Possibilities of PSoC 6 WiFi-BT are outstanding indeed! I haven't even used a few percent of its functionality.
I focused on some simple examples but the tool is extremely universal. Having the skills and experience you can take on any IoT related challenges.
Thanks for reading (I promise to divide my report for smaller parts soon!)
Marek
Top Comments
Thank you!
I agree the documentation is prepared perfectly, I have no objections to the quality of Cypress job in that matter. My complains regard only some weakansy on the field of (lack of) examples …