Unlike boards like the Arduino, the Raspberry Pi doesn't have an Analogue-to-Digital (ADC) converter to convert analogue signals to digital. In this article we'll learn how to use an ADC integrated circuit chip with the RPi to read in multiple Potentiometers at once and control a RNBO patcher.
Things you'll need:
- 1 x MCP3008 IC
- 1+ x (breadboard friendly) Potentiometers*
- Breadboard
- Hook up wires
* linear taper :B
type potentiometers can be a little more versatile than audio taper (type A
) , but we'll learn a trick in RNBO for how to adapt to either.
We'll start by exporting the following patcher to the Raspberry Pi target:

RNBO Patcher
----------begin_max5_patcher----------
9731.3oc6ck9jaair+yd9q.k1OX6rxJDf2a8pT4vN6a12FaWwI6Wh2REkDjF
tVhTKI0bjTY9a+gKRw6KAoQyLLGdFS.B1nafF+5FcC7GW7hQy7uEGNB72.+F
3Eu3Ot3Euf8H5Cdg3u+hQabtc9ZmPV0F4DEEryczXdQd613uKZMNhUHT7zsN
Qyux0a0z.77HdiizlnLF.UrX+PWg9CDZhB3eKdGdyDc2VL+EFMJoH5mj8smu
Kxe4x3us6B1C8m8edCzbTxmNvYCNBGLE64LaMqwT1SrtdIzJ8Y+4EWP+iwsr
uO2eyFrWT72JBeKq2M56cBcmC96XObfSj60XvG8We21q78tqb9jRS7IDiMop
Xx9gdJ1zReunP2em0uX0k+3cdKvAqc8voECz55Q3FLZ7e5D4WFmScTobmTMw
Rm4XYyw9zU92DBhtBC1F3uEGD4hCA9KYO4me+2+Avucsu6b7+FPnQJuoerQS
9vLCC1OTRwFSwAPnQG6wGe2b1nh+EsKEVeeY1tYhQs0LYREBmnOFnow5k1rQ
IzdbYcOnxQu68oHmncxnegLLY8KE0Ipo+GS3XfgRc8RKo0I2fCCcVgKzIMmz
ccdlrowLwT5+Q2jzQro8z1pALUO0rzdJRh8TkdzSUgUJ35cOUUZ8TO7MjFrP
GcsuyBJS..6bGVEwzo.sPzNmYmVNKUWTWZCaqnKFE33Et0OnBMn10HRsUYcJ
nJega0l6htTcCI+XIg8VwuTVsJk+nIsg.y1EE4608A1btfPNiTJrPRAlvLGu
Uk1WPFmDLJULPf78B7AZdfu0guXDr27Bc1bcHhuriZEfSXiaZEOJCLkuKv0Y
cI3TLj1HgpVE6G1EDPdN389QXv62sYFNPFKoAsnbKUCzDiz+ikAgEpU6ZZP8
i9J2LDIfKIfGuUB8UnIaVhJUKwXfkUscNsi9J1FvtuPFzRmA4tLwUuWHChN5
qYq0itppUJoU+6bvi8xzADBACboCRAdzImgL7l.throWWCpZ8Z59Z1r9sXsa
E8VrD93b+eY7C6RYG5xicrvY988zdHgrln.OeeM85TGI440NAIZ4C7l4eeQA
M8ofuMxkzi.etFqp+7n32kZx6b+cdrF.UJWQsQmRHVPiaMUFqsKLDHzckGc8
oz+1Z2vnxmZTqo0zd603fPWBrD5a.mPDHuYA95I51iRSy3.AOVvjIqX5tFm5
UEs3KF4rcapG+hTuBUx7e7YMj03jG45wejQxiBvW6luYIsa.gyEQXa6B3xua
MhUeSaF+E3.uctI5uYiQDjDaz.UtGtU3FAVGO9sGsWXnAYCNM499.pHrZGA2
KOHC3Vs1e9WvKRMbmHk1h8b81FfCIqwQFpvI+jhWfW5raczzLnSPSJs7XecT
Zgk4KkWLZUf6BeOJMjQVPeb7WinsQmORKcegUCOmsk7xbudTQgb0eybBnhJw
pxn3Bi78Wmsnj2aMdYjn3stdd4XhQ9aqtv.2UWUy6NymT3l5ZaVIgS24wKcJ
YTQzzPmqyxribVuVnzHayeqim6FmHbjKWBfTRJjCg9pv4A9qWmo+xK45RJgL
IirlwMtKhth8gROVfTc2swigFkHkW3tBGFk8YQNqBy9jvn63L8TOZ2Lwr3oQ
3MaWS5EYq.Y9AQARH0gXhJFONaOegpQrcdZLmGcSqBHs55LOuN01EUciC88b
7liSWgDU3LSa.I0gvZ0AeKQOCPg7CmaI+ca8zuXVU0nTkT1R1HH2qdbejJ.t
jx.jZV1NSURuZmVNxI0RdoJfpyx0aoeJ1WJ9G4Ew3EgW5QlZR50WJpHbbpZ3
DrhoFLcKjtInb406vYJNS4b+f+gfOF3uMG4ka.5mvQD3RtQDKo.7FMWU45zH
TTIsianyZWmz3IR97zmGOzJM+jMLmvxcxowYOY6L+pbF5t+ywFxTRIKvDM5y
ISWVTRgwhWpDaugZ45f+qXF5HkbUXsyLLSkvnKE7o+UY7IBws14N+fE7kfUS
UZxJbB4uevFB+42wK5nTDVqTj0Xf8M9DvHoHsNFhD1DmR5R4EUUyDoKfGICV
2OSaH.WWTjesyEjBCDJ2wzL2izlwZxfW89jVCj3WJNmZx46XMtN9CZvV7BZG
px12SZm3ctJgAVqBW3iZEtg2sYl+5J0m9wjwPTFStpswwaAA5bvcoLUnLYCl
H8jgr4WCw.GO.s4n3kHCwICb1tKZziZI.ydyp3+uizW4KlE1vpYFUy+Iffb2
HGQvOwapCQ2KkbF8TAugfezfrAVqr4DJWfkHW9vRtqHKsm7jDj3gKzbtUZSn
3M0gMgx41GYSnfUKaDr15kMnZkMmP4RcSnJsm7HdB0QTngucquG1KRJlKO2Y
MlK2BAwMLwdg02M5YfowUKjdWLOtdojY0RovH71PYHhdq60tKvLL1bDbDa5H
F14.38QJ9aBYMO.y1cH5G8YsSM9TIrf7hMqpEahp9dIYgzae2G+428Ce2u7t
292.TD4To3Z+aHhs4DVO3khOG0frWRjqD4myhGGxOX+rQ5s7NL2BoFECxxP0
uCrwO.CBHbWZ2FPaWvR+frVtRD.LSltMh5G507fwjZ4J9QtUSkJSJLmpcxrF
vApUsLcmmajbDl79C08V78rXFehE8CTvcDCB0xEp+JUZzfvTuZgYjeebEW0B
0ev26ZbPTHYcMxrz048GGyUljR2+QoSe2LYzSY+I8K9fTdnj.II.Gx1f5FDa
JUK1VF3u4nI37JycpLvJTQmy7ncEErOskf+Hgc2KYnc0hvj5bnRtOPaHp5wa
txc9UI6TPNATH3F20qADUrzHLfBAE36AD6VKfFFwS.+BEaJq0lST0RpJyoit
yIOTnql76u5kKcCBidIQa7BvKoaB9Ke8yAMvUCU8mIRBJrDlfnoI0nFAKcrF
XjLfPLTftc8fcaYKrBnNjktlKwjwTUbXHQsCIdSiPsZ0PhZ1SVxb0EtRBu0m
Hs0wXeDenjQy7aVBEETnWlxDSJC4xlwOUCV34Qqkjuru7sWBl66EQCzGxrMg
SAHq4JdHAMra39olSdB5cfT9VixM9g8bCdnrOooIR0scP3HG4Xzx+3Se38LP
qjWg.EHLJv0aESJ4PlbQ9U5mZgSjCyvzcgXvr6XlxPcKW.8Ul6u.+r1lkeRv
gZRdZVW.DrsigZQMN2wmFS1.mEK3SxRrTgmamr.w3216AHva.+5mdG3aEknD
6um+8jG2d7oM5SW5rNrN+8HOgx2UizXxy7Ettza95cKnI8B3ibFdCSjxtsdW
Ttzajq21cQYB6xhhujXnrL.DM3728B2Ol01jbU7J+xBKlE6CZ5ri+ZlVyGYa
8jpaUzrUEYlYv2H9N.7zlW2WBt8QyU630WgWuMg73ybyDTqo19xhklD6+UTN
Mw+ogCT946iDIwvkLx6MPaMEaSnhsVlF+JGOR29ibivu7CY6IombxBd2o3ai
BblR0f5NaWT13vMcj7tWKblv2M1wsix1Ch0Rj0B28Pa2GZ4Y2Pr7OOkoJY9r
40Fk0roj.kJKUk2ujYKM8VmByRF41wgruWQ2lks7XThiFUiTfvF+u6vh3utz
PImUsPLKMPyxM3EU1fpKxqdd+rsCO32Skt3DB9dfthBQ7YVSXrCqOL14Idlo
JK+YsgsKH1EoaTkgwNpxvXWsVY.uSMsXazM4.uYNtBhzYgPlSBlxRAAdE.PE
EEdBHnKx.AHh8nrilAa8u4UnO+4wh0n9JxK9ZxehROstzjMq6Yw.OCSMzEYu
.OoyLOrjXPYHIFFRhggjXXHIFFRhggjXXHIFFRhggjXXHIFFRhggjXXHIFFR
hggjXXHIFFRhggjXXHIFFRhggjXXHIFFRhggjXXHIFFRhggjXXHIFFRhggjX
XHIFFRhggjXXHIFFRhggjXXHIFFRhggjXXHIFFRhggjXXHIFFRhgmZIwP2SR
ghQZdtHiGc9jgBe08DYB5fyLA9UhiloTxLAqVGZ5Y46eEOoDr5eNI7U2ehX6
A96H1QB6MaGYyt2rzPJSfPUjttltsARCAUGCD2TtMeIGTE+Ws84FPqUuHVyP
o0I5CkAMsH0zM4IqUNUhTGuE9aHFTdnBUUn4DnphNREpXAMMLMFCD2rM8WlB
s64jJd2ZZw1niRBVybhDEQfYfY89NCAovtbmnWyW4ECpx39CAVs9M3IN0aHD
NTFAS+G3AmB2ouHvqnQx+qmbBhF7GlfrugDUfz.HoyUgshqhd5xUIqvrZEAf
rLbT.cGJ1GBUDd2N5ccYHXA0tAx7QL+hFeeUDZOl.9bz9+8cDljnD5FjsHjs
CYX2H5ti4.t4J+0wswX.6VqcLf1Io6CBcuSFmo0bBAtKnQf2RWhULytKNRG1
ScuxkzLjlXLX8qyRIWxB7g.LoxTCM2+NiS87na7i6GjFwO5JZGiuMOTpmPwL
ZbxS3j3fkBAx2uFrJWgoqw2csi2aDat6+uRFexZPVLt3FJPVcP1feHNRfsFQ
cSYOhqJb.9TfoD9vI6do1sG9XPncqRuLTV4YQXE0KeL.UU0PV5lvSgOFRqBu
8lSGMsHpotA9L5zZB.McwU5uU.b3mkYEfk4AZEfDLBvt+90P91.j8RpNqvXY
.9+90W86fhdiozq.2FDGZzKpZUaUCEhz.oaqqBIxCt4.vbxiTLbypg5KQ1.Y
cauLYUPuFwoqTRW7fcl.Jy.lZtG6a1ZnVqmIUd7M5+wy2C+MY8n29rRprh26
ITkx844nr.EXAGwOx1b2XogSTq0twAELsHqpap3xk2uGW8bzsvrPXz1KecT9
XN6CcLG7rwBaYEE6IC5+5jz6WDjGO2x45ZRl5GPv7iK0q1UIDoV.lOJmY3LG
mXuHsUe8CIn+iFWfLt0inGfNDlEBf.1rSpwnqvdrXDL49O9v26tbazcFL04K
KqF07k1ND0HHBppaooXdH.pyrBAgPlVTqV2Vdf1YNMqMPG43GDQC4a2qwSu1
2cdlTxuanuz32XyFhKCcT4G8UoT8aLR9nI57F.J3ASKPPcSnIZlSrfieWw2a
IlJxZhodhHyRsIIl94lDSu+V37vHw77y3dnNZeip9j8hKSilDWHqyM4EpNOC
ndNJvb8Vfus2RLnFZBJ0LLkFEYlmchLyZDYZmShLJrlIq88+xts.E.DnBzAl
.K.T4.CYhx7uCT6fs1Vsmd3IU+bZwFpimri6aqSjTBuXE99dugubABBpMAYZ
oBUsLzrULTfDSQ0fxXCe6v7uLBEV2ZZwlnahCNy4zHH9FZ3DcfyLfFnIV5Hj
hMRSEYpXXqRltnKkPKBZzy4GeiPNb.v49lSkPXAlX++8GpT.BmngLfJZFHng
ptplAMdijiTPumSH38roEaitIIDLnSizX6UNg9A2SFV6A910DKXOfv9hKZLT
3FCoHGggVOmRH5XSK1Hc7.Yl2NmHwwekv9NzktMrlnqaXfLMQ1VD4foUGBMn
JkCpO7Qc2ecZQJoaBy+5INZ6PGnrDYnOwTQSCZoYYnqQV7WWFQaGRBQaGp+l
0bRi1tsNe4.EBZlj0ZTrrTMrMUUrPj+kv9sYQg2AHDfmMGw0DhVFADlurNBO
eXBvqhQeSl.7x0SJwh39rfcFlmh530X5tDCfO81pj1d3S234TPchEzwUrfd5
cLseBDKqwdqhtRFasH8HcXiiGMgiIJmCohnsNy+xShjEuF9manTx4T1o5Fc3
79Cbc2emelT8GeKYYHxRczEG9S.+2A23RjZCAQYY66JruY+mjT4K87Zjp5T5
coNot7jtiwiZ+A2csfZ5UJZ9kZRPyrJyJjeleoW6yKTEpizMNIANYrxprgdz
9k.TlzZS7Hc2oEQG20qPoubhrsXi6BW94lwAZhgNBMwRUyVCpaSL2vBofRhe
uCvDipyTNySrIFTNEoBgNqjxsvB6zT4m3sG3CR71C3b8ZwvOBSSeXZnhJkaW
jH7a7YQyB+WWtD7J5r3+FXqKYH5Xv0309ycit60OhuYaZvfts9quicl2sKPJ
iI+Ho8.+e36XGfEzFMlkRd1X9k+vSXtoHb+3KwHC1o3rRB7CrVLlWV3DT5oO
mcaf+JxmUdb1OxaPAm8o7UWkyxHbPj+t4WIC912QaMvuvZtmvLM1J.yvdR4d
r5izFC78zD36UJT6EfHyGmGjhRxoIFZ0oDkLiziehHcnLd5I6C+LmSzlOact
X0ra5f7MzStNI3nEE1YiWlg6ugNVeL.Vnj2.mvlJLgTJpXoVPaDsbxOgONmq
De.37ah6QUZ7mvy6DxubkK8I4ovDoF1q3MPRgyrsr4vhzbxSZX18xaA8GXsz
8tSF3s8pyzC.sRuWjEVYu5FGFPR4KWx.mqum.Z0AgS5jbJXT8jdqF5j74uIv
W5KusEPVj+37RWktSmie8c09ig6VS6tmd1kZ1EO8vQrk5vt7WfdkVkrtXrhJ
0NmyBMrP5F55P8SgyYSCxoiI+49d4zhtSra9jMEC6D4ZVmufoKmSuvzo2v8G
X32pAsmXagLUQp5PMMSMcUBxNEKID+sZs+htusx7.7VrSThTmlDwsWnKXbSK
PacThKZmiq79Zmf8monzj4p7X.BvJC7sLPQW46cGPslPyRuUtr2TaR5.P0PU
aLP0tagf5XwXiwMLFQ8rIVgDIVsDrP8XcSGobBuSvO7.kXC8vyQBbyMEODdN
GuD0avWmx5DeqjSEnGUaHjP8P0LJdhqxyERIvuR2bO5GDwysWQp8JAlSl16o
f5p5tFqW31ka+iZzGwaommNVjh6g6UAoDah6asy+4lsbHlqG+ROTdC0RZwm.
7nNdkSTMqorqRgyQNRCGtlIv1kgm5+XhM.hKjy8GnGSdNbAE+F3n5uAuC4q0
wnEobdl9NViB1ROLYX1gIbGRXrDPbUCk95QHD7Jeu02QO8Ybo2wWf3w.tySI
vBe8yfKNkltgZhbiVKk8v5WnMTwYEO2NBmV3+d+nOck+MW58SN2RrWdKwzet
S8f0b+k5JGg.0Hd.swntdldIVNZfCmxlm3iULYb+vdkOQsD+rT9FGZBF3DkV
MCGwO6vIN4ZrawDvKCc2rcM9kDETAfWRAe7xWyu9Ic1E4uwIxctyZhlKxe3S
YOwsCced+bjq2b+Mz6TMl+soP6Bm.9DQ3PelKKN8e4tPbfn4ottKt4CugsyD
z8Tj8xeNhqMU7gHJTY2VkDy3B3AxO6puT7024Q8PvhIO12OYNym5rLJW5v1F
YQaUON982fgR4hYK4NWaB3WCEiMhuODE25ZSFlwmfCdNlX5srhQi25CDs38h
7cIDrhdXQRWti4wE.8VnF3vNwwumJObWfEWZ67aU3EtT+.Slc+J5DL5Ap9ZB
+va9cudLcS+Iys2h8BorHdMhKdLYtH4KPdbxDSe1AwNe54qm73ONOly8mcJV
vgM6j2h03lmfURAc5Oi2t1YNO6UnsISQcVDPiAXBj06XYfFf5f7Ef+BbL3uf
.3n4SRtFpC3sjPFSaBm4y8CVPeq3y79m0StOxYhUOOL6gkeWC99xtusNF68e
otJq06Sdou84w4ue7lb0Auz2.u+3bh62qwMkzdGUhWUxDu5oj30jLwqcJIdc
IS75xg3qMeCKX3dlXbgZiYc4bXex3PEUaMcKCcySQPsjCXXL5iKJhNH2Rmk6
fqLcqhf9y1qyYEZAqHZH9JJDkBcL4FGkO3DxZXRZtD0KBBgTwc5e61TEU9d8
uw4+vE6V47fuG+wF4.qesaYeJprX9UtDlZjHSqFcqQ1IvinBx.uct4fLjEkP
BiffgYNt7AxohRCHKTLLQrakBnh3TyI+0gvKFMa058yvxMv2ifLg5CcuHl80
Eph.z5zkjwCgt+NGNFZRk0YofvqrBIx4+IYJWld1p.2E9dTZpfrjVT7W+2.h
CiX878SVs7b1VQiHLHp5Jv2d3YNATwr.cIJ6Ebp+5rECylOvKiDUYqqmWIL7
H+s0Wg.2UW0PaLymTgMM8cXkFRlXxqwTxHqnogNWWT3DQLUSD1QE+T2534tg
.YNxkK0PJJYuGXonvuJbNUURA9AuzqqnzEjYSyw23tHIEpyVJ40b2FOlLahW
mZ0lrW.sNqBK9zvn6VWx8J6dielFgIJ3bhJoRj4ijk6BIH+CEUNd7aVdXrCp
Kn7iwDwMf0LargUn7lhQrrgBlqW9ScgZRX6ph.LngI6LtUCxO.NKML.qHT.K
TkpNeTKFqWJ4Jrr38pH6oEw8U0w9UIMG0bM5ADb9pUnd0aBdQ6vnGy9kYsSi
65P8FR2nwzMXPciFUWug0MZbcyl6IFjWwEKQQWivWsTb4CIYwDYlRHF3SvN.
Jd8F8DSVHb1Qy753iaZYxn+Nv+3Se38.dPSS8mH8p1yaU7dkR+U5mkLlvg4w
JpXY1cLuNQw3FPek4T7wO0EOUpqXuqDKoNqclwSzxQ+jfKVVCk6ddWsvPgKp
enQFOaUfWVkqVJevSMtboelkVHH.YWzKLOfyUFybiISYO.VM2oB6Vqw10Rre
snMr48oUNSXKo3rFJUREpxR1RRQCDzFpP9OqBejRrnMq137CBZ1x1xVyNk56
BL1xNd6q9Kmw5SWuokCznZqPqxRTBC9hplKTmqUjJbNV5kdOMAOHPj0OXfcV
1bbc5banL0aOvtxuYgxBuCUK7N0Fkd7d6zxaqtKA4M2YfTjtOZZ0K7TZV3oZ
ZwOtVM3GCxUJ6p5tXqnHA9TFws3tgd.x8.j6AH2CPteJB4t0XpKrKvxDRM0+
wz.6RnvMErZs9Aqtzs2sG.tyX+QC3wKbPXlCPdYkW3pQ5.fj+FSUcSMUaK0m
XPxIrkokCEo6H5nr3yC3b5GNbNa1N2nqn0d3bYtF1GfyM.ma.N2.btA3bCv4
NMv4zGfyM.mS.mqHTjpurdefgyU9xP6wy8de.EADcL+NZVjHxhu2PuRNBAW4
rkFv24x9EWOvO+9u+C4ay0td34963rc0CEhnFO3dTU3w3iNjCXrAW9oTOFwG
d7yeE8ZpDIEuYqjDjBZlR0W1YtpIKxEQMNO4qJ4JqrmV87UmC9vNRBwUhvjG
w3YjpjBqDn8iBqhJd3uzFLfvZWwlevwAX3O.Pvq3q2mOcaNI1GcrQ0U0oJSo
VG0LhbxxnqVQVwV1nx+EB7Zw0Gi+xjzhIDrfl02jQkhDxbeUDSgl.9bz9+8c
NzLgjC.ilrVgz+B.6xxoJGvMW4uNtMFCXm5ciATLezjzhhzablVyID3tfPEt
KcIKyQrAfCLNE08JWRyPZhwf0uNKkbIKcoCvr7D0ye+6LN0yitIFtH4wy7in
YwIgHcIcBJ0SnXFMN4YrY64OTeNpVGrcWzwv9.VCSgIQ.8Kfgdpf6KqnGoZ2
mbjzpd.gHhPEUs1wTUcxhf3frjABUU0PV5lv1XJixQvTlz5p6tEKB6UrObfX
QmE3vTNbbXbnWPKC4hCyb.G1.NrAbXC3vFvgMfCa.G1.NrxvgYd39M97.G1L
ogCCJY+goOfCSnwfpe8YLJr7m6jCXvFvfMfAa.CVZ0CmH8oC3uNSveo2.9K0
GG3uVfW6bGPWZXvzQccWjqGClxAt+wr92zxapt64RVqclD5rpGdnypy24eMq
ND5rpCgN6PnyND5rCgN6PnyND5rm7PmUcHzYGBc13PmU8vgfe9jITnCGNmlB
CNGRoCv4PCv4FfyM.ma.N2.btA3bmb3bnA3bCv4hgy0zQUj1iE3bxXOsgpLe
yAMfxcOsgC6o8vdZOrm1C6o8vdZOrm1C6o8vdZmdOsgGNBryA7WeiDxsiX7W
H19YirmnKE7Wpce6r65HAgdEktNF3alVJA18MI+aNO7n58Mko0JsM03EmsTZ
psxipZOR7npzAXKtaDq1Ze3w0wPJmdXKL4ZSHsEGSBMi0dvK2Cd4dvK2Cd4d
vK2OHd4tzKhRorH24qKsuuIeZeeyN099CvxIUSMMaaBX6mdN0VbvEoIkiq0y
gitHxP+6O73DVQgeA6wOtVgR8zlx93acEQJKVuNryCJnLvokRmceLASXbNbF
jIoieLQrH2ECsaw.BK4b5iIgynuyhCeruF.QlSj0bXK9AFGTRaMk44qqQ95o
kRfceV6WeFLHvYQXv8.cftB63CjLjPuA2kgZuZcCVpD.UU6rd8wML7n9CRP8
Fkgrt8zRaotKGYM14vRxN2b+AK63JfQpME1f0H4ZgpX8CTULsqNszFpGKdRY
aO7RuMQ9KkzxmB+TqJq3DPqyRqGBmXtwcg60wFiJSWY9SW91KAu2OBCdeUtM
5wss9sxwkkuWrECQfcTmlHaQvmHlUOivCAKCvDs.dyuazitHwnUb4VeDOEN2
YszGo+IRi5.BmuNkCwXx8G1Q7vScDFTz0iNaON75uLay.uNa8CvKkMu9mwKw
ADsFzfwgnFm5HWdf1P8i6KoJVd4dMK.2PvJ2qwdOckDMs+O68oqgcalcvwJH
00bcWrXsPbcCKjonhpktAgQ.lpOvB7p.LlJr1POL4WLHsHRKkVHsnC2ks35G
Sl7D4CHP.HypHSieIW9E4OHa.izzZivgFyxGMYyq9e+8WO5IZDr1xEWX5NhM
8Slaj3mXJkXapyy2sUu0ak6R20Q7M6Slxfej0pfcd7UD.LqACG87KJFJn7Ad
hhh181f2zT0C0h69sEoiaeWQXH6AdZa1JCWOQg36gISZbYjCHvcKw2WY264R
qPV23UZU5RT6ZoYanCsTLenhZ28JEo6hxE0rvU22BZJ2YZo9xq6NLkwoe3cX
J6BkpdOlp057jWkersa1AGdy1jh3+u1KOpCzY2rN5zRaotK73bsGdoG0x.Wu
CV7wc3sHvb6PXY2VYG7.kc7t4zRaptK7DLsZjdY5KraNsBKTjUnx3oz5UunM
zeWv7XtmHpE.EYzKHqV354DQTqlptF751qAc8k9r5.8AeHHPyNPfkyrSBXN3
YKgSOXDqixUNoTtQGnb53G3IdHgA+a1NNq8CvXV8Nx.O0zmVGnO8G.5SsKSc
fO.DHpKTHB8.LGg8QaMOT6gfGR9ln1xBgOPDnZa4fVOPDXq0Cp9.QfsdLH5A
f.gcAd1CwzXXOf+bZIPitpI7jSgcY0X54c7omBgcbT3Im.U5BKz7gfB6fpPy
yIr1cQzqclyXU6u4WYsGW3W9oyVM2eM2qj+FPYhhJT0DoqYq.sMTrHerIvj+
poklJj9HDDZZnYpnaYgT0UGS8RX1lOSiZir0fnwY9MUc5uVxahWioI9RlFPU
2TWSwDYXX.MrXuuNTW2P21Fpo.MLYOxx.ZZYXZgL0f5Zlkz1NymWno0TUT0f
PKMnpMRm0zJFHUEcUUH4GPCdSiPJ5JVVPUKcqRZYZt5sEmokQ5VppVJFp155
pJlhNsFhP4VJHUKUMd+.ZCs0rszzTMTzJoomsZo650rldZhSx4eopp1QQjV3
C.O5eATBuzPUH2UTzz0XsmhpkosYCMii2J9degLUx3I6L0ZafOMAJES0HxI6
JaucQ9qBbV3JxMKRidQw4aI+1d0EIJAx46x8JGZvmk4NCAR6+0pO+.J8DjPg
ELtV7ao8xO7.pxmwUdlATZn1lRwWygXa4gWaZcmEOa.xp+stHQnSoJYNeaW8
dzV69yVyY.Ps6Ka06Ias6GaUA0Yc46e1cqor77uNNLpRNbM41esAffL3zviO
mt1scs571OG2tz70ue76lxQ+Ga70hAuQNdWw7uueLtiSN2+HkcW57zpxo9Fy
m9Zyk9zPSyHZqHVOxJcqNu4qOm4OnEApOW4KOHPpHPDxiEu5biu97hu1bhug
7gux3Qn47fugbfOs7r4nO3OtnTMhYXukku6E+Jkmm6YPuT81b1X5seBfzA6M
jNM6NgnC9rCQGb.Q2.htADcCH5FPz87EQGb.Q2SADcvZPzg5GhtDITwvTaOH
uxbueJndMGVZUsaS41SwZQZ1UhvpsDQg5UbyZdPHLX0DF7nPXZskvfGQwlV9
sDpNh.djHBUk1N34XxJn63kVKHBiiLMn1BZP+HSCn1HLrNxDQaFWhLOxDQqF
VhNhDApsp2UOlDgVWXEniEUzVAB7nxKPsjJNlyOPvygQEJcYTwwZ0CXqmfnb
D4Ev1hyv9XSDsZ47iJUX11ooVmZvfsmzPmZ3fEC9tVFSVxkJzaKUbLgAAaM1
3iIPHXaWtQ6XRDsc0FzwTSOrsK2.Op5XU5vhdkubydCvOdwkV+hIsiU7ncbh
EsiTbn0hXP6nF+YG2XOSBwcVywbV6h2rVEqYwNJiu+PWlZK5DyRGc4GheJ06
iYeIteQa5sxqSnRuvteKl16nzQQNqx4xurdBrFkOs3Cg5wGJOWf5bPp6Km6L
+J7dFQ1JQE.gNWm168iB8b1FJbMbZlGQrgSn8evT6Sw0KVxJbBa5NvnMtd9A
oJHYvx9SDTQyj9PQf.4wckK6EX8iDu.W9YnvnvcyRJ3WILwkDU6ImQUivalw
8mMLo945hw7k8dnMKYsuZwhfcAADQvzzMThCoGQJIvMWt.mZ4klXjUvKqicl
gityKxkLCH8gzUZF526D5NG72wdTeo6dMF7Q+02s8Jeu6xrw8wDHk+mtfz75
zOOgKmllJvnSwqy6PbJaI2wQWlMiultG+kKTioHEDQuHDMENYiysThovKQfB
bE6kt+qeq+b9EG4W+SN2Br95X4RXwWxOjeLVjI.oEUmVAgG8sVrXltM1VUyR
yX9LxxayTzvKTVN2T0XIwJjRir1X7C+YtIqzIpKnaP.ddTI6LQ77T+sQtab+
8DnIi9Px9ILhsmaz64yoDtUtcsaztcBxd9Rik1Z5ydyBKMLABF14Mr+5REnk
s0RUaMSiQkQaIDUMjG6DqweYw4T6oMWuqcCcyuohopvZeuUIR6LJHRWqM9K1
P2myLyM2WLQVED0bqDOXWMmP4h3+TfsK6Fqv5UEvY9GWT8Foj380ZR3DAzRw
mcbu9NnF9NpR56.a36.QR5CozzGBJgOjQK9PnTVl16OjdK9PZR36fLNQenrd
9n98.6v9PsXvssj9NMNTPReGXK9NYGZy0E4rcaJTBrOwnMN+GtIKViuHFJA8
uZv9qAXpNWd8YpbG4DL+J2HxZM6B3pHu0fedFMhpUMvamqvmTrEA1u08gacl
KtIa8uczE+4E++rO0wdC
-----------end_max5_patcher-----------
To control the cutoff
and resonance
parameters of this patcher with our two potentiometers, we'll write a quick python script on the Raspberry Pi to use alongside the rnbo runner.
ssh in, or connect up a keyboard and monitor. We'll use a library that should already be on your RPi image called gpiozero
and another for communicating with the runner via OSC. You can use any OSC library you like, this example will use pyliblo3
. We've used this library before - so if you've done this in a previous tutorial - you can skip this step.
To install pyliblo3
run the following two commands from the terminal on your RPi.
$ sudo apt install liblo-dev
$ pip install pyliblo3
Now create a file called RNBOPi_2Pots.py
by using nano
or any other text editor you prefer.
$ nano RNBOPi_2Pots.py
Paste in the following script, then save the file.
from gpiozero import MCP3008
import liblo as OSC
import sys
# send all messages to port 1234 on the local machine
try:
target = OSC.Address(1234)
except OSC.AddressError as err:
print(err)
sys.exit()
# start the transport via OSC
OSC.send(target, "/rnbo/jack/transport/rolling", 1)
# read from last two channels
potA = MCP3008(channel=6)
potB = MCP3008(channel=7)
while True:
print("Pot A", potA.value, "Pot B", potB.value)
OSC.send(target, "/rnbo/inst/0/params/cutoff/normalized", potA.value)
OSC.send(target, "/rnbo/inst/0/params/resonance/normalized", potB.value)
RNBOPi_2Pots.py
Now sudo poweroff
the RPi, and disconnect the power. Let's create our circuit:


3.3v
(red) from the RPi connects to the+V
bus railGND
(black) from the RPi connects to the ground bus railVdd
(red) from the MCP3008 to the+V
bus railVref
(red) from the MCP3008 to the+V
bus railAGND
(black) from the MCP3008 to the ground bus railCLK
(purple) from the MCP3008 to RPiSPI SCLK
Dout
(blue) from the MCP3008 to RPiSPI MISO
Din
(yellow) from the MCP3008 RPiSPI MOSI
CS/SHDN
(orange) from the MCP3008 to RPiSPI CE0
DGND
(black) from the MCP3008 to ground bus railCH6
(white) from MCP3008 to wiper (centre pin)potA
CH7
(pink) from MCP3008 to wiper (centre pin)potB
GND
(left pin) fromPotA
&PotB
to ground bus rail+Vcc
(right pin) fromPotA
&PotB
to+V
bus rail
The readings from the MCP3008 channels are already normalized - so we can use these directly to control the each parameter via their normalized
osc addresses. If you take a look in the patcher, you will see there is some logarithmic scaling of this via @fromnormalized
which makes it feel more natural for the cutoff
parameter. If you're using audio taper potentiometers (type A
) then you should remove this scaling (the pot's taper is doing it for you).
Switch the Pi back on and at the terminal run the script:
$ python RNBOPi_LDR.py
Now you should be able to wiggle some knobs and do some filter sweeps!
Going further
As you can see, the MCP3008 has a total of eight channels you can use to read any analogue signal into the Raspberry Pi. You're not limited to only using Potentiometers here, there's a whole world of analogue signals you can mix and match. There's also plenty of other ADC chips you can explore with greater resolution and with greater or fewer channels.
Happy patching!