CapSense MBR3 Evaluation Kit - Review

Table of contents

RoadTest: CapSense MBR3 Evaluation Kit

Author: o1i

Creation date:

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?: Mechanical buttons including membrane kind.

What were the biggest problems encountered?: Creating of own PCB is a challange. It is not so easy to draw all the lines and circles.

Detailed Review:

Quick Start Guide

For me Cypress is a very mysterious company. I had a chance to deal with USB host once, when I was working with data acquisition systems. But nothing since then. Until now. I believe that is because I started my journey with one month ago.

A CY3280-MBR3 came to the spotlight when I was looking for some nice looking control panel for my aquarium control unit. As we really like short names for huge things then I will call Cypress’s development kit just KIT or MBR3. Instead of aquarium control unit let’s use ACU.

Of course MBR3 is the sole subject of this review.

To be honest, main reason, why I’ve taken MBR3 is water resistance. It is the promise made by Cypress. I gave it a try.


Let’s see.

The package I’ve received was very nice looking. Arguably it is the most professional packaging box I’ve ever seen. Maybe except gifts from my friends. It is in notable contrast to package of Raspberry Pi which is more ‘green’ (in the way how ecologists see it).

What is inside:

  • CY3280-MBR3 module;
  • USB cable;
  • 1 mm overlay;
  • dropper (I must say that I have bigger and better one);

The quick start guide is really very easy and it takes several minutes to start using KIT. One just needs to:


Now we can test all that we saw in the presentation (repeated in the guide).

One note on the page and its content. All information needed can be found on one page. You don’t need to click all the time to get on file. There is no annoying drop lists or check boxes. Finally, I didn’t see a thumb up. Good for you. Later on I will try to get PSoC Creator and the access is constrained. One has to put a company name. A plain engineer has to get a job before access to this resource.

On the page you can get:

  • Software;
  • Quick start guide in a pdf file;
  • User guide in a pdf file;
  • Release notes;
  • Files regarding hardware.


One of installed applications is EZ-Click™ 2.0. We’ve made several simple tests; we’ve pressed buttons and dropped couple drops of water. Everything works just fine. Thus it appears that I have something I need. But to yield results worth paying for the insight is needed.


EZ-Click looks very easy. It can be managed without reading documentations. A PCB is well described and you can easily find hardware references in the software.

I’ve played with provided software and hardware for several days. I found some issues because constrains are less apparent. What I’ve found was:

  • Button stuck after a drop of water has been added;
  • When all buttons are covered with water a random button will be pressed.


Then I’ve read that it can be reduced by hardware and software configuration. It is worth to read the whole user guide but, to be honest, first think after quick start is to check response of KIT when whole overlay is covered with water. I call it curiosity.

There is another observation. Without any knowledge you can see that there is a small silicon cube - some smart algorithm is trying to keep device working. And it is doing well.

Let me say at this point of this review that an original premise is validated. It is water resistant and it is very sensitive.


Raspberry Pi

It is something absolutely new for me, so I’ve spent some time with it. After all the MBR3 has Arduino compatible headers, was provided with Raspberry Pi and in the end I’m going to connect it to LPCXpresso with NXP 1769.

I will not describe my experience with Raspberry. It is not a part of this review. I doubt that I will use it during several upcoming weeks.


The user manual

This part will focus on the user manual. I want to go through it just to make sure that I have all information needed. In fact, I will have an opportunity to use all switches and jumper provided in the KIT like a buzzer, a shield electrode pin, host interrupt pin, two slide switches to vary trace capacitance.


Slide switches – SW1

For me this is one of the main reasons why MBR3 can be so useful. I can imagine an algorithm that adopts itself to the environmental conditions. It will be very difficult and time consuming. That is for sure. A second disadvantage is memory utilization. It is quite obvious that with every line of code a memory size is reduced. Usually when we use mechanical buttons, all is done by physics. Water resistance, toggling and so on. It is also true for an illumination (one LED, one resistor, maybe some transistor). Now all mechanical behaviours are encapsulated in algorithm. In fact we’ve got much more. But, there are some quantifiable costs: parasitic capacitances. This development kit provides tools to observe influence of parasitic capacitances. The SW1 switch adds additional capacitor to show that the buttons are still working. It works just fine.


One note here: If we had learnt how to use the device, when we have a 15pF capacitor connected, then all will work also with 10pF (it is also true for opposite direction). We can also expect that turning off the parasitic capacitance will have no effect. I’ve found that device configured with 10pF is working with 15pF capacitor and without capacitor. Of course, when the capacitor is added, then the KIT will interpret it as press.

A NC position will not work configured with 15pF. In all cases configured means reset with switch in mentioned position. An overlay causes no changes to this behaviour.


Slide switches – SW3

This one simulates long/short trace. Well in fact it is still a matter of parasitic capacitances. As well as it is in case of the 1mm overlay. In case of the SW3 you can find, that it will work perfectly for both trace lengths when configured for the long one.

And when we are talking about the 1mm overlay it is time to say something about ACU.

I want to have something that will control lights, heaters, pumps and sensors in my tank. There is lots of stuff that can be switched on/off or regulated. There are several stories that could happen. Let’s have a look.


For all tests below I’ve used a long trace, 15pF parasitic capacitor and 1mm overlay.


It came to my mind when I was cleaning something inside my tank. Usually I have to switch something with latex gloves on. So I took one pair and tried it. Test passed.


I thought that maybe I could put on a second pair. And again test passed.

One can imagine all laboratory equipment or medical equipment with a flat control panel, easy to clean and control.

Then I thought that maybe I should use something more solid. I found gloves usually used for cleaning. I don’t know what kind of rubber it is. Right now it is not important. Test passed.


I can do something inside my tank and then press the button. But what if I want to turn on more lights when I’m going out with fleece gloves on? Still works.




So maybe I’m going out for dinner wearing leather gloves but I forgot to turn off the lights? Still works.




Well. I’m going to reach the top of K2, but I need to feed all animals before. Thick winter gloves are no problem at all.



Last try. I need to slow down a pump, but I’m going to dive and I have thick (5mm) neoprene gloves. Again everything is under control.




Tahugh guy. It is funny, because all other devices with sensor buttons I have in my apartment stop working when I wear simple latex gloves. I could test in in many other ways but it is difficult to press the button and take the picture of LED on.


Something on functional description.

The supplier provided list of functionalities. Let’s have a look.


SmartSense Auto-Tuning

We’ve met it in the past and we will work with that in the future. I guess most of the features are because of this function.


Proximity sensing

This one is very nice stuff. You can reduce power consumption by eliminating or at least reducing lights. Very useful in case of household devices. To be honest I’m not enthusiastic about LEDs everywhere. I’ve calculated that in one room I’ve got about seven LEDs and one of them is blinking. It is a little bit annoying (especially blue colour). This feature connects with the wake-on approach function. Less power consumption, green technology, ISO 14000 – Earth will be happy.

I’ve checked it with a default configuration in the EZ-Click 2.0. I started with diving gloves. Detection was delayed but it was not so bad. Really, I can work with it.


Button sensor auto-reset

Here I put several grams of solder on buttons. It worked also with a metal can, a screwdriver and keys. At this point I started to think about this device as an enemy. I wanted to find weak point, to feel disappointment, to feel supremacy over it.

Right now I’m surrounded by lots of devices with such sensors: a ceramic hob, an elevator, a microwave oven, laptops, tablets, city buses. All have troubles with their sensors. I can feel the difference.

Flanking sensor suppression (FSS)

Simply put, this eliminates false touches. It can be easily checked in the Kit by pressing two buttons in parallel. It is not so easy to do that with one finger, so I expect this function to do the job where buttons are close to each other and not clearly marked.  It might be useful when water is spilt on all buttons. Then we are sure, that we press only one button. But one cannot be sure which one will be pressed. To avoid such behavior a shield and a guard sensor option is needed.

There is one disadvantage. Buttons configured with FSS cannot be pressed together even when they are not close to each other.

In the past I had a nice vision of the panel of my ACU. Mechanical buttons came to my mind at the beginning, but then I started to look for something water resistant. Then I found that membrane buttons would be better. But I don’t think these look nice. I have one device with membrane buttons. It works but I prefer to hide it somewhere. Then I’ve found MBR3 on page and imagined a nice looking panel with some lights, different sizes and shapes of buttons.

The MBR3 makes it more complex. I need to decide which buttons can work together. I should keep in mind which one will be closer and would need FSS. I have to remember about path length and design rules.

Regarding the design rules. Supplier provided a nice looking excel sheet. There are lots of cells to fill and get some useful numbers. Hardware development is a different story; I will try it in the future.

The point is, that MBR3 makes project more complicated during prototyping phase. The good news is that lots of things can be configured after development. It should be also possible to suppress some hardware mistakes with software or simply avoid unwanted behaviors. The software development is cheaper. As always it is good to have more in a microchip memory than on a PCB.

And I have one question. Could be buttons immersed in water during operation?


Toggle (touch on/off)

We can have monostable or bistable switch. Or…


LED-on time

… We can have a button with delay.


LED brightness control

We can control LEDs in many useful ways.


Buzzer signal output

And even we can have an acoustic feedback.


All are working, all are in software and all have lots of possible ways of working. When all features are controlled by CY8CMBR3116 all works just nice and smooth.


System diagnostics

This is kind of tool that provides methods to check, if main input readings are in range. I tried to use this tool to see communication on an I2C bus. I connected the LabTool to the device. It was the first step before I started playing with an external host.



MBR3 as a standalone device

This idea came to my mind when I was playing with the toggle option. I made a small PCB with:

  • Relay: HLS8L-DC5V-S-C;
  • Photocoupler TLP627-2;
  • Greeen LED;
  • One resistor.


The relay is able to switch on/off any device. It is driven by a photocoupler. Inside the TLP627 is a LED so it is almost like connect a visible one to MBR3. The green LED is just for indication. In fact I can hear the relay switching so the LED was not needed.

I connected all to the GPO2 output through the resistor and enabled a GPIO host control in EZ-Click.


First of all. It works.

Second – if I had also a sensor coupled with this output (like it is with SC3-6 inputs) then I would have a standalone device. All we need is just power supply. Right now I can imagine a switch that turn on/off lights in the room. Small description:

  • When lights are off, proximity sensor turn on reduced lights and works only when hand is detected;
  • Touched device toggles lights;


Easy. Nice and will help find a cat in the middle of the night.


Unfortunately functionality is reduced. It is ok, when you don’t care about the status of the system after power on. MBR3 do not have memory in case of power loss. In case of such thing like my fish tank I need to restore configuration like it was before failure. Maybe it could be nice challenge for Cypress to provide some smart EEPROM. A battery backup can be kind of solution.

Here comes another nice functionality that I didn’t find but would be nice. Something like combination of Host control mode and standalone mode. It would be nice to have chance to press the button by hand or by I2C bus. In that case, the host can to just only automatic job and/or log changes.




I need to turn on the lights before it will be done automatically. I press the button and the MBR3 turns on the lights. An interrupt goes to a host. The host store incident in a log file and keep working. After teen hours, the host will automatically turn off the lights.

Let’s go back to the reality.

I was lazy and started with monitoring of bus. Last experiment showed me data that should be send to switch on/off GPO2 output.


OFF: 0x37 0x80 0x79

ON: 0x37 0x80 0x7d

The KIT is connected to PC through an USB cable. The USB-I2C bridge is PSoC 5LP (CY8C58LPxx family). This particular device is connected in the way that can be easily disconnected and enable user to provide one’s own I2C host. I will try to use Host-controlled GPO, I2C slave, Host interrupt.

I will use LPC1769. I wanted it because it has a CAN bus and I want to use it. It would be awesome to have MBR3 with a CAN bus.

Here is block diagram of my application, MBR3 is considered but you can imagine how it looked before.




All routines and communication will be in LPC1769. All relays will be far away from main board, so I choose CAN to communicate and probably something from Mircrochip will drive these.

All buttons and indicators I would like to put on the separate PCB. It will work in rather wet environment so let it be MBR3. I’ve checked it in many ways and I know it is suitable. In fact, it will provide more advantages:

  1. It will not be a mechanical interface – that’s cool;
  2. It will looks very nice (this is more art that electronics but touch sensors give lots of possibilities);
  3. Everything I need is ready – just connect through I2C.


So let’s connect it.


Short task to toggle GPO2 every four seconds:


static void vToggleTheMBR3OutputTask(void *pvParameters) {


       int tmp = 0;


       while (1) {

             mbr3_output_status[0] = 0x80;

             if(mbr3_output_status[1] == 0x7d) mbr3_output_status[1] = 0x79;

             else mbr3_output_status[1] = 0x7d;


             tmp = Chip_I2C_MasterSend(I2C2, 0x37, mbr3_output_status, 2);


             vTaskDelay(configTICK_RATE_HZ * 4);



And a more complicated case, when BTN4 is toggling a UV bulb. This time I had to look into CY8CMBR3xxx_Register_TRM_001-91082_0B.pdf.

static void vToggleTheMBR3OutputTask(void *pvParameters) {


       int tmp = 0;


       while (1) {

             Chip_I2C_MasterCmdRead(I2C2, 0x37, 0xaa, &mbr3_input_status, 1);


             if(mbr3_input_status[0] == 0x40)


                    mbr3_output_status[0] = 0x80;

                           if(mbr3_output_status[1] == 0x7d) mbr3_output_status[1] = 0x79;

                           else mbr3_output_status[1] = 0x7d;


                           tmp = Chip_I2C_MasterSend(I2C2, 0x37, mbr3_output_status, 2);





Tasks are runing by FreeRTOS. Whole test system, we can assue that it is test system) with working light:


I used UV one because I didn't have other. Everything else in hidden in walls and usually is supplied with 12V. Boring.

In this point we have an input and we have an output. There is also logic inside the device and in the host. What is still missing is algorithm that will change everything in useful way. Right now my idea is to make it more flexible. As I mentioned somewhere it is not nice, that device cannot work as a standalone and host controlled device. But I can also imagine situation, where a host is changing configuration when a proximity sensor will detect hand. I don’t think this is necessary, when toggling is not co complicated to develop. But maybe just for fun.


Something about sensitivity and water tolerance


Salt water which I already have in my tank makes more noise. Sometimes I need to press twice or hold a little bit longer. But still it works. Maybe the guard option could rise the reliability.

I tried it with 8mm glass and I’ve failed. I’m not sure if a dielectric constant of Optiwhite kind glass is still the same as a standard glass. I’ve checked with CY8CMBR3xxx Design Toolbox.xlsx and it should work. Maybe button diameter should be larger. I used glass in my tank, co I expect that the noise condition is high. Salt water do not help. Well, I had crazy idea to put control panel into water, but the buttons outside can be also nice. What I miss is the guard option. It was not part of the KIT and I need to create my own PCB to play with it. I’m just curious how the device will work, when immersed into liquid.




When I applied for this road test I had my vision of the control panel for ACU. During my voyage with MBR3 I’ve found that there is much more ways to arrange control panels. First of all I was surprised by sensitivity. I was expecting something similar my ceramic hob have. Sometimes works and sometimes not. And now, after lots of touches I don’t remember any failure. It has some disadvantages but these was not significant for me. I’m not native in English so please forgive me any mistakes and not understandable parts (I should say something on the begining but then no one would read it image). When I will get the end of my project, then I will try to update something.



Short summary of requirements for ACU.

  1. Buttons shall be nice looking. -> This is a matter of visualisation. In case of cap sensors it is possible to do that in many unusual ways.
  2. Buttons shall be sensitive. -> And it is proven several times during tests. It works just great.
  3. Buttons shall be water-resistant. -> And here it is true but we should split this requirement to two more.
    1. Button shall work with water on it. -> And it works
    2. When all buttons are wet, pressed button should be detected properly.-> Here we will see also with a guard option.
  4. Buttons shall work when pressed with gloves. -> Checked.


It really works.