|Product Performed to Expectations:||7|
|Specifications were sufficient to design with:||10|
|Demo Software was of good quality:||5|
|Product was easy to use:||7|
|Support materials were available:||9|
|The price to performance ratio was good:||10|
|TotalScore:||48 / 60|
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-188.8.131.52-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