Difference between revisions of "ER-MIDI-CV4-02"

From Land Boards Wiki
Jump to navigation Jump to search
 
(85 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[FILE:ER-USB-MIDI-CV4-01_SET_FRONT_REAR_3D-720PX.png]]
+
[[File:tindie-mediums.png|link=https://www.tindie.com/products/28969/]]
 +
 
 +
[[FILE:ER-MIDI-CV4-02_P1080867-720px.jpg]]
  
 
== Features ==
 
== Features ==
Line 7: Line 9:
 
** Front Panel card
 
** Front Panel card
 
** Controls card
 
** Controls card
*** 8 Jacks, 1 pot
+
*** 9 Jacks, 1 pot
 
** Processor card
 
** Processor card
* Arduino Pro Mini
+
* [[Arduino_Pro_Mini|Arduino Pro Mini]]
 +
** Either ATMega168 or ATMega328
 
** 16 MHz
 
** 16 MHz
 
** 5V
 
** 5V
 +
** Programmed via Serial
 
* MIDI In
 
* MIDI In
 
** TRS Type A jack MIDI In
 
** TRS Type A jack MIDI In
 
** USB MIDI In if external FTDI card/cable
 
** USB MIDI In if external FTDI card/cable
* (4) 0-5V Analog CV outs
+
* (4) 0-4.096V Analog CV outs
 +
** 4 octaves
 
** [https://www.mouser.com/ProductDetail/Microchip-Technology-Atmel/MCP4822-E-P?qs=sGAEpiMZZMtgJDuTUz7Xu5a0A%252BlHhkxt3QSpqvc4zyk%3D MCP4822 12-bit D/A] - SPI Interface
 
** [https://www.mouser.com/ProductDetail/Microchip-Technology-Atmel/MCP4822-E-P?qs=sGAEpiMZZMtgJDuTUz7Xu5a0A%252BlHhkxt3QSpqvc4zyk%3D MCP4822 12-bit D/A] - SPI Interface
 
*** [https://www.mouser.com/datasheet/2/268/21953a-8929.pdf MCP4822 Datasheet]
 
*** [https://www.mouser.com/datasheet/2/268/21953a-8929.pdf MCP4822 Datasheet]
Line 22: Line 27:
 
* GATE output (0-5V)
 
* GATE output (0-5V)
 
* CLK output (0-5V)
 
* CLK output (0-5V)
* Standard Eurorack 16 pin power header
+
* TRIG output (0-5V)
 +
* Standard Eurorack 10 pin power header
  
 
=== Credits ===
 
=== Credits ===
Line 44: Line 50:
 
* D11 = SPI MOSI to both ADCs
 
* D11 = SPI MOSI to both ADCs
 
* D10 = SLAVE SELECT to both ADCs
 
* D10 = SLAVE SELECT to both ADCs
 +
 +
[[file:ArdruinoProMini-EBAY_PART-720px.png]]
 +
 +
==== Connection to FTDI ====
 +
 +
* Use [[FTDI-49MM]] card
 +
* Right angle 1x6 pins
 +
* Pinout
 +
 +
# GND
 +
# CTSn (IN)
 +
# VCC
 +
# TX (OUT)
 +
# RX (IN)
 +
# RTSn (OUT)
 +
 +
* Arduino Pro Mini Serial Connector
 +
* Marking matches FTDI cable pinouts/color codes
 +
 +
[[file:FTDI_Cable_Color_Code.png]]
 +
 +
# BLK
 +
# GND
 +
# VCC
 +
# RX
 +
# TX
 +
# GRN
  
 
== Connectors ==
 
== Connectors ==
  
* As referenced from Processing card
+
=== Processing Card Connectors ===
  
=== J1 - Eurorack Power ===
+
==== J1 - Eurorack Power ====
  
 
[[file:ER-MIDI-CV4-02_DB_J1.PNG]]
 
[[file:ER-MIDI-CV4-02_DB_J1.PNG]]
Line 57: Line 90:
 
* Diode polarity protected, series resistor
 
* Diode polarity protected, series resistor
  
=== J2 - CVs, GATE, CLK (to/from Controls card) ===
+
==== J2 - CVs, GATE, CLK (to/from Controls card) ====
  
 
[[file:ER-MIDI-CV4-02_DB_J2.PNG]]
 
[[file:ER-MIDI-CV4-02_DB_J2.PNG]]
Line 75: Line 108:
 
# GND
 
# GND
  
=== J3 - I2C ===
+
==== J3 - I2C ====
  
 
[[file:ER-MIDI-CV4-02_DB_J3.PNG]]
 
[[file:ER-MIDI-CV4-02_DB_J3.PNG]]
Line 86: Line 119:
 
# GND
 
# GND
  
=== J4 - MIDI (to/from Controls card) ===
+
==== J4 - MIDI (to/from Controls card) ====
  
 
[[file:ER-MIDI-CV4-02_DB_J4.PNG]]
 
[[file:ER-MIDI-CV4-02_DB_J4.PNG]]
Line 98: Line 131:
 
# GND
 
# GND
  
=== J5 - MIDI into RX ===
+
==== J5 - MIDI into RX ====
  
 
[[file:ER-MIDI-CV4-02_DB_J5.PNG]]
 
[[file:ER-MIDI-CV4-02_DB_J5.PNG]]
Line 111: Line 144:
 
* 2-3 = MIDI out from Arduino TX
 
* 2-3 = MIDI out from Arduino TX
  
== Application ==
+
=== Controls Card Connectors ===
 +
 
 +
==== J1 - CLK ====
 +
 
 +
* MIDI Clock out
 +
* 0-5V, Digital
 +
 
 +
==== J2 - CV1 Out ====
 +
 
 +
* Control Voltage out
 +
* 0-5V Analog Clock
  
* Use with [[ER-VCO-03]] to control pitch and Mod
+
==== J3 - CV2 Out ====
 +
 
 +
* Control Voltage out
 +
* 0-5V Analog Clock
 +
 
 +
==== J4 - CV3 Out ====
 +
 
 +
* Control Voltage out
 +
* 0-5V Analog Clock
 +
 
 +
==== J5 - CV4 Out ====
 +
 
 +
* Control Voltage out
 +
* 0-5V Analog Clock
 +
 
 +
==== J6 - TRIGGER ====
 +
 
 +
* MIDI Trigger out
 +
* 0-5V, Digital
 +
 
 +
==== J7 - GATE ====
 +
 
 +
* MIDI Gate out
 +
* 0-5V, Digital
 +
 
 +
==== J8 - MIDI In ====
 +
 
 +
* MIDI Input
 +
* TRS Type A
 +
 
 +
[[FILE:ER-MIDI-CV4_J8.PNG]]
 +
 
 +
===== MIDI TRS A =====
 +
 
 +
* From [https://minimidi.world/ minimidi.world]
 +
* DIN
 +
 
 +
[[file:MINIMIDI_WORLD_DIN.PNG]]
 +
 
 +
* TRS A
 +
 
 +
[[file:MINIMIDI_WORLD_TYPE-A.PNG]]
 +
 
 +
==== J9 - MIDI Out ====
 +
 
 +
* MIDI Output
 +
* TRS Type A
 +
 
 +
==== J10 - CVs, GATE, CLK, TRIG ====
 +
 
 +
[[FILE:ER-MIDI-CV4-CTLS_J10.PNG]]
 +
 
 +
==== J11 - MIDI ====
 +
 
 +
[[FILE:ER-MIDI-CV4-CTLS_J11.PNG]]
 +
 
 +
== Applications ==
 +
 
 +
* Card test code
 +
* Basic Application
 +
* Polyphonic/Drum Triggers Application
 +
 
 +
=== Programming ===
 +
 
 +
* Program with FTDI Serial
 +
* FTDI set to 5V signal levels
 +
* Cable does not connect VCC
 +
 
 +
[[file:ER-MIDI-CV4-02_P1080860-720px.jpg]]
 +
 
 +
*  Unplug MIDI in cable from front panel
 +
*  Connect FTDI card with 1:1 cable
 +
*  Download code in Arduino IDE
 +
*  Disconnect FTDI
 +
*  Connect MIDI in cable to front panel
 +
 
 +
=== Card Test Code ===
 +
 
 +
* Code useful to verify card is correctly assembled
 +
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_MIDI_CV/TestPotDigIOs/TestPotDigIOs.ino TestPotDigIOs]
 +
** Test Digital Outputs (CLK, TRIG, GATE) and Speed Pot
 +
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_MIDI_CV/ER_MIDI_CV4_04_TEST_DACs/ER_MIDI_CV4_04_TEST_DACs.ino ER_MIDI_CV4_04_TEST_DACs]
 +
** Read pot, scale value. write to 4 analog outputs
 +
** Also, drive CLK, TRIG, GATE digital outputs
 +
 
 +
=== HAGIWO code baseline ===
 +
 
 +
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_MIDI_CV/SYNTHMIDICTL01/SYNTHMIDICTL01.ino SYNTHMIDICTL01.ino]
 +
** Runs on Arduino ATMEGA328 (Arduino NANO or Pro Mini)
 +
** Used as baseline and converted to CircuitPython
 +
 
 +
=== Basic Application===
 +
 
 +
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/SYNTHS/ER_MIDI_CV/ER_MIDI_CV4_02 ER_MIDI_CV4_02] - Base application
 +
* Listens on channel 0
 +
** CV1 controls pitch
 +
* Ex: Use with [[ER-VCO-03]] to control pitch and Mod
 
** CV_1 = V/OCT
 
** CV_1 = V/OCT
 
** CV_2 = MOD
 
** CV_2 = MOD
* Use with [[ER-VCA2-01]] to control amplitude
+
* Use GATE output into [[ER-ADSR-555-01]] output of ADSR to MOD input of [[ER-VCA2-01]] to control amplitude
 +
* [http://fortyseveneffects.github.io/arduino_midi_library/ Arduino MIDI Library]
 +
* [https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies MIDI Notes]
 +
 
 +
=== Polyphonic and Drum Triggers Code ===
 +
 
 +
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_MIDI_CV/ER_MIDI_CV4_02/ER_MIDI_CV4_02.ino ER_MIDI_CV4_02] - Working code
 +
* #define for polyphonic and drum modes
 +
** #define POLYPHONIC uses CV1-4, a single gate output
 +
** #define DRUM_TRIGGER_OUTS uses TRIG and CLK to trigger drums Beaks (Peaks)
 +
<pre>
 +
// V/OCT LSB for DAC
 +
// ER-VCO-03 characteristics
 +
//  PITCH ADJ knob roughly centered
 +
//  0V = 93.08 Hz (roughly F2)
 +
//  1V = 179 Hz (G3)
 +
//  1.52V = 261 Hz (C4)
 +
//  2V = 365 Hz (G4)
 +
//  3V = 722 Hz (G5)
 +
//  4V = 1.45 KHz (G6)
 +
//  5V = 3.05 KHz (G7)
 +
// Max output voltage of this card is 4.096V (4 octaves)
 +
//  1mV per DAC count
 +
// 12 notes per octave = 1/12V per note = 83.333 mV
 +
// Steps are in 83.333 mV
 +
// Table counts up by integer steps - rounded 83.333 mV
 +
</pre>
 +
 
 +
=== Drum Controller Application ===
 +
 
 +
* Use TRIG and GATE output jacks to drive [[Beaks_Through_Hole_Peaks|Beaks]] in Drum mode
 +
* Re-label Gate as TRIG 2 on Front Panel
 +
* Using USB MIDI as MIDI source
 +
** [[ER-USB-MIDI]] through [[ER-MIDI-THRU]] into MIDI In on this card
 +
*** Set [[ER-USB-MIDI]] to pass all channels
 +
** [[ER-MIDI-THRU]] always passes all channels
 +
** Keyboard off or unplugged from [[ER-MIDI-THRU]]
 +
* Using keyboard as MIDI source
 +
** Keyboard plugged into [[ER-MIDI-THRU]]
 +
** [[ER-MIDI-THRU]] not plugged into ER-MIDI-CV4-02
 +
* Uses 2 ER-MIDI-CV4-02 card sets
 +
** One ER-MIDI-CV4-02 card set to listen on MIDI Channel 1
 +
** Second ER-MIDI-CV4-02 card set to listen to Drums on Channel 10
 +
* [https://www.midi.org/specifications-old/item/gm-level-1-sound-set GM 1 Sound Set]
  
=== HAGIWO code baseline ===
+
==== Drum Controller Build notes ====
  
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/SYNTHMIDICTL01/SYNTHMIDICTL01.ino SYNTHMIDICTL01.ino]
+
* Do not populate D/A converter
** Runs on Arduino NANO
+
* Do not populate CV jacks
** Used as baseline and converted to CircuitPython
+
* Do not populate related discrete parts
  
 
== 3D Views ==
 
== 3D Views ==
Line 143: Line 325:
  
 
<video type="youtube">fez_pjEC9eA</video>
 
<video type="youtube">fez_pjEC9eA</video>
 +
 +
== Issues ==
 +
 +
[[file:ER-MIDI-CV4-02_P1080869-720px.jpg]]
 +
 +
=== Rev 2 ===
 +
 +
* Daughtercard
 +
** Fixed missing connection D14 anode to GND
 +
** Moved R1 down a bit
 +
** Haven't ordered yet (2022-12-04)
 +
 +
=== Rev 1 ===
 +
 +
* Daughtercard
 +
** Missing connection D14 anode to GND
 +
*** Add wire D14-Anode to D9-Anode
 +
** R1 is close to Arduino socket (fit OK, but tight)
  
 
== Assembly Sheet ==
 
== Assembly Sheet ==
  
 
* [[ER-MIDI-CV4-02 Rev 1 Assembly Sheet]]
 
* [[ER-MIDI-CV4-02 Rev 1 Assembly Sheet]]
 +
* [http://land-boards.com/ER-MIDI-CV4-02/ER-MIDI-CV4-02_CTLS_rEV1_ibom.html Controls card Rev 1 Interactive BOM]
 +
* [http://land-boards.com/ER-MIDI-CV4-02/ER-MIDI-CV4-02_DB_Rev2_ibom.html Daughtercard Rev 2 Interactive BOM]
 +
* [http://land-boards.com/ER-MIDI-CV4-02/ER-MIDI-CV4-02_DB_Rev1_ibom.html Daughtercard Rev 1 Interactive BOM]

Latest revision as of 03:36, 10 January 2023

Tindie-mediums.png

ER-MIDI-CV4-02 P1080867-720px.jpg

Features

  • Eurorack 6HP, 3U module
  • Three card stack-up
    • Front Panel card
    • Controls card
      • 9 Jacks, 1 pot
    • Processor card
  • Arduino Pro Mini
    • Either ATMega168 or ATMega328
    • 16 MHz
    • 5V
    • Programmed via Serial
  • MIDI In
    • TRS Type A jack MIDI In
    • USB MIDI In if external FTDI card/cable
  • (4) 0-4.096V Analog CV outs
  • GATE output (0-5V)
  • CLK output (0-5V)
  • TRIG output (0-5V)
  • Standard Eurorack 10 pin power header

Credits

Arduino Pins

  • Arduino Pro Mini
  • Analog 1 - Speed Adjust POT
  • A4 = SDA
  • A5 = SCL
  • D8 = LDAC1* to CV_1, CV2
  • D9 = LDAC2* to CV_3, CV_4
  • D13 = SPI CSK to both ADCs
  • D11 = SPI MOSI to both ADCs
  • D10 = SLAVE SELECT to both ADCs

ArdruinoProMini-EBAY PART-720px.png

Connection to FTDI

  • Use FTDI-49MM card
  • Right angle 1x6 pins
  • Pinout
  1. GND
  2. CTSn (IN)
  3. VCC
  4. TX (OUT)
  5. RX (IN)
  6. RTSn (OUT)
  • Arduino Pro Mini Serial Connector
  • Marking matches FTDI cable pinouts/color codes

FTDI Cable Color Code.png

  1. BLK
  2. GND
  3. VCC
  4. RX
  5. TX
  6. GRN

Connectors

Processing Card Connectors

J1 - Eurorack Power

ER-MIDI-CV4-02 DB J1.PNG

  • 2x5 IDC connector
  • Only uses +12V (and GND)
  • Diode polarity protected, series resistor

J2 - CVs, GATE, CLK (to/from Controls card)

ER-MIDI-CV4-02 DB J2.PNG

  • J12 on Controls card
  • Pinout
  1. VCC (+5V)
  2. GATE
  3. CLK
  4. CV4
  5. CV2
  6. POT
  7. CV1
  8. CV3
  9. TRIGGER
  10. GND

J3 - I2C

ER-MIDI-CV4-02 DB J3.PNG

  • Pinout
  1. SCL
  2. SDA
  3. VCC (+5V)
  4. GND

J4 - MIDI (to/from Controls card)

ER-MIDI-CV4-02 DB J4.PNG

  • J9 on Controls card
  • Pinout
  1. VCC (+5V)
  2. MIDI Out
  3. MIDI In
  4. GND

J5 - MIDI into RX

ER-MIDI-CV4-02 DB J5.PNG

  • Remove to use MIDI from Controls card

J6 - MIDI OUT/THRU Select

ER-MIDI-CV4-02 DB J6.PNG

  • 1-2 = MIDI Thru
  • 2-3 = MIDI out from Arduino TX

Controls Card Connectors

J1 - CLK

  • MIDI Clock out
  • 0-5V, Digital

J2 - CV1 Out

  • Control Voltage out
  • 0-5V Analog Clock

J3 - CV2 Out

  • Control Voltage out
  • 0-5V Analog Clock

J4 - CV3 Out

  • Control Voltage out
  • 0-5V Analog Clock

J5 - CV4 Out

  • Control Voltage out
  • 0-5V Analog Clock

J6 - TRIGGER

  • MIDI Trigger out
  • 0-5V, Digital

J7 - GATE

  • MIDI Gate out
  • 0-5V, Digital

J8 - MIDI In

  • MIDI Input
  • TRS Type A

ER-MIDI-CV4 J8.PNG

MIDI TRS A

MINIMIDI WORLD DIN.PNG

  • TRS A

MINIMIDI WORLD TYPE-A.PNG

J9 - MIDI Out

  • MIDI Output
  • TRS Type A

J10 - CVs, GATE, CLK, TRIG

ER-MIDI-CV4-CTLS J10.PNG

J11 - MIDI

ER-MIDI-CV4-CTLS J11.PNG

Applications

  • Card test code
  • Basic Application
  • Polyphonic/Drum Triggers Application

Programming

  • Program with FTDI Serial
  • FTDI set to 5V signal levels
  • Cable does not connect VCC

ER-MIDI-CV4-02 P1080860-720px.jpg

  • Unplug MIDI in cable from front panel
  • Connect FTDI card with 1:1 cable
  • Download code in Arduino IDE
  • Disconnect FTDI
  • Connect MIDI in cable to front panel

Card Test Code

  • Code useful to verify card is correctly assembled
  • TestPotDigIOs
    • Test Digital Outputs (CLK, TRIG, GATE) and Speed Pot
  • ER_MIDI_CV4_04_TEST_DACs
    • Read pot, scale value. write to 4 analog outputs
    • Also, drive CLK, TRIG, GATE digital outputs

HAGIWO code baseline

  • SYNTHMIDICTL01.ino
    • Runs on Arduino ATMEGA328 (Arduino NANO or Pro Mini)
    • Used as baseline and converted to CircuitPython

Basic Application

Polyphonic and Drum Triggers Code

  • ER_MIDI_CV4_02 - Working code
  • #define for polyphonic and drum modes
    • #define POLYPHONIC uses CV1-4, a single gate output
    • #define DRUM_TRIGGER_OUTS uses TRIG and CLK to trigger drums Beaks (Peaks)
// V/OCT LSB for DAC
// ER-VCO-03 characteristics
//  PITCH ADJ knob roughly centered
//  0V = 93.08 Hz (roughly F2)
//  1V = 179 Hz (G3)
//  1.52V = 261 Hz (C4)
//  2V = 365 Hz (G4)
//  3V = 722 Hz (G5)
//  4V = 1.45 KHz (G6)
//  5V = 3.05 KHz (G7)
// Max output voltage of this card is 4.096V (4 octaves)
//  1mV per DAC count
// 12 notes per octave = 1/12V per note = 83.333 mV
// Steps are in 83.333 mV
// Table counts up by integer steps - rounded 83.333 mV

Drum Controller Application

  • Use TRIG and GATE output jacks to drive Beaks in Drum mode
  • Re-label Gate as TRIG 2 on Front Panel
  • Using USB MIDI as MIDI source
  • Using keyboard as MIDI source
  • Uses 2 ER-MIDI-CV4-02 card sets
    • One ER-MIDI-CV4-02 card set to listen on MIDI Channel 1
    • Second ER-MIDI-CV4-02 card set to listen to Drums on Channel 10
  • GM 1 Sound Set

Drum Controller Build notes

  • Do not populate D/A converter
  • Do not populate CV jacks
  • Do not populate related discrete parts

3D Views

  • Controls card side view

ER-MIDI-CV4-02 CTLS SIDE-3D.png

  • Processing card side view

ER-MIDI-CV4-02 DB SIDE 3D.png

Videos

  • HAGIWO MIDI to CV module

  • Midi2CV - A utility module for converting MIDI messages to CV] Benjie Jiao - DIY Modular Synth Project_

Issues

ER-MIDI-CV4-02 P1080869-720px.jpg

Rev 2

  • Daughtercard
    • Fixed missing connection D14 anode to GND
    • Moved R1 down a bit
    • Haven't ordered yet (2022-12-04)

Rev 1

  • Daughtercard
    • Missing connection D14 anode to GND
      • Add wire D14-Anode to D9-Anode
    • R1 is close to Arduino socket (fit OK, but tight)

Assembly Sheet