Mopidy Discourse

GPIO button crosstalk on Raspberry Pi Zero 2 W ? (mopidy_raspberry_gpio, RPi.GPIO)

I enhanced a USB speaker by implanting a Raspberry Pi Zero W to use it as a smart speaker, playing audio files and streams (Spotify) with Mopidy. So far the user experience was not too great because the single core CPU was really slow to react to interaction (buttons, RFID), I desperately waited for a Zero upgrade.

Finally the Raspberry Pi Zero 2 W arrived and I did a speaker heart transplant. But it seems the new heart has some heart rhythm disturbance :face_with_head_bandage: It is really slow to react to button presses, mostly ignoring them, using the mopidy-raspberry-gpio extension, which worked kind of ok before. But even worse it does different things when I press the same button! :roll_eyes:

I added some debug to the mopidy_raspberry_gpio (it uses RPi.GPIO) and even when pressing the same button multiple times, it is interpreted as different button (pins) pressed. It seems with higher power comes more responsibility :grin:

The buttons are connected via GPIO bcm5, bcm6, bcm12, bcm13, bcm16 and a common ground, no resistor. Furthermore a RFID reader is connected via pirc522.

Have you seen this undefined GPIO behavior before and have any ideas how to fix it? Via hardware or software?

Pi-Crosstalk

Without spending too many thoughts on this I highly recommend to use external pull up/down resistors and a 100n capacitor parallel to each of the contacts of your buttons.