Closed Bug 1085524 Opened 10 years ago Closed 10 years ago

Get PiTFT touchscreen working

Categories

(Firefox OS Graveyard :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: cjones, Unassigned)

References

Details

http://www.adafruit.com/product/1601 Pretty cheap and nice little screen with a resistive touch screen. The project here comprises 1. Assemble screen onto RPi, obviously 2. Download the set of patches at https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/software-installation , http://adafruit-download.s3.amazonaws.com/adafruit-ts.zip 3. Apply patches to a rpi-gonk-3.12.y branch of https://github.com/cgjones/linux (which will most likely move soon, beware) 4. Copy bcmrpi_gonk_defconfig to a new config called something like bcmrpi_gonk_pitft_defconfig. Add new Kconfig switches to that to turn on kernel patches applied above. 5. Hopefully the patched kernel will just work out of the box ... otherwise we may need some massaging at the gonk layer 6. Publish that custom kernel to device-rpi repository as kernel-pitft.img 7. Write up instructions or a flash.sh option to flash that kernel This project shouldn't be extremely difficult in theory, but it requires some comfort with the linux kernel, and might require knowing some of the gfx stack if something goes haywire.
One thing to watch out for on this project is that when doing kernel work, you'll almost certainly want a serial-to-USB adapter connected. But the PiTFT screen's header takes over all the GPIOs. The /best/ way to use both is with an IDC-to-breakout-board connector, then connect the serial adapter leads on the breakout board. But if you're like me and don't have one :), and are really careful, you can (i) connect the serial adapter leads to the IDC connnector then (ii) VERY carefully jam the PiTFT onto the pin header far enough to make connection, while keeping the serial adapter leads plugged into IDC connector and not crushed. Hey, it works.
Even better: there's a fork of rpi-kernel with the patches rebased on rpi-3.10.y here https://github.com/xobs/adafruit-rpi-kernel and an fbtft driver tree updated around the same time (so presumably based on the same rev) here https://github.com/xobs/adafruit-rpi-fbtft So this should be a bit easier, just a light rebase, import of fbtft, and then creation of the bcrpi_gonk_pitft_defconfig. I've started an rpi-gonk-pitft-3.12.y branch at https://github.com/cgjones/linux for that work.
Initial support landed in https://github.com/cgjones/linux/commit/181d0209be7ec1dc8967e3b5109600cfad1f4c6e the fbtft device doesn't seem to be coming up, so the screen isn't working yet. Looks like one its dependent devices is either not configured properly in that defconfig, or isn't coming up for some reason. (The touchscreen input driver isn't coming up either.) As far as I can tell, we'll end up with *both* framebuffer devices created when fbtft is working. We may have add a small hack to get the gonk layer to choose the right fb device; /dev/graphics/fb0 is unfortunately baked in pretty deeply. A hack that's philosophically upsetting but not the end of the world is just disabling the bcm2708 fb device, so theoretically there would be only one.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.