Assitive technologies project


I’m working on something for a friend, his wife had a stroke and has some mobility etc issues. My plan was to mount a Touch pHat, Drum Hat, and Speaker pHat to a pHat Stack. Then use the touch inputs to speak common phrases through the Speaker pHat. Yes , No, thank you, hello etc.
I saw this, which is close to what I have planned. One thing though, the pHat Stack Configurator is flagging PIN 40 BCM 21 as a conflict. Its I2S for the speaker pHat and Reset for the Drum Hat? Do I have to do anything special to make these work together? Is it even an issue I need to worry about?



What possessed me to use that pin for reset! You should be able to run Drum HAT perfectly fine without even connecting it, but it’s handy to have to get a connected Drum HAT out of a failure state sometimes (although I’d wager the touch chip is far less likely to get in a bad state than the Pi itself).

It might be worth simply trying to use Drum HAT and Speaker pHAT alongside each other and seeing what happens. It’s possible the pull-up on Drum HAT could cause havoc with the i2s data output or vice versa.

With a little trace cutting and creative wiring you could re-assign this pin. It goes via an onboard pull-up resistor which provides the perfect spot for tapping off a copper-enamel wire.


What I might do is just pull that pin from the male header before I solder it to the pHat stack. that would leave it unconnected / unused. Was just wondering if it was needed /used?
This works without issue right? If yes I should be fine. I don’t have any of the parts yet, just doing the preliminary will this work etc stuff. My plan is something like this.

The Pi will be at the top on a right angle GPIO header. Female on the bottom side of the Pi right angle male on the top end of the pHat Stack.


Looks like I can’t use a Drum Hat and Touch pHat together though? Both use the same 0x2c i2c address. According to Raspberry Pi Pinout. =( That’s a real bummer. Good thing I checked before ordering parts though.


Ooh yes, good point! I think we ran out of addresses for that touch chip and had to have a clash eventually :(

The red highlighting of the pins on the pHAT Stack tool indicates there’s an i2c clash- I don’t think it’s quite obvious enough what it means though, since you could rightfully assume that it’s misreporting a clash due to multiple boards using the i2c pins.

Pulling the pin from the male header will definitely break that connection.


I saw it, and initially just assumed it was because they both use i2c. I should know better though, and did eventually have a detailed look see. It’s a proper indication, maybe put an “address conflict” message there somewhere? Somebody could make the wrong assumption.

How hard would it be to change the address on one of the CAP1166 chips? Assuming it has a changeable address? If I just have to tack a wire or resistor on to pull it low or high, I can handle that no problem.
The coding change in the software is another matter though. I’m game to try it though. When I finally buy the parts, lol.


If this is that chip, it looks like changing the address is doable with just a jumper wire.
And from here,

If you’re using multiple sensors, or you just want to change the I2C address to something else, you can choose from 5 different options - 0x28, 0x29 (default), 0x2A, 0x2B, 0x2C and 0x2D
The I2C address are selected by connecting a resistor to the AD pin in the lower right: different resistors set a different address. The easiest address to set is 0x28 which is just a wire from AD to the 3Vo pin.

I just have to find the correct PIN on the actual chip on your pHat, and solder a jumper in. Might even be able to just tack it to the end of a resistor.


You’re correct, it’s a Cap1188 chip.

The correct pin on Drum HAT should be easy enough to find, since it’s coming from the Cap1188 and going via an 82k resistor to ground. The resistor is the single 0603 placement next to the resistor array. It’s on the right-hand side looking at the back of the board.

The options are:

82k = 0x2c
100k = 0x2b
120k = 0x2a
150k = 0x29

Remove resistor and tie to VDD/VCC (would be super difficult on Drum HAT) = 0x28

So you could just remove and swap out that resistor.


Great thanks, thats just the info I as looking for. I’ll look at both the Drum Hat and Touch pHat and figure out which one is the easiest to modify. VCC/VDD is 3.3V right? I could just jumper the address pin to that pin on the header. I think I could also just leave the resistor there, assuming I jumper the 3.3v to the correct side ;) It will draw some current but not much if its 82 K ohms. Just a few micro amps.


On Touch pHAT you could jump a wire from the resistor, diagonally across the touch IC, to the bottom of the decoupling capacitor on the opposite corner. This would give you 3.3v (VDD/VCC) to the ADDR pin. I would imagine even with the 82K resistor pull-down to ground, this would switch that ADDR.


That would be the one marked 823 in this picture, If yes I should be able to remove it no problem, even with the soldering iron I have here at home. I have a really fine tip for it.


That’s the one, yep!


Thanks again, your the man. Big thumbs up. This project will be on hold until I get my income tax refund so it may be a month or more before I do the actual build. I’m very enthused now though. This could be a lot of fun. =)


I would highly recomend a microcontroller its much lower power and you can either use talkie library or load in your own .wav files. If you need multiple sayings I would suggest an M0 based board, any that has 2mb flash like the feather, itsy bitsy m0, and the circuit playground express. If you unsolder the neopixels from the express the quiessent may be managable and viable, you would also have fall detection built in, in case of another stroke. It is important to know when a stroke occurs as clot busters can be administered if its 4 hours or less? might want to check, but an added rtc would be desirealbe. I think your just at risk of card corruption and power consumption using a pi zero and all those hats and your budget is suffering as well when you could have a microcontroller version up and running much cheaper and much faster and I think functionality and getting her one asap would be way more important than getting fancy. M0 microcontrollers also have many capacitive touch pins built in, no need for a cap touch board.


After researching it further, this could all be done on a tablet etc. The software is out there. That may end up being the way they go. I’d still like to build this project as I could do other things with it. It may be some time down the road if it ever happens. It’s still fun to discus it and get good feed back like you gave. I will keep your suggestions in mind. The only micro controller I currently have is a BBC Micro-Bit. I have never used an Arduino etc. Like a lot of people I go with what I know. ;) Thanks again for the feed back though. =)