Speaker PHAT invisible on i2c


I’m building a deskside clock radio because my ancient one is dying - I have several I2C devices running through a 3v/5v adafruit level convertor because the Adafruit display and Lux sensor run on 5V this means I cannot just plug the Speaker PHAT onto the Pi Zero with a 40way header…

The Lux sensor and Adafruit display respond to i2cdetect -y 1, the speakerphat doesn’t, I’ve tried speakerphat on its own and still no joy. I2C still works on the Pi so there’s no problem with anything other than speakerphat :-(.

Any ideas? - its not a disaster, I don’t want to use the VU meters but I’d like the i2c interface to respond [N.B. there’s no address clash]

P.S, Stretch, full GUI, on a Pi Zero… but that’s just for prototyping…


This is normal. Speaker pHAT uses an SN3218 which is write-only, so i2cdetect -y 1 wont “see” it. You need to use, IIRC, i2cdetect -q 1 which attempts a write to all addresses.


Hi there, many thanks - that command isn’t one I was aware of - but the three devices now appear. I’ll put that in my build notes… Easy to miss that the device is write only - interestingly the other devices also appear with a write command.

Can get on with the case design and final cabling, waiting for an Adafruit perma-proto hat [without EEPROM].

Thanks for your help, I was thinking it was the wiring and I’d somehow blown something. But its all Good!.


Yeah it’s caught me out on numerous occasions, despite me knowing that it’s write-only! Glad you’re sorted.