Bestellliste

Und so sehen die Bauteile aus, bevor sie zusammengesetzt sind:

Wenn ihr sowieso bestellt, tut euch selbst den Gefallen und bestellt die günstigen Sachen auf Reserve (z.B. 8 weitere Potis, 10 weitere LEDs je Farbe, 3 extra ICs je Sorte etc.). Es gibt kaum etwas frustrierenderes als Samstag Abend um 20 Uhr festzustellen, dass man einer LED das Bein zu kurz abgetrennt oder ein einzelnes IC durchgebrannt hat. Außerdem kommt das nächste Projekt bestimmt und die meisten verbauten Teile sind ziemlich universell einsetzbar.

Zu beachten ist außerdem, dass die Bestellliste keine Versandkosten ausweist und auch kein Verbrauchsmaterial (Platinen, Drähte, Flachbandkabel, Ätzmittel, Lötzinn) oder Werkstatt Ausstattung (Lötkolben, Hartmetallbohrer, Multimeter). Durch Überbestellung und Verbrauchs-/Werkstattmaterial kann sich der Preis locker verdoppeln. Bitte beachtet dies, bevor ihr Teile bestellt.

Um das Board zu bauen braucht man also mindestens folgende Teile:

Händler Artikel Link Beschreibung / Verwendung Einzelpreis Benötigte Anzahl Gesamtpreis
eBay LCD Display HD44780 4×20 chr 20×4 Orange neg Backlight ebay.de Debug- und Konfigurations-Display 9,00 € 1 9,00 €
Amazon MIDI USB 1X1 INTERFACE Kabel amazon.de MIDI-Konverter für Testing oder möglicherweise Deployment 6,74 € 1 6,74 €
Reichelt RK09K113-LIN100K reichelt.de Dreh-Poti für Parameter-Einstellung (6mm) 0,90 € 32 28,80 €
74HCT4051 reichelt.de 1-of-8 Analog Multiplexer für Dreh-Potis 0,30 € 4 1,20 €
GS 16 reichelt.de Sockel für 1-of-8 Analog Multiplexer 0,04 € 4 0,16 €
V 321 reichelt.de LEDs für die Instrumenten-Selektion 0,09 € 8 0,72 €
DTL 2 SW reichelt.de Takt-Selektor (Schwarz) 1,90 € 8 15,20 €
DTL 2 WS reichelt.de Takt-Selektor (Weiß) 1,90 € 8 15,20 €
V 321 reichelt.de LEDs für die Takt-Selektoren 0,09 € 16 1,44 €
V 321 reichelt.de Sequenz-Leds 0,09 € 16 1,44 €
DIT 1 RT reichelt.de Clear-Button (Rot) 1,90 € 1 1,90 €
DIT 1 WS reichelt.de Tap-Button (Weiß) 1,90 € 1 1,90 €
DIT 1 SW reichelt.de Prev- und Next-Button 1,90 € 2 3,80 €
DT 6 SW reichelt.de Mute-Button 0,53 € 8 4,24 €
DT 6 SW reichelt.de Solo-Button 0,53 € 8 4,24 €
V 320 reichelt.de Leds für Mute-Button 0,09 € 8 0,72 €
V 322 reichelt.de Leds für Solo-Button 0,09 € 8 0,72 €
DT 6 SW reichelt.de Scale-Switch-Button 0,53 € 1 0,53 €
V 321 reichelt.de LEDs für den Scale-Selector 0,09 € 4 0,36 €
STEC12E08 reichelt.de Drehimpulsgeber für Instrumenten-Rad 1,50 € 1 1,50 €
KNOPF 48-6 SW reichelt.de Riesiger Drehknopf für Instrumenten-Rad 2,50 € 1 2,50 €
DECKEL 48M SW reichelt.de Abdeckkappe für Drehknopf 0,32 € 1 0,32 €
RK09K113-LIN100K reichelt.de Dreh-Poti für Shuffle-Einstellung (6mm) 0,90 € 1 0,90 €
74HCT138 reichelt.de 1-of-8-Multiplexer 0,21 € 11 2,31 €
GS 16 reichelt.de Sockel für 1-of-8-Multiplexer 0,04 € 11 0,44 €
PFL 6 reichelt.de Pfostenbuchse 6-Pol 0,24 € 5 1,20 €
WSL 6G reichelt.de Wannenstecker 6-Pol 0,16 € 5 0,80 €
PFL 10 reichelt.de Pfostenbuchse 10-Pol 0,08 € 10 0,80 €
WSL 10G reichelt.de Wannenstecker 10-Pol 0,08 € 10 0,80 €
SL 1X40G 2,54 reichelt.de Pinheader 40-Pol 0,15 € 5 0,75 €
BL 1X20G 2,54 reichelt.de Pinbuchse 20-Pol 0,67 € 5 3,35 €
USB BG reichelt.de USB Buchse Typ B 0,26 € 1 0,26 €
AK 672/2-3,0 reichelt.de USB-Kabel 0,95 1 0,95 €
SSK M2,5X6-200 reichelt.de Platinenaufhängung (Schrauben) 2,00 € 1 2,00 €
SK M2,5-100 reichelt.de Platinenaufhängung (Muttern) 1,60 € 1 1,60 €
Pollin 410 067 pollin.de Knopf für Parameter-Poti 0,25 € 32 8,00 €
410 067 pollin.de Knopf für Shuffle-Poti 0,25 € 1 0,25 €
Exp-Tech DFRobot Mega exp-tech.de Mainboard 22,80 € 1 22,80 €
DFRobot Mega Prototyping Shield exp-tech.de Prototyping-Shield 7,00 € 1 7,00 €
Summe 156,79 €
Advertisements

Layout und Anschluss

Inzwischen sind wir uns über den Aufbau des Geräts einig geworden. Es wird so aussehen:

Ein Klick auf das Bild führt zu einer PDF-Version, welche größtenteils die original Bauteilmaße verwendet. Sie passt leider nicht ganz auf Din A3.

Das Gerät setzt sich aus folgenden Einheiten zusammen:

  • Das Instrumentenwahl- und Einstellungsrad: Ein Drehimpulsgeber dient im normalen Zustand der Auswahl eines der Instrumente. Die Wahl wird auf den daneben angebrachten LEDs angezeigt. Zusätzlich wird der Name des Instrumentes auf dem Display eingeblendet. Das Rad kann wie ein Knopf gedrückt werden, um in den Konfigurationsmodus zu wechseln. Auf dem Display wird dann ein Menü angezeigt, mit welchem das Midi-Kanalmapping, die Taktquelle (Midi-Clock oder Intern), und der Pattern-Speicher verwaltet werden können.
    Zur Ansteuerung der LEDs kommt ein 1-of-8-Encoder zum Einsatz, wodurch diese Einheit mit 7 Pins am Mainboard angeschlossen werden muss (3 für den Drehimpulsgeber, 3 für die Wahl des Ausgangs am 1-of-8-Encoder und 1 zum aktivieren/deaktivieren der gewählten LED).
  • Die Mute- und Solo-LEDs und Buttons: Rechts neben dem Rad befinden sich 8 Mute Buttons, 8 Solo-Buttons und dazu je eine LED. Hier kommen wieder 4x 1-of-8-Encoder zum Einsatz, je 2 für die Buttons und 2 für die LEDs. Die Encoder teilen sich ihre 3 Ausgangs-Wahlleitungen miteinander und werden am Mainboard auch mit den 3 Leitungen der Instrumentenwahl zusammengeschaltet. Dadurch werden nur 4 zusätzliche Leitungen am Mainboard belegt: je eine gemeinsame für die 8 Buttons/LEDs je Encoder.
  • Parameter-Potentiometer: Unter den Mute-/Solo-Buttons befinden sich die 32 Parameter-Potis. Diese werden über 4x 1-of-8-Analog-Multiplexer beschaltet. Dadurch belegen sie nur 4 analoge Pins, die 3 Wahlleitungen werden mit den Wahlleitungen aus den anderen Einheiten parallel geschaltet.
  • Das LCD-Display: Verbaut wird ein Text-Display mit dem üblichen HD44780 Chip. In diesem Fall kommt ein 4×20 Orange-Negativ-Display zum Einsatz, weil es eine außergewöhnliche Farbe hat und nicht so hell und daher für den Einsatz in düsteren Räumen geeignet ist (Blaue Displays brennen einem Löscher in die Augen). Da der Controller aber ziemlich universell ist, kann fast jede Displaygröße und Farbe verwendet werden (z.B. 2×16 Blau). Der LCD-Controller belegt 6 Pins am Mainboard (DB5-DB8, E und RS).
  • Buttons unter und neben dem Display: Hier ist noch nicht ganz klar, welche Funktion einen eigenen Button bekommt und was über das Menü gesteuert wird (z.B. kann es sein, dass aus OK ein Tap-Button wird). Das Layout sieht hier 5 Buttons vor (incl. dem Scale-Button), welche mit 5 Pins angeschlossen werden. Ein Multiplexing eigent sich hier wenig, da kaum Adern gespart werden könnten (4 statt 5).
  • Takt-LEDs: Über den 16 Step-Select-Buttons sind 16 Taks-LEDs, die den aktuellen Schritt anzeigen. Diese werden mit 2x 1-of-8-Encodern angeschlossen. Wie üblich werden auch hier die selben 3 Wahlleitungen verwendet, so dass nur 2 Pins am Mainboard belegt werden.
  • Step-Select-Buttons mit LEDs: Zu unterst sind 16 Buttons mit je einer LED angeordnet, über welche die Zuordnung der Instrumente zu einzelnen Taktschritten gesteuert wird. Hier kommen 4 weitere 1-of-8-Encoder zum Einsatz, welche 4 Leitungen am Mainboard belegen.
  • Midi-Brücke: Die Midi-Brücke belegt 2 UART-Leitungen, welche daher nicht als I/O-Pins benutzt werden können.
  • Programmieradapter: Ich habe meine Schaltungen gerne auch nach dem Zusammenbauen noch programmierbar, weshalb die Pins MISO, MOSI und SCK auch nicht belegt werden können (man kann sie zwar theoretisch trotzdem belegen, aber ich hab schon einige male erlebt, dass man dann doch erst Lötbrücken auflösen musste, bevor man wieder programmieren konnte)

In der Summe kommt man so auf 33 Pins. Im Prinzip würde also ein ATmega32 ausreichen, wenn man die Programmierpins mit beschaltet. Da ich aber ungern so knapp kalkuliere (und man doch lieber noch ein paar Pins für zukünftige Erweiterungen übrig hat – z.B. noch 4 weitere Instrumente zum dazustecken, ein Grafikdisplay oder ein SD-Kartenslot zum vergrößern des Pattern-Speichers oder zum aufzeichnen von Midi-Dateien), habe ich mich stattdessen für einen ATmega128 entschieden. Da ich mir das verlöten eines 64 beinigen SMD-Bausteins aber nicht zutraue, kommt statt dessen ein DFRobot-Board von Exp-Tech als Mainboard zum Einsatz, welches für 22,80€ schon die gesamte Taktgebung, Stromstabilisierung und einen USB-Programmieradapter mitbringt.

Eine detaillierte Bestelliste gibt’s im nächsten Post zusammen mit Fotos der gelieferten Teile.

Prototyp

Nachdem mit der Midi-zu-Usb-Brücke die Verbindung zum Computer geklärt ist, folgt nun die Probe auf’s Exempel: Ein Prototyp soll beweisen, dass die Ansteuerung des Drum-Synthesizers von einem Atmel aus möglich ist.

Ich habe meinen Prototyp auf einem Breadboard aufgebaut, weil man so ohne den Lötkolben bemühen zu müssen schnell experimentieren kann. In der Mitte meines Steckbrett-Aufbaus schlägt ein ATmega8 der mit einem Quarzoszillator (linke Hälfte) auf 4 MHz betrieben wird. Für einfache Experimente reicht es auch, den internen Schwingkreis des ATmega zu benutzen, jedoch ist diese mit 1-5% Ganggenauigkeit zu ungleichmäßig für Serielle Kommunikation und damit auch für unsere Midi-Brücke.

Der Grundaufbau der Beschaltung richtet sich nach dem Vorschlag von mikrocontroller.net, wobei auf den Kondensator zur Stabilisierung der analogen Referenzspannung C2 verzichtet wurde, da diese in diesem Setup nicht benötigt wird. Die Stromversorgung kommt von der Midi-zu-Usb-Brücke.

In der rechten Hälfte habe ich ein einfaches LCD-Display untergebracht, weil es als guter Beweis dafür dient, dass der ATmega macht, was er soll und zum Ausgeben von Debug-Informationen sehr geeignet ist.

die Aufgesteckte Platine mit ist ein Adapter vom der 6-Köpfigen Pinheader aus der Grundbeaschaltung auf den 2×3-Köpfingen Anschluss meines Programmieradapters. Die Idee dafür habe ich von zovirl.com entliehen. Als Programmieradapter habe ich mir einen mySmartUSB light von myavr.de, welcher sich dank Usb-Achschluss und geringer Größe schmerzfrei an einem Notebook betreiben lässt (bei eBay lassen sich ein paar Euros sparen).

Zur Ansteuerung des Displays verwende ich grundsätzlich den Code von mikrocontroller.net, jedoch habe ich die Kommentare an mein Schema angepasst, so dass der Quellcode im finalen Projekt einheitlich ist. Angeschlossen ist es mit einem Flachbandkabel, weil ich dies deutlich übersichtlicher finde als ein halbes duzend freiliegender Kabel.

Der Code auf Github steuert die Hardware so an, dass diese über die Midi-zu-Usb-Brücke die für Drums definierte Noten 35 bis 59 an den Computer schickt und dabei auf dem LCD-Display anzeigt, was grade versendet wurde. Zusammen sieht das dann so aus:

Beim Nachbauen empfehle ich, erst ein einfacheres Programm zum laufen zu bekommen und z.B. eine LED blinken zu lassen. Wenn das klappt, kann mit dem Anschluss des LCDs weiter gemacht werden. Wenn sich das LCD nicht so verhält wie erwartet, lohnt es sich die Reihenfolge der Pins noch einmal zu checken. Ich hatte zunächst die Datenleitungen falsch rum angeschlossen. Im Zweifelsfall auch noch mal die Beschaltung der Kontrastspannung prüfen.

Wenn das LCD funktioniert aber die Midi-Ausgabe nicht so klappt, bringt ein Blick auf den Midi-zu-Usb-Adapter meist Klarheit. Die Power-Led muss leuchten, die In-Led sollte blinken oder Flackern, wenn Daten übermittelt werden.

Verwendete Bauteile

Tip: alles gleich zwei mal bestellen; braucht man immer wieder.

Midi-zu-Usb-Brücke

Neben dem Herzen der Schaltung, einem [noch zu bestimmenden] ATmega Mikrocontroller, ist eine der großen Herausforderungen der Anschluss an den Computer. Der Drum-Computer soll nach dem Anschluss vom Computer direkt als Midi-Gerät erkannt werden und ohne weitere Software einsetzbar sein. Die eleganteste Lösung ist die auf shiftmore vorgestellte Version mit einer fertigen Midi-zu-Usb-Brücke.

Den Adapter habe ich für 6,74€ + Versandkosten bei Amazon erstanden, es gibt diesen wohl aber auch bei eBay für noch weniger Geld.

Das Gehäuse des Adapters habe ich mit einem Schraubendreher vorsichtig geöffnet und da es nur gesteckt und nicht verklebt war, ging es auch problemlos auf.

Auf der linken Seite sieht man die Verbindung der Midi-Kabel. Von oben nach unten sind diese mit O-, O+, G, IN+ und IN- beschriftet, wobei G (Ground) nicht verbunden ist. Auf der rechten Seite ist der Usb-Stecker befestigt. Hier sind die Adern von oben nach unten mit D-, D+, G, V und S beschriftet (auch hier ist G nicht belegt). Anhand der Farben der Adern ist zu erkennen, dass V für die +5V-Leitung und S für Ground steht (Nachmessen ergibt: S ist mit G verbunden).

Nach dem Öffnen des Gehäuses habe ich die Midi-Seite des Adapters abgelötet. Die Usb-Seite habe ich vorerst dran gelassen, damit ich sicher sein konnte, dass wenigstens eine Seite ordnungsgemäß funktioniert. Bei meinem Adapter war die Pinbelegung anders, als im shiftmore-Artikel. Durch recherchieren und ausprobieren bin ich auf folgenden Anschluss gekommen:

Bitte vor allem die Pin-Bezeichnungen beachten, denn die Pin-Positionen können sich ändern. Wenn die Pins nicht beschriftet sind, geben die Farben der Adern Auskunft:

  • Auf der Midi-Seite ist rot jeweils plus, schwarz folglich minus.
  • Auf der Usb-Seite ist rot die +5v Leitung und schwarz die Masse.
  • Die Belegung der Usb-Datenleitung muss zwar erhalten bleiben, spielt für unsere Anwendung jedoch keine Rolle

Den 220 Ohm Pullup zwischen O+ und +5V habe ich direkt auf der Adapter-Platine untergebracht und mit einem Schrumpfschlauch isoliert. Wenn man keine 220 Ohm hat, tut’s auch ein anderer (ich verwende einen 180 Ohm Widerstand, weil ich den noch in der Schublade hatte). Die 220 Ohm gehören zum Referenz-Design der Midi-Beschaltung und wenn wir über einen Midi-Out-Port mit Fremdgeräten reden würden, müssten es wohl auch genau 220 Ohm sein. Unsere Schaltung muss aber nur mit genau einem Midi-Gerät funktionieren: dem Adapter.

Die Pins, die zum MCU (in meinem Experiment ein ATmega8) gehen, habe ich über ein Flachbandkabel geschickt, an dessen anderen Ende ich zwei 2x Pfostenleisten angelötet habe.

Über VCC und GND wird der ATmega8 von der Stromversorgung des USB-Anschlusses mit gespeist, die RX und TX-Pins können mit den UART-Pins des Chips verbunden werden, die genau diese Namen tragen. TX steht dabei für transmit (senden) und RX für receive (empfangen).

Über die Ansteuerung des UART zum Senden von Midi-Noten und Empfangen des Clock-Signals gibt’s im nächsten Beitrag was, in dem ich über meinen ersten Prototypen berichte.

Nachtrag:

Da ich bei meinen Anschluss-Experimenten scheinbar den Out-Port des Midi-Adapters zerstört habe, habe ich mir einen zweiten gekauft. Wie erwartet, sah er von außen absolut identisch aus, innen jedoch war ein ganz anderes Board mit anderen Kontakten vor zu finden. Interessant war, dass auf diesem Board I- und I+ anders herum beschaltet waren. Der PullUp musste also zwischen I- und +5V. Die gute Nachricht ist nun, dass hinter den beiden IN-Pins ein Optokoppler kommt (ein Phototransistor mit einer LED in einem Gehäuse), wobei die Eingangssignale die LED steuern. Der Optokoppler ist recht resistent, vor allem gegen Verpolung. Daher kann man ruhig mal beide Versionen ausprobieren.

Hier noch ein paar Fotos vom zweiten Adapter:

Version mit 18 Instrumenten

Wie im Kickoff beschrieben, wollten wir zunächst eine Version mit 18 Instrumenten bauen, haben uns jedoch aus Kostengründen für eine Version mit nur 8 Instrumenten entschieden. Hier gibt’s die ursprünglichen Dateien des 18-Instrumente-Projekts zum Download, falls doch jemand diese Version des Gerätes bauen möchte.

Kickoff

Vor einigen Wochen erzählte ich auf der Arbeit, dass ich gerne wieder mal etwas mit Elektronik machen würde. Mein Kollege Colin sprang ein und erzählte von einem Gerät, nach dem er schon einige Zeit gesucht hatte, dass er jedoch noch in keinem Laden (zu einem Bezahlbaren Preis) bekommen konnte: Ein Midi-Drum-Computer im Stil einer TR808.

Bei dem Gerät handelt es sich um einen Midi-Step-Sequencer, bei dem die Anordnung der Instrumente und der Sequenz-Kontrolle ähnlich intuitiv ist, wie bei der TR808, welche jedoch nur als Midi-Generator für einen Drum-Synthesizer funktioniert. Da wir beide keine Hardware-Synthesizer besitzen, hält ein Notebook als Synthesizer her. Der Sequencer bekommt also statt normaler Midi-Buchsen einen Usb-Anschluss.

Auf der Softwareseite orientiert sich dier Sequenzer an der Konfigurierbarkeit des D16 Nepheton, wobei jedoch auch jeder andere Drum-Synthesizer verwendet werden kann. Es ist auch möglich, verschiedene Synthesizer zu kombinieren und bestimmte Instrumente von einem anderen Programm synthetisieren lassen.

Wie das Nepheton sollte auch unsere Hardware zunächst 18 Instrumente bekommen. Eine Aufrechnung der Materialkosten ergab einen Preis von ca. 300€ für die Einzelkomponenten. Als Spar-Lösung entschieden wir uns stattdessen für einen Sampler mit 8 Instrumenten. Wenn trotzdem jemand Lust hat, das Gerät mit vollen 18 Instrumenten zu bauen, gibt’s in Kürze die ursprünglichen Aufzeichnungen und Bauteillisten zum Download. Da wir dieses Gerät nie fertig gebaut haben, gibt’s keine Schaltpläne, Bordlayouts, Fotos oder Videos davon.