Tiny capsense touch MIDI keyboard from a Raspberry Pi Pico
picotouch_smd_demo1.mp4
picotouch_demo1.mp4
Also see videos in this Twitter thread : https://twitter.com/todbot/status/1382469033061093377
And check out picotouch videos on my Youtube channel
- 1 - picotouch PCB (order from OSHpark)
- 1 - Raspberry Pi Pico
- 23 - 1M ohm 0805 SMD resistors (Digikey cart with this & Pico)
It's not too bad! A pretty easy first-time SMD soldering project. Here's how to solder the Pico down. The technique is: line up the Pico solder one corner, solder the other, then finish all the rest. In the video you see I don't get it aligned perfectly straight (hard to see around the camera), but it still works great!
picotouch_smd_solder.mp4
-
Install CircuitPython
- Hold down BOOT button while plugging in Pico to get RPI-RP2 drive
- Download CircuitPython UF2 from https://circuitpython.org/board/raspberry_pi_pico/
- Drag UF2 to RPI-RP2 drive. CircuitPython is now installed!
-
Install CircuitPython libraries onto Pico
- If you have Python on your computer you can do:
pip3 install circup circup install adafruit_midi adafruit_debouncer adafruit_ticks
- Otherwise, download the CircuitPython Libraries Bundle at https://circuitpython.org/libraries
and copy over the
adafruit_midi
,adafruit_debouncer
, &adafruit_ticks
libraries to theCIRCUITPY/lib
folder on the Pico.
- If you have Python on your computer you can do:
-
Install picotouch
code.py
- Via commandline:
cp picotouch/circuitpython/picotouch/code.py /Volumes/CIRCUITPY/code.py
- Or you can drag-n-drop using your computer's GUI
- Note: this will delete the previous
code.py
on your Pico. Normally this is fine, but if it's not, be sure to save it if you want to keep it!
- Via commandline:
There's other things you can do with the picotouch board.
-
Use it as a MIDI slider bank
Install
picotouch_midislider/code.py
instead of the regular picotouch code.py.- youtube demo: midislider demo video
-
Use it as a HID keyboard macropad
- example code:
picotouch_macropad/code.py
It's early days, but it's a start at that idea
- example code: