Innehållsförteckning:

HX1 -DM - Upcycled Arduino DUE Powered DIY Drum Machine (made with a Dead Maschine MK2): 4 steg
HX1 -DM - Upcycled Arduino DUE Powered DIY Drum Machine (made with a Dead Maschine MK2): 4 steg

Video: HX1 -DM - Upcycled Arduino DUE Powered DIY Drum Machine (made with a Dead Maschine MK2): 4 steg

Video: HX1 -DM - Upcycled Arduino DUE Powered DIY Drum Machine (made with a Dead Maschine MK2): 4 steg
Video: q3d quickfit extruder 2024, November
Anonim
Image
Image
Reparationen
Reparationen

Spec

  • Hybrid Midi controller / trumma: Arduino DUE driven!
  • 16 hastighetsavkännande kuddar med mycket låg latens 1> ms
  • 8 rattar användare som kan tilldelas alla Midi #CC -kommandon
  • 16ch inbyggd sequencer (ingen dator behövs !!)
  • MIDI in/out/thru -funktion (kan användas som ett USB midi -gränssnitt!)
  • Delvis MIDI -klocka och MTC -stöd (arbetar med MMC- och DAW -kontroll)

Detta är definitivt ett av de mest komplicerade projekten jag har arbetat med, pratade 17 utmatningsskiftregister, 6 ingångskiftregister, 2x 16 kanals multiplexrar som arbetar på ett kretskort. Jag har ingen aning om vad som är vad och var plus jag har aldrig trasslat till med skiftregister / multiplexer före ……

Det började som ett impulsköp av eBay, jag ville verkligen ha en Native Instruments Maschine eftersom jag alltid gillade trumkuddarna på dem jämfört med dem på MPC -studion jag ägde så när jag såg en felaktig på eBay för £ 40 pund trodde jag Jag skulle försöka fixa det med det värsta scenariot: 'om jag inte kan fixa det har jag en Arduino DUE och några UNO ligger, jag kan alltid göra några hack'

Jag gillar verkligen de där trumkuddarna !!!!

Tillbehör

1 x defekt Native Instruments Maschine MK2

1 x Arduino Due.

17 x SN74HC595 - 8 -bitars utmatningsregister

6 x SN74HC165 - 8 -bitars ingångsskiftregister

2 x 74HC4067 - 16 kanals multiplexrar.

2 x 3,2”256x64 OLED -skärmar.

lite platt tråd (gammal diskettkabel kommer att göra)

Steg 1: Reparationen

EBay -säljaren var snäll nog att ge en uppfattning om vad man kan förvänta sig i beskrivningen och hade tagit bort USB -porten. Kortet hade fått en överspänning och startade inte. Titta på multimetern…. Kortet tycktes ha en kort..”Jag har reparerat otaliga moderkort med shorts innan Så hur svårt kan det vara!?!” Det visade sig att denna överspänning (och förmodligen delvis kortets design), hade tagit ut nästan VARJE komponent på kortet inklusive huvud -CPU. Denna tavla var på ett riktigt dåligt sätt!

Jag fortsatte att prod & peta med min multimeter, gjorde lite research på komponenterna och kom på vad var och en gör plus NI gjorde ett bra jobb med att göra saker ganska uppenbara med de olika testpunkterna runt moderkortet ??.

Steg 2: Hacket

Hacket
Hacket
Hacket
Hacket
Hacket
Hacket

När jag visste att jag kommer att behöva byta ut allt från huvudprocessorn (vilket inte kommer att behövas) vände jag mig till eBay. Tack och lov var allt som behövdes billigt så att beställa en massa av dem var kul. ?

17 x SN74HC595 - 8 -bitars utmatningsregister

De 17 utmatningsskiftregistren används för att styra trumpadens mångfärgade lysdioder och alla knapp-lysdioder (136 för att vara exakt !!) Dessa är riktigt enkla att använda och hittade snabbt ett bibliotek med Arduino IDE för att rädda mig själv att göra en.. de är kedjade ihop.

6 x SN74HC165 - 8 -bitars ingångsskiftregister

Dessa ingångsskiftregister är bra för flera ingångar på 1 kanal. Det finns totalt 48 knappar.

2 x 74HC4067 - 16 kanals multiplexrar

Vi har 16 kuddar och 8 rattar kvar, dessa är också analoga. Jag tyckte det var lättare att använda dessa eftersom de på tavlan var 8kanaliga och jag hade problem med att hitta var jag skulle ansluta datastiften.. cue spaghetti junction….

2 x 3,2”256x64 OLED -skärmar

Det måste ha några skärmar !!! Jag kunde inte hitta någon information om de ursprungliga LCD -skärmarna som kom i NI -maskinen och jag orkade inte slösa mer tid på att försöka så jag bestämde mig för att beställa lite från Kina … Jag använde UG8x8 -biblioteket för att få dessa att fungera. De nya skärmarna var något mindre än originalet så jag tömde bara bort de "dåliga bitarna".

1 x Arduino Due

Jag hade det här en stund och väntade på ett projekt som var tillräckligt värt för all den kraften !! Det var ett problem som jag stötte på. Det verkar som om vissa versioner av dessa kort har ett återställningsproblem som innebar att jag var tvungen att trycka på återställningsknappen ibland för att få saken att köras efter att jag lade upp en skiss. Detta fixades enkelt med ett 10K -motstånd (det finns ett inlägg på Arduino -forumet om detta).

Steg 3: Koden

Jag var verkligen imponerad över hur mycket stöd det finns i Arduino -samhället. Att hitta kodexempel och bibliotek för de olika komponenterna var verkligen enkelt och rakt fram.

Att få USB -midi igång var enkelt och tog några minuter. Lysdioderna tog lite tid och jag var tvungen att skapa en skiss som stegvis ställde in varje stift HÖG i 1 sekunders intervall och tog en anteckning.. Jag gjorde en matris som innehöll PIN -numren för att göra det lättare när det gäller att koda upp allt.

Jag gjorde 2 bibliotek för att prata med multiplexrarna, det ena hanterar de analoga kuddarna och det andra rattarna. Återigen var detta riktigt enkelt. Jag har bifogat dem gärna använda redigera etc.

Jag ville ha en sequencer och möjlighet att spela in utan att behöva en dator, jag hittade lite information om hur man konverterar BPM till ms och hittade ett bra Arduino DUE timerbibliotek.

Med hjälp av timerbiblioteket kunde jag ställa in läsinmatningar och saker i intervaller:

Pads @ 1ms - Jag fann detta för att ge den bästa balansen mellan svar / avstängningsartefakter.

Buttons @ 40ms - Jag använde ett köbibliotek så att inga tryck missades.

Bearbetningen sker i huvudslingan, du kan inte göra för mycket när du är i ett avbrott eftersom detta kommer att låsa Arduino.

Midi stuff @BPM (i ms) - för sekvensering, vid önskad BPM kallas en funktion som uppdaterar vilka anteckningar ETC ska spelas och ökar slagräknaren.

Steg 4: Slutsats

Slutsats
Slutsats

Jag är inte säker på vad jag har gjort här men jag är ganska stolt, kuddarna svarar utmärkt, jag var tvungen att busa med tidpunkten för att få rätt balans med lyhördhet och avstängningsproblem. Sekvensering fungerar utmärkt och när jag väl kommit fram till DAW -stödet kan jag helt integrera det här i mitt arbetsflöde och kunna lägga till saker i en controller som jag alltid har velat!. Detta var ett riktigt roligt projekt att arbeta med och en bra övning för att ta tag i C, förstå reverse-engineering och hur multiplexrar, skiftregister och MIDI-sekvensering fungerar. Jag fortsätter att förbättra huvudkoden och kan komma att släppa den en dag som rytmdesigner med öppen källkod.

TIPS:

Jag hittade hur man ändrar USB -namnet på DUE genom att redigera en av rubrikfilerna i Arduino/SAM -mappen.

MIDI-OX är ett utmärkt verktyg för att testa Midi-funktioner

LÄNKAR:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi … Lite information om hur man konverterar BPM till ms

travis-ci.com/SMFSW/Queue - För knappinmatningar så att vi inte missar några tryckningar!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib för LED/LCD -skärmar

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib för den stora ratten

shiftregister.simsso.de/ - ShiftIn Register lib - Skapat av Henrik Heine, 24 juli 2016

forum.arduino.cc/index.php?topic=57636.0 - MIDI Time Code -grejer

Rekommenderad: