Difference between revisions of "ER-MIDI-CV4-02"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
(88 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[FILE:ER | + | [[File:tindie-mediums.png|link=https://www.tindie.com/products/28969/]] |
+ | |||
+ | [[FILE:ER-MIDI-CV4-02_P1080867-720px.jpg]] | ||
== Features == | == Features == | ||
* Eurorack 6HP, 3U module | * Eurorack 6HP, 3U module | ||
− | |||
− | |||
− | |||
− | |||
− | |||
* Three card stack-up | * Three card stack-up | ||
** Front Panel card | ** Front Panel card | ||
** Controls card | ** Controls card | ||
− | *** | + | *** 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- | + | * (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 27: | Line 27: | ||
* GATE output (0-5V) | * GATE output (0-5V) | ||
* CLK output (0-5V) | * CLK output (0-5V) | ||
− | * Standard Eurorack | + | * TRIG output (0-5V) |
+ | * Standard Eurorack 10 pin power header | ||
+ | |||
+ | === Credits === | ||
+ | |||
+ | * Adapted from [https://note.com/solder_state/n/n17e028497eba HAGIWO's MIDI to CV module] | ||
+ | ** Translate from Japanese to English using browser | ||
+ | ** Has 4 Analog Outputs instead of 2 | ||
+ | ** Arduino Pro Mini instead of Arduino NANO | ||
+ | * Based also on [[SYNTH-MIDI-CTL-01]] | ||
=== Arduino Pins === | === Arduino Pins === | ||
Line 41: | 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 == | ||
− | + | === 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 54: | 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 72: | 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 83: | 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 95: | 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 102: | Line 138: | ||
==== J6 - MIDI OUT/THRU Select ==== | ==== J6 - MIDI OUT/THRU Select ==== | ||
+ | |||
+ | [[FILE:ER-MIDI-CV4-02_DB_J6.PNG]] | ||
* 1-2 = MIDI Thru | * 1-2 = MIDI Thru | ||
* 2-3 = MIDI out from Arduino TX | * 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 | ||
+ | |||
+ | [[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 | ||
− | * Use with [[ER-VCO-03]] to control pitch and Mod | + | === 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 | + | * 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] | ||
+ | |||
+ | ==== Drum Controller Build notes ==== | ||
− | * | + | * Do not populate D/A converter |
− | * | + | * Do not populate CV jacks |
− | * | + | * Do not populate related discrete parts |
== 3D Views == | == 3D Views == | ||
Line 138: | 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
Contents
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
- 4 octaves
- MCP4822 12-bit D/A - SPI Interface
- D/A has built in output opamps, set gain to 2X
- Outputs may only swing 2x 2.048V or 4.096V (4 octaves)
- GATE output (0-5V)
- CLK output (0-5V)
- TRIG output (0-5V)
- Standard Eurorack 10 pin power header
Credits
- Adapted from HAGIWO's MIDI to CV module
- Translate from Japanese to English using browser
- Has 4 Analog Outputs instead of 2
- Arduino Pro Mini instead of Arduino NANO
- Based also on SYNTH-MIDI-CTL-01
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
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
- BLK
- GND
- VCC
- RX
- TX
- GRN
Connectors
Processing Card Connectors
J1 - Eurorack Power
- 2x5 IDC connector
- Only uses +12V (and GND)
- Diode polarity protected, series resistor
J2 - CVs, GATE, CLK (to/from Controls card)
- J12 on Controls card
- Pinout
- VCC (+5V)
- GATE
- CLK
- CV4
- CV2
- POT
- CV1
- CV3
- TRIGGER
- GND
J3 - I2C
- Pinout
- SCL
- SDA
- VCC (+5V)
- GND
J4 - MIDI (to/from Controls card)
- J9 on Controls card
- Pinout
- VCC (+5V)
- MIDI Out
- MIDI In
- GND
J5 - MIDI into RX
- Remove to use MIDI from Controls card
J6 - MIDI OUT/THRU Select
- 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
MIDI TRS A
- From minimidi.world
- DIN
- TRS A
J9 - MIDI Out
- MIDI Output
- TRS Type A
J10 - CVs, GATE, CLK, TRIG
J11 - MIDI
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
- 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
- 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_2 = MOD
- Use GATE output into ER-ADSR-555-01 output of ADSR to MOD input of ER-VCA2-01 to control amplitude
- Arduino MIDI Library
- MIDI Notes
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
- 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
- ER-USB-MIDI through ER-MIDI-THRU into MIDI In on this card
- 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
- 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
- Processing card side view
Videos
- HAGIWO MIDI to CV module
- Midi2CV - A utility module for converting MIDI messages to CV] Benjie Jiao - DIY Modular Synth Project_
Issues
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)
- Missing connection D14 anode to GND