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?: One of the sample programs would not compile using the instructions in the User's Guide
First off, I would like to thank Cypress Semiconductor (“Cypress”) and Element 14 for the opportunity to evaluate the PSoC®6 WiFi-BT Pioneer Kit (“the Kit”).
Summary Conclusion –
As mentioned in the body of my review, the PSoC®6 WiFi-BT Pioneer Kit (CY8CKIT-062-WiFi-BT) is a complete and well documented “development platform for hardware” evaluation for Cypress Semiconductor’s PSoC 6 family. However for software development, the documentation for exploring the included example programs left me confused and unable to build one of the examples. Fortunately, Cypress offers a lot of supplemental documentation, both written and video, as well as a large developer community website to help you find your way. My main focus in evaluating a product is whether it does was it says it does and how well are the instructions (i.e. User Guide and app notes) written to get you there. I should add that my past experience with Cypress’ PSoC Creator software has been very good, so this did surprised me.
As with the earlier PSoC 4, 5 and 5LP families, Cypress PSoC 6 was designed with a specific target market, the Internet of Things (IoT). The PSoC 62 MCU offers the low power operation, for battery power use, but the power of Arm Cortex –M4 and M0+ processors, along with 4th generation CapSense touch and wireless connectivity. For the WiFi-BT kit, Cypress has incorporated both Bluetooth BLE (Smart BT) and WiFi interfaces through the use of Murata’s LBEE5KL1DX module. The Murata module uses the Cypress CYW4343W WiFi + BT combo chip to provide IEEE802.11a/b/g/n WLAN and Bluetooth 4.1 connectivity along with low power consumption. The kit also includes a TFT display shield board as a programming aid.
Overall the design was easy to setup and program. The hardware documentation was easy to follow and complete. The “kit” included everything hardware needed to come up to speed with the PSoC 6 MCU WiFi-BT.
Useful Documents Links-
Cypress Developer Community 3.0 Web Site
PSoC®6 WiFi-BT Pioneer Kit Web Site
PSoC®6 WiFi-BT Pioneer Kit Guide (Cypress Semi Doc 002-22677, Rev *B – 05/03/2018) NOTE: “User’s Guide”
MuRata W-LAN+Bluetooth Combo Module Data Sheet (MuRata Doc SP-KL1DX-O, Rev O – 02/28/2017)
CYW4343W Single-Chip 802.11 b/g/n MAC/Baseband/Radio with Bluetooth 4.1 (Cypress Semi Doc 002-14797, Rev *I – 03/28/2017)
TFT Display Shield Board CY8CKIT-028-TFT Web Site
PSoC-101 Cypress Academy - Intro to PSoC Workshop Manual (Cypress Semi Doc 001-91306, Rev *S)
WICED Bluetooth 101 Cypress Academy - Intro to WICED Bluetooth Workshop Manual
WICED WiFi 101 Cypress Academy - Intro to WICED WiFi Workshop Manual
NOTE: The links to the Cypress Academy lab manuals can be used to view videos of the course topics.
Part I – The Unpacking: 8^) with a little 8^(
Welcome to the first part of many of my evaluation of the PSoC®6 WiFi-BT Pioneer Kit (CY8CKIT-062-WiFi-BT). I have read many different views on the value and/or Importance of the unpacking segment, but I feel it is important because it is often our first glimpse into what to expect in the product and support.
I’m excited to road test the WiFi-BT Pioneer kit, not just for the performance, flexibility and feature expansion of their PSoC families, but for the standard Cypress Semiconductor has set for their documentation and support. I have worked with other Cypress kits in the past and not only was their documentation and workshops useful, but they listen to their users and learn from their mistakes. The dev/eval kit is currently available through Element 14 for ~$92.
The box arrived undamaged, always a good sign, and well packed. The actual dev kit box is well constructed to endure most rough handling.
As listed in the user guide, the PSoC®6 WiFi-BT Pioneer Kit (CY8CKIT-062-WiFi-BT) I received included:
1 – PSoC®6 WiFi-BT Pioneer Board,
1 – CY8CKIT-028-TFT Display Shield,
1 – USB Type-A to Type-C cable,
1 – Four jumper wires (four inches each),
1 – Two proximity sensor wires (~five inches each) and
1 – Quick Start Guide
The instructions for downloading the user’s guide, software and additional resources are shown on the back of the box.
The display shield comes pre-installed on the main board.
The separate boards are shown below:
Main Board -
TFT Display Board
NOTE: For the examples given in the User’s Guide, all required components were supplied. The microphone for the voice example is located on the TFT board in the lower right corner. The light sensor for the WiFi-BT example is located in lower middle section of the TFT board. There is also a motion sensor on the TFT board, but it is not used for either example (yet).
Now for a few of the drawback I have observed. As we have all seen with every dev/eval kit produced for the last 10 years, all documentations available only through download. Cypress is no different, but there is a lot of information online which can make it difficult to find the specific information you are looking for. I would start looking for something and get distracted by something else.
Part II – Connecting and Powering Up the Kit:
All the instructions needed to initially test the WiFi-BT kit can be found on the Quick Start Guide, included with the kit, but for further development the User’s Guide should be downloaded using the link found in the Useful Documents section. My host PC is running under Windows 7 x64, but for the initial turn on, the USB2/3 port on my PC is only used for power to the board. There is a set of power terminals on the main board if you would like to use an external supply. The TFT display board is power through the main board shield connector.
The initial TFT screen also displays instruction for the pre-installed WICED WiFi demo.
Upon initial power-up the kit becomes a WiFi hotspot with a SSID of “WICED Config” and password shown on the display. Using your PC’s WiFi, connect to WICED Config, and then use a browser to go to the WiFi configuration page (192.168.0.1) shown below.
Then pull up a browser and enter the indicated URL (192.168.0.1) to go to the WiFi configuration page.
Press “WiFi Setup” then enter your router name and password
After the configuration is complete, the kit hotspot will terminate and will reconnect through your router
At this point the TFT screen will display the on/off duty cycle of the LED5 on the main board and the light sensor voltage on the display board. Since the kit hotspot no longer exists, you will need to reconnect your PC to your network. After reconnection, using a browser set to the URL on the display, you can also monitor (and change) the parameters on the TFT display.
This may be a little helpful in checking that the dev board actually works, but in reality we really want to try and program it, so let’s back up a little. First, to program the board we will need to communicate. For our examples, I will use the same USB port used to power the board. In the past, I have had issues with other manufacturer’s USB connections, although that was not the case with the Cypress WiFi-BT board. Because the may be the case with other PCs, the following shows the connections from Windows device manager:
In my case, the PC will communicate to the kit through a USB-to-Serial connection, KitProg2 USB-UART. A virtual disk drive is also created to drop compiled HEX files into. If these devices do not get created on your PC, check for other driver solutions or let me know.
Although I will not cover it here, Cypress has some application notes that cover over-the-air (OTA) programming.
Part III - Software Installation:
The User’s Guide walks you through 2 examples for compiling and programming the dev board, but more about that later. One example uses Cypress’ PCreator IDE and the other their WICED (Wireless Internet Connectivity for Embedded Devices) IDE.
PCreator 4.2 IDE
The guide points out 2 paths for installation for the PCreator IDE. If you have never installed PCreator before download and run the full installation setup. Since PCreator is Eclipse-based, if you have a previous PCreator installation on your PC you may only need to download and import the files for the WiFi-BT kit. NOTE: If you have a pre-installed version, check the version requirements of all the modules.
I already had an earlier version of PCreator on my PC, so I chose the latter method for installation (WiFi-BT files only). To check if you have the required modules in your current installation, start PCreator then click the “About” page under the HELP tab.
To start the install, run the install file under admin
NOTE: The second example, the CE222221 Voice Recorder, can be found on the Start Page under Start->Kits->CY8CKIT-062-WiFi-BT, as shown in the above figure. For Window 7 PCs, the files should be copied to another working directory away from the C:\Program Files(x86) directory due to system permission limitations.
WICED (Wireless Internet Connectivity for Embedded Devices) IDE
The first example included with the dev kit is the WiFi-BT demo program that came pre-installed on the board, but to compile the source code, you will need to load the WICED Studio IDE. Start by downloading and running the current WICED installer (for me, WICED-Studio-22.214.171.124-IDE-Installer.exe). When prompted, choose your IDE and SDK install folders, then click “Install”.
NOTE: Unlike the PCreator installation, the WICED IDE will not automatically open at the completion of the install, so you may want to create a shortcut to you desktop.
After starting the IDE you will get a flash screen during loading followed by the IDE
You may get prompted to select the desired WICED platform. For the WiFi-BT dev kit, select “43xxx_Wi-Fi”, then click OK. If you are not prompted, you can still choose your platform using the drop down menu as shown in the figure above.
Since both IDEs are Eclipse-based, if you are familiar with the platform your learning curve should be minimized.
Although these are the main development programs for the WiFi dev kit, there are still 2 more program I should mention. The first is tied to the virtual disk drive I had mentioned earlier, CYPRESS KitProg USB Device. The main IDEs will drop the compiled HEX file into this drive automatically at the completion of the compile, but you can also manually drop the file in file in to the virtual drive or you can load the file using the PSoC Programmer. NOTE: You should 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.
The last program you need to load, if you don’t already have one installed, is a terminal emulator, such as Tera Term, for the WiFi-BT demo. The setup instructions are clearly outlined in the User’s Guide.
Part IV – Testing the Board:
Now for some fun stuff. As I’ve mentioned in my summary, my main focus in evaluating a product is whether it does was it says it does and how well are the instructions (i.e. User Guide and app notes) written to get you there. For reference, the block diagrams of the main and TFT display boards are shown below.
Compiling Code vs Programming the Board?
First, it is important to know that the dev board works out of the box. Certainly our goal is to compile the example(s) code then program the board. NOTE: The TFT display board is only an Arduino shield used to interface with the main board. Any code located on the TFT board is not accessible or programmable through either IDE. All code generated by the IDEs are for programming the PSoC 6 MCU. Cypress makes this step sort of simple in that they supply in the downloadable example zip file, copies of complied (i.e. .hex) along with the source code for both examples. They just don’t tell you about the compiled code in the documentation, but then again the code is easily found in the example directories. Neither do they tell you how to load the compiled files into the board. If you have used Cypress’ programmer before there should be no problem, but if you are new to the programmer you may have to do a little digging. For my first test, I used the .HEX files for each example to verify the board/program functionality. Since at this point I’m only verifying that the board works I won’t go into great detail, but only add that both examples programmed without a problem. Simply drop the compiled (.hex) file into the KitProg virtual drive and the programmer will do the rest. As mentioned earlier, the board already came with the WiFi-BT demo program preloaded, so I started by loading the voice recorder example first by manually dropping the CE222221_Voice_Recorder.hex file into the KitProg virtual drive directory. NOTE: Also mentioned earlier, the program will automatically detect that a new file has been added to the directory and start the upload, even if more than one compiled file is in the directory.
The TFT display immediately when blank for a few seconds while the firmware was loading, then the program functioned as described in the User’s Guide. The guide clearly outlines how the program was supposed to function, so I will not post any additional pictures.
After successful completing the firmware upload of the voice recorder I drop the WiFi-BT example file into the virtual drive directory. Once again, the dev board programmed and functioned as described in the manual.
Compiling Example #1 (WiFi Demo)
For the WiFi Demo, the WICED IDE is used to build the code. The manual is a little confusing for this example since it outlines in different areas of the User’s Guide the building of the code in slightly different approaches. Details can also be found in the WiFi demo application note, CE222494. However, one of the most important things to remember is that each project must have a unique name within the IDE directory structure. I forgot this and in setting up the project on my PC, each approach shown in the User’s Guide used a different directory. On a complex project, like this example, 2 separate directory structures with the same project name will almost certainly cause the program to fail the build. It took we awhile before I remembered this and once I deleted one of the structures, the program successfully compiled and upload to the board. I suggest going with the approach in Section 3.5 for the cleanest build.
Failed Build due to naming conflict
Successful build after conflict removed
Compiling Example #2 (Voice Recorder)
I guess you can say I saved the worst for last in this review. This is the first time since I’ve explored the PSoC family that I couldn’t get a sample program to build per instructions, but this is the case when I try to compile the CE222221, PSoC 6 MCU Voice Recorder, example program that is referenced in the CY8CKIT-062-WiFi-BT, PSoC 6 WiFi-BT Pioneer Kit Guide. Following the instructions in both the guide and the CE222221 app note, the compile fails due to missing header files. I’m using the latest example download, CY8CKIT-062-WiFi-BT_PSoC®6_WiFi-BT_Pioneer_Kit_Code_Examples.zip, from Cypress’ website. The app note mentions a FreeRTOSConfig.h header file and states “DO NOT replace the FreeRTOSConfig.h file”. The example zip includes the header file, but when I try to compile I get the following message:
Note: Because my PC is running Windows 7 Pro and the default directory for the examples is in the “C:\Program files” path with restricted permissions, I set up my workspace into C:\Users\gordonmx\Documents\PSoC Creator\4.2\Examples\PSoC 6 MCU\CE222221_Voice_Recorder.cydsn
When I press [OK] the build continues, but fails with the following message:
In file included from main_cm4.c:43:0:
The command 'arm-none-eabi-gcc.exe' failed with exit code '1'.
--------------- Build Failed: 12/05/2018 14:55:21 ---------------
The header file rtos.h does exist, but FreeRTOS.h does not, as well a number of other header files referenced in rtos.h, such as task.h, queue.h, semphr.h and event_groups.h.
I have logged an issue through our local FA and on the Cypress developer community website and will post the solution when one is it appears, but if this has worked for someone else, please let me know.
What I didn’t try
I would like to in the future modify the WiFi demo to display the motion sensor output from the TFT display board, as well as the CapSense position data. There are also other lab projects from a WiFi-BT seminar that a FA from Cypress had sent me that I would like to try.
As I receive and verify a solution for compiling the second example (voice recorder), I will post an update. Hopefully Cypress improves their examples documentation in the future.
Please let me know if I missed something in the documentation. Also please pardon my typos.
Meridian, ID USA
A month ago I bought a cypress psoc 5, and I fell in love with the company and their product. Their documentation is top notch (can't think of another company with better documentation), their psoc creator…
By video snippets - small bits like these (Not necessarily with faces, voices or commentary)
Nice road test report.
I wonder if you could use the PSOC 6 as an IOT hub to communicate with multiple wifi devices?
By video snippets - small bits like these (Not necessarily with faces, voices or commentary)
Thanks to user ID fwan on the Cypress Developer Community 3.0 Web Site who was able to resolve my compile issue with the voice recorder. As it turns out when Cypress updated the Peripheral Driver Library 3.0.3 (I’m using 3.0.4), they changed the default buildings for FreeRTOS.
To fix the issue, right click on the project under the Workspace Explorer, then click on Build Settings…
In the Build Setting pop-up, click “Peripheral Driver Library”, then scroll down to RTOS -> FreeRTOS -> Memory Management. Make sure the box is checked (see figure), then press [OK].
After this change, continue to build the example as detailed in the User’s Guide. I copied the resulting .hex file to the KitProg virtual drive and the program loaded without a problem.
NOTE: It took less than 1 day to get a solution from the PSoC developer support community
Cypress should at least add a note to the User Guide or app note.
Dear COMPACT (and neuromodulator),
Thank you for your reply. More project suggestions. Please see my reply to DAB. As to "a little video", if you are suggesting a video showing the operation of the dev kit, I tried that once with another product with very poor results. I'm told I have neither a voice for radio or the face for TV and promised never to put my audience through another one.
The code I used to evaluate the dev kit is the sample code that came with the examples and therefore available on Cypress' website. I side on not including large blocks of code unless necessary. I will be posting any solutions I find for the compile fault with the voice recorder code. One thing I did not mention in my review is the lack of an example(s) using the combined feature of the WiFi and BT functionality. In fact there wasn't ever an example of the BT feature alone. Maybe Cypress can work on that. I do enjoy Cypress dev kits and recommend them to all.
Thank you for your reply. To create an IOT hub sound very interesting and worth further investigation, but out of the scope of my review. This does not mean I won't look into it as my time permits. Reviews can take many forms, such a project, but as mentioned in my review, my primary approach in the case of a development or evaluation kit is to answer the questions "Does the hardware and documentation supplied with the kit offer enough support to verify the features stated in the documentation? And if not, does the manufacturer offer adequate support to resolve any issues?" I'm happy to say my experience with Cypress dev boards has in the past always positive. My out-of-the-box experience with this board is a little unexpected, but I have already received some helpful assistance from the PSoC online community and I hope to post an update soon.
A month ago I bought a cypress psoc 5, and I fell in love with the company and their product. Their documentation is top notch (can't think of another company with better documentation), their psoc creator is so fun and simple to use, its really a delight to work with it. My only complaint would be that they don't support c++ in their psoc creator, a limitation which can be overcomed by "hacky" means.
Just like you I would also love to see the author's own examples with some explanation. I have enjoyed your psoc examples compact, very good stuff!
A nice report but are your sure that PSoC Creator is Eclipse based and I'd really like to see some of your own examples?
To road test it a bit further why not make a little video PSoC 6 kit to make your own test project?
How about a little animated video game to make use of the onboard LCD and capacitive slider and buttons?
And if you're feeling ambitious use both CPU cores, UDB and Analog blocks and Bluetooth BLE (or WIFI).
To expedite the process why not combine existing published code and configuration snippets here on the e14 community, Cypress Semiconductor and Internet.
I also find it interesting about your disappointment with the example documentation. I've always found them to be very good.
Nice road test report.
I wonder if you could use the PSOC 6 as an IOT hub to communicate with multiple wifi devices?