For me one of the nice features of the MBR3 chips is the I2C bus. This allows you to read the status of the switches from a microcontroller with just two wires. If you can spare a 3rd wire then you can also use the "host interrupt" feature to tell the microcontroller when something has changed with the state of the switches. This means that you can have a selection of debounced switches with status LEDs with the minimal of wiring and coding. The I2C bus can even be used to program the chip using code generated by the EZClick software so you could reconfigure the switches in circuit if desired.

 

Although the road test package provided a Raspberry Pi for testing this feature I decided to use an Arduino Uno that I had available. This was because I have more experience with that platform and it's also likely to be the kind of technology I'd use in the workshop to control my equipment.

 

Example code for using a PSoC 4 host is provided with the software download. Examples for the Pi and Arduino are available on the Element14 site.

 

Because I was using an Arduino Uno, some soldering was required to connect the appropriate header pins to the I2C bus. I was initially confused by the instructions as I'd not heard of a 0Ω resistor before and assumed it was a typo, however once clarified I added two wire links across the pads.

 

CapSenseLinks.jpg

 

The jumpers were set to enable host interrupt and to connect the I2C bus to the MBR3 chip directly rather than via the PSOC chip which is used as a USB to I2C bridge. There was a comment in the userguide suggesting to remove these links but that did not work and I used the configuration described in the arduino instructions.

 

The board and arduino fit together well and there is plenty of clearance and space for the cables.

CapSenseAndArdu.jpg

I uploaded the code and opened the serial monitor, it initially produced jibberish but I changed the monitor to match the serial bus speed used in the code and it worked exactly as expected.

ArduinoTest.png

 

I'm happy with the I2C connectivity from the arduino, the example code worked without need for review and the instructions were good. It would have been preferable not to have to solder wires on the board to complete this test but at the end of the day it was not too difficult to do.