Pirate Audio - GPIO 20 and i2s

I am trying to help someone who has the Pirate Audio device (with mini screen and speaker) but wants to run it on something other than Raspbian (and not with Mopidy).

He has everything working apart from the volume up button on GPIO20.

The error he is getting implies to me that he cannot use GPIO20 for input rom the pin while it is also being used as part of the i2s subsystem used by the amp.

Is there something magic that allows this to work in the standard Pimoroni set-up?

1 Like

I’m having similar problems. I’m attempting to map the buttons using dtoverlay=gpio-keys. Three map fine, but if i attempt to map the bottom right one, snd-bcm2835 fails to load, which the sound driver requires.

I have the same issue after using the Pirate Audio 3W speaker version and the Bob Rathbone software. Does anyone have any info or a fix for this as it seems to be a general issue not related the what SW is being run ?

As far as I can see GPIO20 is only used as an I2S input, which the Pirate Audio boards don’t have (?). How are you enabling the I2S/the board?

Pimoroni generally don’t support other OSes, so I’m not certain you’ll get an official answer from them.

Check that the GPIO number is really what you think it is because Pimoroni moved things around with later versions of the board I think.

This post for a non-Raspbian system (PiCorePlayer for LMS) might help

Good call, this Github issue apparently used GPIO24 for Y, not 20, which matches what Chill said in your link.

" N.B. Pimoroni now seem to be shipping boards which use a different GPIO for the Y button. If the Y button on your board does not work with this script, it may be necessary to change the line ‘SW4=20’ to ‘SW4=24’"

I don’t know why they wouldn’t note that somewhere.

See this github issue … I’m in it as well.

Ah, the joy of hiding closed issues which might actually be helpful.

Again though, I’ve no idea why Pimoroni didn’t mark this on the board or in the product description. I really do wish they were better with their documentation.

I’m having the same issue on the pirate audio headphone device. If I try to use the ‘Y’ button (gpio20), then the dac (audio dev) fails to load. I’m running on raspian buster (kernel 4.19.97+). Using the dtoverlay in /boot/config.txt like so:

// emulate keyboard with buttons
dtoverlay=gpio-key,gpio=16,active_low=1,gpio_pull=up,label=GPIO_RET,keycode=28
dtoverlay=gpio-key,gpio=5,active_low=1,gpio_pull=up,label=GPIO_Up,keycode=103
dtoverlay=gpio-key,gpio=6,active_low=1,gpio_pull=up,label=GPIO_Down,keycode=108
dtoverlay=gpio-key,gpio=20,active_low=1,gpio_pull=up,label=GPIO_Esc,keycode=1

Have you tried changing the 20 to 24?

Yes I tried that, but then the ‘Y’ button doesn’t work because it looks like I have the older version of the hat. I purchased mine earlier this year but apparently it was built before Jan.