Resources
-
The SPOKE board comes pre-installed with CircuitPython and the relevant code and libraries to work as a universal USB-MIDI device.
This means it should work straight away out of the box as a USB MIDI device. So simply plug it into your device, select CircuitPy, or Pico as the MIDI device, and start touching the pins!
On Apple devices it recognises the board as a keyboard for some reason, just close that message and you’ll be able to select the MIDI device.This board also works with WebMIDI, so websites like https://midi.city/ will work if you don’t have dedicated music software or apps.
-
In order to change what the SPOKE does, we need to edit the code on the raspberry pi pico.
-
The pads on the board are using capacitance in order to tell the board when to send messages to your device. We can add objects with crocodile clips to the board, but will likely need to reset the board to get it to work again. This is because we have changed the capacitance connected to the pin, so a new threshold for the hardware needs to be made. We can either use the reset button, or just unplug it and plug it back in.
Anything with capacitive potential can be clipped on to the pins. This can be pretty much anything metallic, or conductive inks which are rich in graphite, conductive threads, fruits, vegetables or even thick pencil drawings. You can experiment quite easily by just clipping things on and seeing if it works!
You can use crocodile clips, or solder on permanent wires, use crimps, or nuts and bolts. Anything that will keep still and make a secure conductive connection will work.
-
The SPOKE-MINI has the same functionality as the main SPOKE board.
However, you will need to be able to solder your own cables to the black-ringed connectors in order to create your own touch-sensing objects.
-
FAQ
-
The Raspberry Pi Pico is the brains of the whole thing. We are using the circuitpython coding language and specifically their touchio library to control everything on the board. The sensing we are using measures something called capacitance. This is the ability for an object to hold a charge. On our board, we make the Pico add some charge to a pin and then measure how quickly that pin ‘discharges’ back to the board. This measurement is happening very quickly, all the time, and we can control the speed of the discharge by adding a large resistor in the circuit. So we now have a constant amount of time that the pin is being charged and discharged, then charged again and discharged again. When we touch that sensor, we change how long the pin takes to discharge by adding extra material that can hold charge, and so the Pico will go “hey, something’s changed””. And THAT is the part where we tell our code to do stuff.
-
Anything that has capacitive potential.
Pretty much any metallic object, wire, pipe, keys, tools, cutlery, coins, nails, bolts, jewellery, swords, tinfoil etc.
Fruits and Vegetables
Conductive threads
Conductive inks
Thick pencil drawings (darker pencils work better as they’re more rich in graphite)
Copper tape
Plants
Liquids
Another fun thing you can do is measure capacitance THROUGH objects. If you were to have a large surface area of conductive material on one side of an object, it will be able to sense when you are close to the surface but not physically touching. So you could cover a thin piece of wood on one side with tin foil and try touching the wooden side to trigger the boards pin.
-
Yes you can. You will need to do a fresh install of the circuitpython environment. Head here and go through the steps to NUKE your board, followed by installing Circuitpython. When your board comes back as a Circuitpy device, you will need to grab the adafruitmidi and adafruithid libraries from the libraries bundle here. PLEASE NOTE, If you install version 9 of circuitpython you will need to use the library bundle for version 9.
After you have done this, you can head to the Github page and copy/paste any of the example code into the code.py file.