GithubHelp home page GithubHelp logo

todbot / picotouch Goto Github PK

View Code? Open in Web Editor NEW
93.0 9.0 8.0 8.64 MB

Tiny capsense touch MIDI keyboard controller from a Raspberry Pi Pico

License: GNU General Public License v3.0

Python 68.72% C++ 31.28%
capsense midi midi-controller circuitpython pico raspberrypipico keyboard

picotouch's Introduction

picotouch

Tiny capsense touch USB MIDI keyboard from a Raspberry Pi Pico

PicoTouch on Tindie

If you're looking for the synthesizer version, that's at github.com/todbot/picotouch_synth

Demos

picotouch_smd_demo1.mp4

Also see videos in this Twitter thread : https://twitter.com/todbot/status/1382469033061093377

And check out picotouch videos on my Youtube channel

Materials needed

If you buy a black 'picotouch SMD' board from my Tindie store, the resistors are soldered for you, so you only need to solder the Pico.

If you're building one by hand, you will need:

How to solder the 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! (Youtube version of the below video)

picotouch_smd_solder.mp4

Firmware Installation

  • Install CircuitPython

  • 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 the CIRCUITPY/lib folder on the Pico.
  • 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!

Going further

There's other things you can do with the picotouch board.

Press

picotouch's People

Contributors

jepler avatar todbot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

picotouch's Issues

How the basic reading of individual electrode works

Hi there. I'm trying to understand how I could use your project as a starting point for getting capacitive proximity sensing done on a Pi Pico. If I want to bypass the PCB, what would be the minimum setup to connect a single electrode? I am looking at the touchio API, but I don't understand how this works with a single pin. I suppose this one GPIO pin that gets toggled between output (temporary switching from low to high) and input (then reading, "counting" the delay till it returns to low)? What does your circuit do exactly; it connects one GPIO pin to one electrode, and in parallel with 1 MOhms to GND or something like that? Thanks!

Stuck MIDI notes when changing octaves

If a note is played and held while the octave buttons are used, the note becomes "stuck" on until the user switches back to that octave and touches that same note again.

Personally I'd prefer switching octaves to send a note-off, but I'm sure there are other ways it could be handled (including not changing it at all).

CircuitPython over Arduino

Hi,
really interesting project.

I work on a footswitch controller with a remote board with buttons and led that fit my "musician" workflow on bitwig.
I like your use of capacitive button, how to you make it ?

I've seen that you've tried a program with arduino framework, why did you choose circuitPython over arduino ?
Is better or easier to dev ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.