[typ.o] was working on a Raspberry Pi project and found himself running short on USB ports. The project required a touch screen interface, which takes up one of the ports. Since he was only using the screen in text mode, he decided to ditch the original USB controller and make his own.
The ever popular Attiny85 is deployed to handle the task, and is interfaced between the resistive touch panel and the Raspberry pi, using only three pins from the GPIO port. The Attiny85 runs off the 3 volt supply from the raspi, so no level shifter is needed, helping to keep his board super simple.
The calibration and calculation of the touched character location is done by a Python script running on the raspi. [typ.o] is a fan of the KISS principle, and it shows. Be sure to check out his site for all source code, schematics and a video demonstrating this simple but effective solution.
6 thoughts on “Simple Touch Controller Frees Up USB Port”
Good solution given the stuff on hand. I’m surprised nobody has a breakout for one of the many i2c touchscreen drivers out there. Some drivers have existing Linux drivers making it easy on the software end.
there’s a reason it’s called Universal Serial BUS. Seems like a hub would have been a lot more practical. How the hell is this KISS?
A hub was my first thought too. Not everything has USB though, so I suppose he’s gone with a more universal approach. It might have been overkill for this project, but maybe he has others in mind?
To be anal: he’s only using one GPIO, plus power and ground; not 3 GPIOs as the article’s description implies.
So its 4 pins for the touch screen scanning/measuring, plus a com pin labelled TX0
i bought that kit and it ended in magic smoke on first turn on, im going to send it back
Please be kind and respectful to help make the comments section excellent. (Comment Policy)