Mijn eigen zelfgebouwde modulaire midi controller

Timmio

Beats & Buttons
Lid sinds
23 mei 2007
Berichten
273
Locatie
Breda
1675107655759.png


Hier is het eigenlijk mee begonnen, tenminste om eens echt zelf aan de slag te gaan met wat serieuze midi controller te ontwerpen, uitproberen, maken, opnieuw te bedenken etc. Was al lange tijd met Arduino gerelateerde projecten aan het knutselen, maar dat bleef allemaal half half. Na de nodige inspiratie op Youtube (zie onderaan deze post, volgt nog wel meer) en de wens om eigenlijk een goede midi controller te hebben voor m'n Akai FORCE, aan de slag gegaan met het zelf bedenken.

De controller hierboven was er eentje die je kan ontwerpen via de site van Yaeltex. Mooie controllers, tikje prijzig (niet duur, maar gewoon veel geld), ietwat gelimiteerd qua op bouw ondanks dat je echt enorm los kan (en de software er ook top uit ziet). Dus zelf gaan kijken wat ik kon doen, aangezien ik een 3D printer heb (al is m'n grote alweer kapot, k# ding), in mindere mate een soort coding skills voor Arduino (if then lukt nog net), electronica ervaring (om dingen uit elkaar te halen, in elkaar is altijd wat minder), beetje paint skills om wat te tekenen (ik kan nog niet wennen aan Photoshop, ook veels te duur voor thuisgebruik), kan prima een simpel 3D model ontwerpen (okee vraag niet meer dan een plat ding, maar okee), PCB 'tjes ontwerpen lukt sinds kort ook en de eerste geleverde en getesten zijn niet meteen doorgefikt.. oja en bestel skills online waren altijd al goed dus onderdelen en cases vliegen om m'n oren. Oja geld en tijd heb ik niet, maarja wie wel..

Anyway, next step was dus een eigen versie van de controller hierboven:
1675108591332.png


Gemaakt met Tinkercad overigens (gratis online tool). Meteen probleem 1, dit ding was veels te groot voor m'n eigen 3D printer. Dus als een kip zonder kop online besteld bij een 3D print toko ergens in een ander land die perfect geleverd werd. Overigens had ik nog wel eerst het eea getest, zelf geprint en gebouwd, paar voorbeeldjes:
1675108731942.png
1675108754584.png
1675108795495.png
1675108812507.png
1675108879690.png
1675108913772.png
1675109015524.png


Maar goed dus het was tijd voor de bestelling van de grote. Bleek er 1 klein dingetje te zijn die ik toch wel had getest, maar gek genoeg niet goed had aangepast in de versie die ik bestelde.. hij was te dik... Oftewel faders werden te kort en potmeters staken niet goed uit. Oerdom, en we praten over 1 a 2 mm.. Maar goed volhouden, ontwerp aangepast. direct ontwerp iets verkleind omdat het wel compactor kon, en opnieuw besteld. Bam dit is het resultaat:

1675109145758.png


Prachtig en best goed gelukt volgens ontwerp. 1 klein probleem.... het aansluiten van zoveel controllers op mijn midi board (ik was al zo slim dat dit geen Arduino werd, maar een prachtig board van Shantea Controls (top gast, mooie boards, zie Shantea Controls &#8226 Easy Way To Build MIDI controllers). Dus het materiaal was het probleem niet, maar wel de oneindige verbindingen om te solderen, chaos van kabels, etc en risico op veels te veel kapotte en slechte verbindingen. Dit uit ervaring met eerdere veel kleinere controllers.. Crap, ziet er leuk uit, de case was nog wel gelukt, maar een niet werkende doos in huis hoef ik niet (okee ik laat grappen verder even achterwege).

Volgende deel van de startpost volgt hieronder... (max bijlagen, en ik moet toch echt ff de lap tekst saven voordat alles weg is)
 
En door!!

Blijkbaar houd ik niet van opgeven. Ultieme oplossing is dus PCB's, maken, ontwerpen etc, nooit gedaan maar moet lukken toch.. Gelukkig dat ging dus wel, dus inmiddels een eerste PCB ontwerpen voor het projectje hieronder, dat begon met een doosje met veel kabels, krap en rare waardes van m'n controllers (multiplexer deed vaag, buttons deden het prima). Maar uiteraard was ik ook daar niet zomaar...

Stap naar de PCB"s was eerst aan de slag met zelf prutsen met pcb boards, oftewel ontwerpje maken, volgens ipv alles erin alles mbv een pcb'tje vastmaken ipv kabelbende en door.

1675109547508.png
1675109655961.png
1675109613580.png
1675109710949.png
1675109870191.png
1675109886917.png


Nou prachtig proces to het komen van design naar een controller pcb'tjes, keurige mooie frontplate sticker achtig ding erop. Arduino plus multiplexer (mux) ivm de nodige analog controllertjes erop, en klaar is kees.. not.. De kabelbende die er alsnog kwam ga ik je (noodgedwongen, controller ligt al uit elkaar) besparen. Maar toen alles in elkaar zat leek ik goed te werken. Mooie aansluiting aan de achterkant waar je de usb zo in de Arduino kon prikken. En ja hoor midi kwam binnen, maar WTF, hoezo krijg ik opeens een soort logaritmische waardes uit m'n pots.. Nee sorry het was niet de oerdomme actie om verkeerde pots te kopen, zou logisch klinken, nee ik blijk gewoon een brakke mux te hebben, na doormeten bleek 1 kanaal zowieso niks te doen en de rest leek wel alsof de voltages met elkaar een soort Ierse dans uitoefenden, maar dan niet in lijn... Dus....

Misschien even alvast 1 tip in dit hele verhaal: meten meten meten (oud bekend verhaal, maar ook hier, meten van je ontwerpen, meten van de grootte van je ruimtes in je case, doormeten van je electronica (check je mux en Arduino vooraf), of... soldeer ze niet gewoon keihard vast aan de printplaat (leuk die permanente breadboards trouwens, maar ze zijn wel verrekte permanent). Nu kon de Mux dus nevernooit meer fatsoenlijk los (ik kon er al niet eens meer normaal bij aangezien alles in de case gepropt zat met veels te veel kabels.

Zoals ik al zei, opgeven is geen optie, en door! Oftewel nu is het dus echt tijd voor de ultieme oplossen, hoop ik. En jaja daar is hij dan, na zwoegen op diverse tools, gek genoeg slechte enkele Youtube videos en ff doorknallen was de eerste PCB daar! Herken je erin wat je hierboven aan controller zag?

1675110349406.png


Wacht..wacht.. dus gewoon een echte serieuze PCB ontwerpen (uiteindelijk via EasyEDA, prima tool), damn ik kan gewoon zelf Gerber files maken! Op naar JLCPCB en bestellen maar! Ja en dat ging goed, eindelijk eens geen gekke dingen, bestellen was prima , levering keurig zoals beloofd en binnen met die dingen.. Oh wacht, had ik al vermeld dat je moet meten..meten...meten

Aan m'n pcb lag het niet, die maten waren perfect (bizar perfect zelfs, kan het nog steeds niet begrijpen dat dit zo goed gelukt is. Oja en wacht, met de onderdelen erop, karweitje van nog geen 10 minuten en alleen paar kabels voor de buttons, werkte hij perfect met de testsoftware! BAM!), maar probleempje was de case, die was blijkbaar toch iets minder strak ontworpen en paste ivm 3 mm verschil per afstand tussen de pots dus niet.. Maar goed kleine uitdaging, nieuwe tekening voor de boorgaten, nieuwe case, en BAM ja hoor!

1675110585811.png
1675110635830.png
1675110690429.png


Werkt als een trein. Zitten nog wel wat dingetjes hier en daar (pullups, i know..) maar hij zit mooi in de case, kan goed bij de aansluiting, keurige pots (kan ook met caps, maar dat vond ik lelijk). Damn een werkende controller, een echt werkende controller...

Natuurlijk zijn we er nog niet, dit is nog niet de ultieme controller, maar alle begin was moeilijk, en ik denk dat ik inmiddels wel een stukje voorbij het begin ben..

Volgende deel op naar de status van vandaag!
 
Zoals je al zag zaten de buttons niet in een PCB. Dus had te maken met verschil in afstand tot de pcb. Dus die had ik express nog even weggelaten, maar wel gezorgd voor pin verbindingen onderaan de pcb zodat je ze daar mooi kon aansluiten, inc ground.

Even een zijstapje naar hoe zo'n ontwerpfase nou liep (componenten meten (ja die wel..), cases opmeten, etc). Voorbeeld van 1 van de ontwerp schetsen in Tinkercad, met oa het ontwerp van die controller van eerder, en ook de nieuwere die ik zo hieronder laat zien.
1675110980672.png


Tussen al het PCB geweld zat nog een poging tot een grote controller, wat moet je met je tijd tegenwoordig he, doorsolderen met die handel. En daar kwam deze controller uit
1675111456310.png
1675111081820.png
1675111217964.png
1675111106849.png


Eerst een kleintje gemaakt, die deed het verder prima, werkt perfect. Maar je raadt het al bij de grote die op die kleine gebaseerd was, met mijn soldeerskills voor losse draadjes, de enorme krappe case (je ziet nog niet eens alle kabels aangesloten op een Arduino Teensy (normaal gebruik ik een Arduino Micro Pro trouwens), prachtig ding eigenlijk, maar weer problemen met m'n MUX (of ik sloop die dingen steeds, of ze houden niet van me, of ik moet ze gewoon niet zo los gaan zitten solderen), maar de controllers via de MUX waren weer een bende (geen idee nog waarom, daar vermoedelijk alleen wat slechte verbindingen), knoppen had ik natuurlijk pech mee (niet getest en ondanks dat ze hetzelfde leken zat er verschil tussen blauw en zwart, en zelfs enkele zwarte (tja het blijft deel Chinese bende..). Maar goed dit begint al te neigen naar groot formaat controller. Qua design (ontwerpen qua knoppen enzo),

Overigens zag soms zo het geweld eruit..
1675111175487.png


En al het bovenstaande heeft inmiddels geleid tot een bestelling van een nieuwe versie van de eerder getoonde PCB. Meteen op basis van max aantal controllers voor deze MUX, maar niet voor de Arduino, en daar komt het mooi (en ja eindelijk het stukje modulair!!); je kan meerdere pcb's gebruiken en op slechts eentje een Arduino solderen en de rest via eenvoudige stekkertjes (gestandaardiseerde dingen, iets met JSTXHXJSJHXIDJ enzo) kan je dan de VCC/GND verbindingen, de basis pins voor de MUX (S0/S1/S2/S3) die dus overal hetzelfde zijn (handig in je code!) en een signaal kabel die op basis van of het analoge controls zijn of digitale (toekomstig pcb in de planning ;)), kan je zo een volgende pcb met controls aansluiten. Nog niet getest, maar vermoed dat je er aardig wat aan elkaar kan knopen (genoeg pins beschikbaar voor het signaal, maar weet niet precies hoever de Arduino het nog trekt).

1675111731201.png
1675111774667.png


En daarnaast tevens (herken je hem?) , de controller die ik eerder bouwde, maar faalde ivm de chaos in de case. Dit keer met meerdere mux'en (analoog en digitaal), gebruik makend van vergelijkbare aanpak als de module hierboven, en ruimte voor de buttons door de PCB heen inc mogelijkheid om deze netjes via weerstanden/pull-up aan te sluiten (minder chaos in floating waardes zeg maar, niet boeiend in dit verhaal, maar het kan iig opgelost worden in dit board). Aangezien de layout (5 kanaals drumkit + fx, 4 kanaals synths + fx en enkele losse controls) me goed beviel, omgezet in een PCB en ik kan niet wachten om deze werkend in m'n handen te hebben. Deze is niet modulair overigens ;)

1675112054339.png
1675112094688.png


Natuurlijk zie je vast dat ik geen pro ben. Routes op de PCB zijn via de auto route gaan (waarom ook niet, ik ga niet een pcb expert worden, als het maar werkt voor mijn gepruts), plaatsing kan vast slimmer van de onderdelen, controllers, ik wil in andere versies nog gebruik gaan maken van IC's ipv die grote MUX (is voor bv buttons prima te doen, voor analog vind ik deze mux erg fijn, als ik hem niet sloop dus..). En zo vast nog een ton aan shit hoe het beter kan. Maar ik geloof niet dat ik als doel heb de perfecte controller technisch gezien, maar functioneel graag wel in de buurt wil komen. Daarnaast zit er natuurlijk nog flink wat programmeer werk achter, dat was nauwelijks een issue eigenlijk. Natuurlijk zit je wel vast aan een midi configuratie met deze setup, maar in de toekomst ga ik daar (met oa programmeerbare geheugen gaan gebruiken en een lcd achtige oplosssing) ook een configureerbare variant van maken, maar dat zal vermoedelijk allemaal voor de modulaire variant worden. Dat je met een aantal PCB's het eea aan en elkaar kan knopen. Programmeren daarvoor zal ik nog wel een uitdaging worden, maar volgens mij heb ik al wat uitdagingen doorstaan, dus laat maar komen ;)

Doel tot de grotere controller zal vooralsnog dus zijn door gebruik van de losse modules, maar wie weet waar dit nog heen leidt. Ik zal deze thread bij een volgende uitdaging of hopelijk mooi resultaat verder voorzien van nieuwe posts.

Mocht je vragen hebben, laat maar weten. Mocht je een pcb'tje willen hebben dan kan ik wellicht even kijken of ik 1 of enkele naar je kan opsturen voor een klein prijsje (onderdelen wellicht ook, maar daarvoor moeten we maar even goed kijken), mocht je een andere leuke uitdaging hebben (bepaalde wens tot (midi) controls in een pedal formaat case, of wat dan ook), laat me zeker weten, altijd ruimte voor projects-on-the-side (naja altijd, geen idee waar de tijd en geld vandaan komt eigenlijk, maarja), Leuk om van te leren, al kan er af en toe wat fout gaan, maar ach dan maken we toch gewoon weer een nieuwe versie...
 
Mooi verhaal! je weet dat een Arduino nano op veel pins ingebouwde pullups heeft die je in code kan activeren?
Thanks! En yes, zeker, die control die direct op de Arduino zitten gaan inderdaad via een pullup in de Arduino, alleen zodra ze via een mux gaan kan dat niet meer, een pullup voor de mux werkt niet met dan de buttons die aan de mux hangen. Ik noemde volgens mij de pullup op het verkeerde moment in m'n verhaal, want daar konden de buttons nog wel netjes via een pullup in de code :)
 
Ik kan zo te zien de startpost niet meer verrijken met links naar de vervolgposts, dat is wel jammer, want dan is het verhaal beter te volgen. Zeker als er meerdere posts van mij (en hopelijk anderen,haha) nog achteraan komen.

Kan een mod dit niet editen of voor mij editable maken?
 
Mooi onderwerp. Toch vraag ik me af wat het uiteindelijk gaat doen.
Die draaipotentiometers zetten de analoge waarde om in digitaal via die Arduino
Digitaal is midi ook. En dingen knutselen met digitale techniek is meestal wel te overzien.
Het werkt of het werkt niet. Zonder dat er veel kapot kan gaan.
 
Interessant topic! :okdan:
Inhoudelijk heb ik weinig toe te voegen, maar ik volg dit wel.
 
Mooi onderwerp. Toch vraag ik me af wat het uiteindelijk gaat doen.
Die draaipotentiometers zetten de analoge waarde om in digitaal via die Arduino
Digitaal is midi ook. En dingen knutselen met digitale techniek is meestal wel te overzien.
Het werkt of het werkt niet. Zonder dat er veel kapot kan gaan.
Ik begrijp niet helemaal waar je op doelt.

Dit is uiteindelijk niet meer dan een apparaat dat potmeters, faders, knoppen, etc allemaal omgooid naar midi en tzt ook nog het 1 en ander weergeeft via leds en een display. Dat was ook precies het doel (grote midi controller bouwen). Dit is absoluut geen versterker bouwen, modulaire synth, etc, das ook niet weggelegd voor mij op dit moment (gezien mn ervaring zou ik dan echt diep in topics moeten duiken en ik vind alles een beetje een stuk leuker,en meer hoeft voor dit doel ook niet).
 
Ik begrijp niet helemaal waar je op doelt.
Dit is uiteindelijk niet meer dan een apparaat dat potmeters, faders, knoppen, etc allemaal omgooid naar midi en tzt ook nog het 1 en ander weergeeft via leds en een display. Dat was ook precies het doel (grote midi controller bouwen).
Oh nu snap ik een beetje wat je bedoeld. Ik dacht dat je een de soft en hardware zelf ging ontwerpen. Het is dus meer de uiterlijke vorm/kleur naar eigen stijl. En voor de goedkopere prijs.
Want anders koop je gewoon alles kant en klaar.
 
Ja exact, tis meer omdat het kan zeg maar, beetje hobbyen om de controller zelf te maken.
 
Mooi project! Proficiat!

Mag ik een kleine tip geven?
De Arduino Uno kan je omprogrammeren tot een native midi device…
Thanks! Maar gelukkig kan het nog makkelijker. De Micro Pro maar bv ook de Teensy hebben standard native usb support. Je hoeft geen firmware te flashen, geen taferelen uit te halen, gewoon je bordje programmeren en hotsee je prikt hem zo in je synth of wat dan ook en het werkt als een usb midi device.
 
Deel IV..

Nu wachten op de nieuwe PCB's voor de 'modulaire' variant en de grotere controller. Intussen eens wat PCB's aan elkaar gemaakt, ondanks dat ze daar niet helemaal voor bedacht waren. Is overigens niet optimaal met deze versie, hopelijk is dat prachtig opgelost straks met die nieuwe. Maar goed inmiddels af en ziet er eigenlijk nog best okee uit en alles werkt. Code moet ik nog wel herschrijven om 3 multiplexers tegelijk uit te lezen en midi uit te sturen. Niet zo heel moeilijk maar vereist wat aanpassingen in de code, dus nog ff daarin duiken en dan eens ff los met wat synth geweld totdat de nieuwe PCB's komen!

1675284654652.png
1675284676450.png


In dit formaat zouden straks heel mooi 2 pcb's passen met 2x16 potmeters en dan 2 rijen buttons onderin. Dat begint qua opzet dan ook al ergens op te lijken. 2 rijen buttons voor mute/kill en dan een lading pots voor sends/returns/fx etc.

Je ziet hier overigens meteen het manco van bestaande controllers. Die hebben meestal niet zoveel posts. Een Xone K2 is al top, maar die idiote lading buttons heb ik niks aan terwijl de rest van die controller top is. Dus eigenlijk een Xone K2 met veel pots, of een combi van diverse Faderfox controller (kaching, tel maar alvast je geld in dat geval). En nu zelf maken scheelt wel serieus veel als je het vergelijkt met de controller die je anders zou moeten kopen.

Overigens is zo'n portrait mode ideaal voor 2x een controller, net zoals bij de Xone K2 kan je die dan mooi links en rechts van je mixer leggen, of in mijn geval misschien m'n Akai Force zelf.

Deel I: Mijn eigen zelfgebouwde modulaire midi controller
Deel II: Mijn eigen zelfgebouwde modulaire midi controller
Deel III: Mijn eigen zelfgebouwde modulaire midi controller
 
Back
Top