Reintroduce pw_touchscreen API with ft6236 support

- Addd pw_touchscreen API and implementation for the ft6236.
- An ImGui implementation will be added in a followup.

Bug: b/304366246
Change-Id: Ibbb7530eacda4ee6c1010d2019ea9ed7a370e32b
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/kudzu/+/175351
Reviewed-by: Armando Montanez <amontanez@google.com>
22 files changed
tree: f2c855fdb219bb507ab9bf0c78589463b8c7a045
  1. applications/
  2. build_overrides/
  3. lib/
  4. pcb/
  5. targets/
  6. third_party/
  7. tools/
  8. .gitignore
  9. .gitmodules
  10. .gn
  11. activate.bat
  12. banner.txt
  13. bootstrap.bat
  14. bootstrap.sh
  15. BUILD.gn
  16. BUILDCONFIG.gn
  17. OWNERS
  18. pigweed.json
  19. README.md
README.md

Kudzu

Compile:

pw build

Run:

Host Build

Run either of the host build apps:

./out/gn/host_debug/obj/applications/terminal_display/bin/terminal_demo
./out/gn/host_debug/obj/applications/32blit_demo/bin/32blit_demo

Flash a RP2040:

picotool reboot -f -u
sleep 3
picotool load -x ./out/gn/rp2040/obj/applications/terminal_display/terminal_demo.uf2
picotool reboot -f -u
sleep 3
picotool load -x ./out/gn/rp2040/obj/applications/32blit_demo/32blit_demo.uf2

Linux Setup

Udev Rules:

Put the following into /usr/lib/udev/rules.d/49-picoprobe.rules

# Pico app mode
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE:="0666", SYMLINK+="rp2040"

# RP2 Boot
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE:="0666", SYMLINK+="rp2040"

# Picoprobe
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE:="0666", SYMLINK+="picoprobe"

This will also symlink /dev/picoprobe and /dev/rp2040 to the respective vendor and product ids.

Apply the above rules with:

sudo udevadm control --reload-rules
sudo udevadm trigger