Capacitive touch hat not working always

Hi,

I purchased one of these (https://shop.pimoroni.com/products/adafruit-capacitive-touch-hat-for-raspberry-pi-mini-kit-mpr121) and connected it to my Raspberry Pi 3 Model B. The hat fits physically and that’s great. However, my RasPi does not always detect it always. If I push it down here and pull it up there it works but most doesn’t. My project needs compactness (hence I bought the hat) and I don’t want to solder the hat onto the Pi permanently.

What’s the solution? I actually intend to buy another one if this can work always. I have another RasPi of the same model.

Thanks

Ahoy!

Have you soldered the supplied 40 pin header to the Capacitive Touch HAT? If you just slip the HAT down over the pins on the Pi, the connection would be absolutely terrible at best. It’s literally square pegs into round holes!

I’m guessing the header would defeat your compactness aims?

Hi,

Sorry for the late response but I didn’t know I had to manually check for replies. Probably some setting!

Anyway, I bribed a friend to solder the 40 pin header to the Capacitive Touch HAT and it still doesn’t work. He has done a fantastic job and I have enabled the I2C and everything. The header fits perfectly.

Since I did get it working sometime, I know there’s nothing wrong with the Raspberry as such.

I don’t know if the picture is clear but the red indicator LED on the hat glows, when I attach it.

Could the header be faulty? I really hope I can get this to work, since I actually need 2 of these for my project.

Though on the positive side, the compactness issue is solved. After soldering the header and attaching it to the pi, the system is compact enough for my needs.

Please help!

Could you describe the issue in more details? at the moment it’s not clear to me what tests or practical application you are attempting and I suspect it’s something obvious that would be difficult to identify short of being in the room with you.

Hi Rogue,

Good point. My idea is to make a touch sensitive lamp. So I detect a touch from the user and turn on an LED in response.

I have one of these attached to my RasPi
https://www.blinkstick.com/products/blinkstick-square

So, I would detect different touches (since there are 12 points to touch) and make the LEDs glow in 12 different patterns.

So I purchased the touch hat, got it soldered and fixed it onto my RasPi 3. When I run the i2c detect command on the pi, I see the matrix but everything is empty. I hope this makes the issue clearer.

How have you enabled i2c, using raspi-config (recommended) or with manual config changes? If the later, do you remember what you changed?

Other than that, you originally stated you got it working sometimes, was that strictly using i2cdetect or have you gone further than that and attempt to detect a signal from an input?

Hi Rogue,

I enabled it using raspi-config.

When I got it to work sometimes, I could actually detect individually the 12 touch inputs using adafruit’s example python program.

and this no longer works?

… don’t take this with a high level authority but while i2cdetect is expected to find all the devices on the i2c bus, I think it can depend on a number of factors whether a response is received or not.

I guess what I’m getting at is that regardless of the output it is worth probing via your program and see if the device respond.

If you have another Pi available (I believe you have?) then it is also worth popping the same SD card in it, and try there. This would allow you to assess, however unlikely, whether there might be a hardware issue with the Pi GPIO.

Correct, it doesn’t work. I also did try running Adafruit’s program to detect touch and that fails too.

While I was waiting for this, I went ahead and ordered 2 of these

And they work perfectly! So there’s nothing wrong with my RasPi or the pins.

So it appears the capacitive touch hat is faulty or broken, right? Is there any other possibility?

That seems like a strong possibility. Please send support@pimoroni.com an email and they’ll sort out a replacement.