RoadTest: CapSense MBR3 Evaluation Kit
Evaluation Type: Evaluation Boards
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?: TI Launchpad Capacitive Touch BoosterPack
What were the biggest problems encountered?: Understanding all touch parameters.
The CapSense CY3280-MBR3 Evaluation Kit come in the usual white plastic box as many other Cypress products. As stated on front of the box MBR means Mechanical Button Replacement, the ultimate well renowned Cypress CapSense solution featuring water tolerance and proximity sensing, allowing you to design sophisticated touch user interfaces suitable for somewhat hostile environments like kitchen and bathroom (...). On the rear a brief text explain as the CY8CMBR3xxx device family can do that being a register configurable device. With the help of EZ-Click software tool you can easily set every single parameter of the chip that leverage the Cypress SmartSense autotuning algorithm which eliminate the need for manual tuning. A yellow label remembers the presence of electrostatic sensitive devices inside, so you are warned about opening the box in an adeguate environment.
At the end of the quick start guide you are instructed to look for more information and software download on the Cypress website. At http://www.cypress.com/go/CY3280-MBR3 the latest informations and software can be dowloaded.
Going there you can find hardware datasheet packed in a single zip file, quick and extensive guides both in english and chinese, and a couple of installation files. The smaller one contains the kit setup files only while the larger includes also the EZ-Click configuration tool and the PSoC Programmer (see later); I suggest to use the latter. In case you already have such additional components installed, the package will update them automatically. You can also download an huge 570 Mbyte file to burn a complete setup CD, but I didn't try this.
Also on that page (scroll down) there are many useful information files, design guides, knowlegde base articles and video too.
|Bottom side||Top side|
The Cypress CY3280-MBR3 board is almost square, measures about 7x7.5cm (say 2.7"x3") and over many passive components (all SMD) host the CY8CMBR3116 chip (A) that is the superset element of the family, noticeably a PSoC 5LP (B)(here used as an USB-I2C bridge), a mini USB connector (C) to communicate with the board and
power it, a buzzer (D), a large set of jumpers (E), a reset button (F), a couple of switches (G & H) and a tipical Arduino shield long pin arrays(I & J).
Flipping the board (Fig.06) reveals its upper side with four round touch sensors (buttons) each illuminated by its LED. Other 3 LED are provided for power, status and proximity function. All the CapSense area is overlayed by a transparent 2mm thick acrylic sheet glued in place.
The accurate user can notice that the top and bottom buttons are slightly larger that the right and left ones (12mm Vs 11mm). This can be used to precisely compare the buttons behavior under some conditions. Also both sensors and LEDs are marked with the respective connected pins name to easy the development work.
The onboard PSoC 5LP (ARM Cortex M3based) can seems an overkill solution to connect the CapSense chip to the external world (your pc). I didn't investigate much about its separate programmability, like on the PSoC4 Pioneer kit, but probably from the Cypress point of view this solution is reliable and well tested so why look for an alterative ?
Instead I'm a bit critical about the mini USB connector choice: on these last years I learned (at my expense) that with this connector type you can experience false contact troubles. Micro USB connectors are more reliable.
About the related software, after downloaded and run the bigger installation package you can choose between typical, custom and complete installation. I choose typical. Accept the license conditions to go further.
As other Cypress products this kit software include a complete toolchain that will be installed on your pc, but don't worry, just follow instructions on the screen and all will be ok.
After the software installation you can connect the evaluation board to your pc using the supplied A to Mini-B USB cable.
The board will enumerate as a composite device that includes 3 different pieces. At the end you can see this result (in Italian, my mother tongue language, sorry for the others, anyway it seems clear enough).
EZ-Click is one of the main applications bundled with the kit and is a powerful tool, it let you configure every single parameter of the chip in a very confortable way. Even if CY8CMBR3xxx are not MCUs the EZ-Click application resemble a typical IDE where you can build your executable from code and program it into them: chose the parameters value on the relevant checkboxes or menus, build your configuration with a click then "burn" it into the chip (this step is performed by the USB-I2C bridge).
Talking about parameters, you can see how huge is the Cypress experience about the touch sensing that is put on this chip.
Complex configurations and behaviors can be saved on configuration files and of course you can load them with few mouse clicks.
A complete analysis suite is included, so you can examine at signal level your touch sensors behavior under various conditions and to fine tune your hardware before go on production.
Anyway, about this detail, one big advantage of this chip is the auto-tuning algorithm that can save you from long boring adjustments sessions, also improving the circuit against the environment interference. Slow temperature or other conditions variations are virtually ignored since the algorhitm adapt the circuit parameters so that it works always well into the S/N safe area. You can verify this using the above mentioned onboard switches that can change the input capacitance of one of the sensors/buttons: at the first/next initialization (power on or reset) such different situation is recognized and compensated automatically.
The 90 page CY3280-MBR3 User Guide, beside the informations about the board and software tools, can help you on every step from the installation to the PC communication upto advanced examples in conjuntion with external hardware, not to mention several useful tips.
As anticipated above, first operations are performed using the EZ-Click tool. Three sample configurations files are provided, so loading them you can examine respectively the possibilty of toggle the LEDs on/off, the proximity detection feature, the water tolerance. But of course you can vary these configuration modifying one or more parameters using the menus and checkboxes and see alive the different behaviors, just the time to generate the new configuration file and load it into the chip, you can do it with 2 (two) mouse clicks!
You can, for example, change the trigger values, the sample period or the beep frequency and duration. Beside see and hear the differences on the kit, you can analyze them using the relevant part of the EZ-Clicktool. I just report the graphics results of CapSense output in the Water Tolerance Test with and without the shield enabled.
I admit to have not investigated so much the water tolerance feature and the associate example, but no one can ignore its importance on many applications, both in industrial and domestic environment, so it is really welcomed.
Going further on the guide you can find a couple of examples using an external host MCU that communicates with the CY8CMBR3116 chip. They used the PSoC 4 Pioneer Kit, that have the Arduino style headers onboard and matches perfectly the CY3280-MBR3 long headers.
I already had the CY8CKIT-042 PSoC 4 Pioneer Kit from a previous roadtest, so I did both those examples. Here are the two main characters side by side before the matching:
When used with an external host the CY3280-MBR3 board has to be configured so that the chip can communicate via I2C bus with the relevant MCU instead of the onboard PSoC 5LP. This can be accomplished moving the jumpers to a new position: both J13 & J14 select PSoC 5LP on their 1-2 position and external I2C host on the 2-3 position. Also the J15 jumper group has to be set on the "A" configuration.
As said I did both examples, and all went through without troubles. Some extra work was required to install the new PSoC Creator 3.0 (it isn't a light package...) for the PSoC 4 Pioneer Kit, since the previous 2.2 version wasn't able to load the supplied project files.
The first example show how to use an external MCU to write the configuration on the CY8CMBR3116 chip via the I2C bus, and this is very instructive for further experiments since the chip is "only" a register configurable device. After performing the example with the supplied configuration file I started to experiment changing some parameters with the EZ-Click tool and generating the configuration files. Then from the EZ-Click project directory I opened the *.h file, copied the 128 byte data array inside and pasted it into the configuration.h file of the PSoC4 project. This way I was able to test several different configurations.
The second example show the use of interrupt generated from the CY8CMBR3116 chip (if configured to do so) to drive the communication between the chip and the host MCU. Here every touch on the buttons make the MCU to read the buttons status via the I2C bus and light the onboard RGB led accordingly.
I like most the Arduino example found on the Element14 community forum ( CY3280-MBR3 Example with Arduino (Uno/Mega) ), since I have some experience with Arduino environment and it could be easy implement an idea about touch control into an Arduino mini module or straight into a little AVR chip.
From that page I took the attached files at the bottom to start my job. If you want do the same follow this simple directions:
- Extract the Arduino_HOST_INT zip file right on the EZ-Click "firmware" directory ( C:\Program Files (x86)\Cypress\CY3280-MBR3 EVK\1.0\Firmware )
(and ensure that the result folder and files are writable, see below)
- Extract the Arduino Sketch - MBR3 Read Status zip file on your Arduino directory
- If you use an Arduino UNO board be sure to short with some solder the R71 and R72 pads (zero pads Fig.16) on the CY3280-MBR3 board to allow the I2C signals go to the right headers
- Configure the CY3280-MBR3 jumpers J13, J14 and J15 as explained on the PSoC 4 examples (1-2, 1-2, A)
- Connect the CY3280-MBR3 to the Arduino (I used a Uno)
- Connect the Arduino board to your PC via a suitable USB cable
- Launch the Arduino IDE (1.0.5) and load the MBR3_Read_Status.ino sketch
- Compile and upload the sketch
- Open the serial monitor of Arduino IDE at the right baudrate (115200)
Touching the buttons the corrispondent LEDs will light, a bip will come from the buzzer and on the serial monitor you will read the buttons status.
As already said on the Cypress PSoC4 Pioneer board section, you can use EZ-Click tools to create your own configuration, generate the configuration file (just check that the relevant directory and files are not read-only), then copy its data array into your code (the sketch splits and sends it in 4 parts due to the limitation of Arduino wire library).
As stated on my roadtest enrollment request, I want dim a bedside LED lamp using touch controls, so I did a mini project starting from the above supplied sketch.
I cutted away all not necessary part of the sketch but leave all the long initial register declarations, so I will able in future to change and use every parameter of the CY8CMBR3116 chip. About this, to know and master all such data I suggest to download the CY8CMBRxxxx CapSense® Express™ Controllers Registers Technical Reference Manual available here:http://www.cypress.com/?rID=90802
The lamp used (Ikea JANSJÖ) has a 3W white LED and its power supply is 4V 0.75A max, so it is sufficient add a suitable power MOSFET on the low rail to dim the light applying the right PWM signal at its gate (a couple of resistors provide the right polarization). The PWM signal come from the pin 9 of arduino using the analogWrite() function borrowed right from the arduino Basics - Fade example.
I used the ReadSensorStatus() function to change the brightness variable: touching the button 3 will set the brightness at its maximum (255), touching the button 4 will set it to minimum (0), touching the button 1 will increase the brightness with a predefinite step and touching button 2 will decrease it at the same rate.
Of course one may want add some basic or advanced functions, like storing the last setting in EEPROM so that the lamp will awake at the same level when switched on again or linearize the brightness control using a more sophisticated algorhithm, or also switch off automatically the lamp after a long period without receiving a command, but for this roadtest I think it is sufficient to demonstrate how easy is mastering the CY8CMBR3xxx controllers. Further steps could be make a tailored PCB with button sensor and LED to be installed under the plastic sheet of the base. Here is a short video of the first breadboard prototype attempt ( guest star: my daughter hand )
The CapSense CY3280-MBR3 Evaluation Kit and the associated software fullfill the expectations of a serious developer not to mention of an electronics enthusiast.
The hardware and software seem well integrated and able to manage the potential of the CY8CMBR3xxx controllers family.
I wanna thank Cypress and Element14 to give me also this time the possibility to test a little big piece of technology.
Thanks Andy for the suggestion.
I haven't a deep knowledge of the Trinket, but IMHO it seems to me a step towards the simplification that can be skipped. Nice thing anyway, it intrigues me for other purposes.
About the shorted pads I have to admit that first time (in the hurry and without a full comprension of the example description) I tried without it, but of course the thing doesn't work, so (after some re-reading of documentation) I realized what to do .
As usual my job and other things limit the time to go deeper on these roadtests.
I hope to shrinkify all the mcu stuff into an 6/8 pin attiny or pic (or even have no mcu at all, just leaving a "program" I2C socket) and be able to manage CMBR's tiny packages to build a prototype to be installed into the lamp.
After this roadtest I'm well aware about the CapSense capabilities, putting the sensor under the plastic sheet of the lamp (as I stated on the roadtest request) is feasible for sure.