The Pi Cap adds capacitive touch buttons to your Raspberry Pi
. Bare Conductive was kind enough to send me one. I do not have a project in mind right now, so here are my first impressions.
What is the Pi Cap?
Arduino tends to call daughter cards shields, while the Raspberry Pi community calls them hats. The Pi Cap is a hat. It plugs into the GPIO header of a Raspberry Pi and provides 13 capacitive touch pads. There is a traditional push button, an LED, and a prototyping area. While the Pi Cap does consume all of the GPIO pins, several are broken out near the GPIO header.
Pi Cap Form Factor
The hat will physically fit with any of the “regular” Pi and Zero form factors. The conductive pads extend slightly past the edge of the Pi. It seems the Pi was designed specifically for the Zero. When attached, the combo will sit flat on a table with the Pi Cap on the bottom. This configuration makes for easy presses and connecting to conductive ink pads. However, the Raspberry Pi modules with USB and Ethernet ports cause the board to sit a bit funny.
I did like that there is a blue LED and it has been designed to be visible through a mounting hole. Pretty smart.
Installing the software
For my testing, I started out with a new Jessie Lite install. My existing Pi is setup for the Raspberry Pi Soft Power Controller
. The RPSPC requires at least 1 GPIO pin to keep the supply active, so I could not keep Pi booted with the Pi Cap taking up all of the GPIO pins.
Installing the support files and examples for Pi Cap is simple:
sudo apt-get install picap
Here’s something I did not expect: it draws in 212MB of packages. This bloat feels unnecessary to me. On the one hand, I understand the need for installing extra packages like mosquitto
. There is an example with MQTT
. On the other, I wish there was a “minimum” package available. Enough to compile a basic program and move on.
At first, I expected the touch pads to map to a GPIO pins on the Pi. Then I realized, that does not really make sense. The touch controller is an NXP MRP121
. At least, based on the library with the examples.
Speaking of the examples, they come in four different formats. Of course, there are Python examples. Also included are examples for Processing (the Arduino IDE-like UI for PCs), C++, and even node.js.
In my Pi Cap hands on, I only used the C++ examples. (Note, they are stored in the CPP folder.) There is a script included that compiles the example code and then runs it. Nice touch if you are not familiar with the build process.
These examples include a simple touch example which tells you when you press and let go of a conductive pad. As well as an MQTT example.
Issue with the button
As mentioned, there is a physical push button on the shield. In my testing, I ran into a snag. While running the “button utility” example, the Pi would completely lock up. I did not spend enough time to diagnose the problem. Either the code was causing a lock up or the physical moving of the shield when I pressed the button did.
The physical push button, on a Raspberry Pi 3, is right next to a USB connector. It is challenging to reach the button. At least, without rocking the hat back and forth.
Pi Cap Audio
There is an audio output available. However, I did not have anything to plug into it. I could see the port enabling a virtual piano. Or, adding sound effects as the capacitive buttons are pressed.
More Info on Pi Cap
Here’s where I am stuck. I think the Pi Cap is an interesting utility or tool. However, I cannot think of any applications I want to use it. It is not possible to attach an LCD to the Pi, so that means you are looking at a headless application. Or something with some LEDs. But, there are limits to the GPIO available.
When pressing individual pads, I found it difficult to press only one pad. It seemed like I was always triggering two at a time.
However, the limit of my creativity should not be your limit. I would like your help.
What can I use this hat to build? What projects can YOU suggest for such a device?