Introduction: Arduino MIDI DAW Controller - Crius TRX Control V1.0
Hi!
I am Crius and I LOVE MIDI Controllers!
The last couple of years I started learning about electronics from nothing to be able to build my own MIDI controllers that would serve my needs , taste and be cheaper overall in comparison with the branded products.
The Crius “TRX Control” MIDI DAW Controller consists of :
- 16 Rotary Encoders
- 40 buttons
- 4 OLED Displays
- 1 5-Way Switch Joystck
- and 1 Linear Fader
with which we can Control and View LiveALL the BASIC parameters of the Digital Audio Workstation we play or record music with such as :
- TRACK VOLUME (for 8 Tracks + Master Volume)
- PAN (for 8 Tracks)
- MUTE (for 8 Tracks)
- SOLO (for 8 Tracks)
- REC ARM (for 8 Tracks)
- PLAY
- STOP
- RECORD
- Fast Forward
- Rewind
- Punch In/Punch Out
- LOOP
- ect....
and the best feature is that it is AUTO MAPPED which means that we DON'T need to Assign Anything Manually !!!
Supplies
HARDWARE COMPONENTS :
- Crius TRX Control v1.0 PCB x1
- Arduino DUE x1
- Rotary Encoders 20mm x16
- Push Buttons 12mm x25
- SSD1306 OLED Displays 7-pin SPI x4
- 5-way Switch Joystick x1
- 88mm Linear Fader 10kOhm x1
- Analog Multiplexer HC4067E x3
- A pice with 8 Leds from WS2812b Led Strip (60/m)
- 8 Pin Clamps 2.54 x6
- 5 Pin Clamps 2.54 x1
- 4 Pin Clamps 2.54 x4
- 3 Pin Clamps 2.54 x2
- IO Expander MCP23017 x2
- USB Extention 50cm Male to Female x1
- Flat connectors 2.8mm x50
- Crius TRX Control v1.0 3D Printed Case x1
- Encoder Knobs x16
- Fader Cap x1
- M3 10mm Screws x15
- Lots of wires Preferably Colored to color code the connections and in Spools to cut in the desired length
TOOLS :
- Soldering Iron
- Solder
- Flux
- Cutter
- Tweezers
- wire stripper
I ordered my PCBs from PCBway by sending them the Gerber files from my PCB Design .
You can order them at PCBWay.com for good quality PCBs.
Step 1: Solder the Rotary Encoders
Simply place the encoders to the front of the PCB ,
turn the PCB around and solder the 5 pins for each of the 16 rotary encoders.
Step 2: Solder the Displays
Place the SSD1306 displays to the front of th PCB ,
turn the PCB around and solder the 7 pins for each of 4 displays.
Step 3: Solder the Joystick
Now in order to place the joystick on the PCB we need to desolder the pins that are already attached.
A third hand would be handy for this purpose.
Then we can solder 8 straight pins to the joystick.
Place the joystick to the front of the PCB ,turn around the PCB and solder the 8 pins.
Step 4: Solder the MCP23027
Lets place the 2 MCP23017 chips on the front side of the PCB but pay ATTENTION to the arrangement so the "notch" of the chip to match the white dot at the left on the PCB!!
Turn arround the PCB and solder the pins.
Step 5: Solder the HC4067E Multiplexers
Place the HC4067E analog multiplexers on the front side of the PCB and once again pay ATTENTION to match the notch of the multiplexers with the design on the PCB!
Flip the PCB around and solder the pins at the back side.
Step 6: Solder the Clamps
Place the Clamps on the back side of the PCB ,
turnd around the PCB and solder the pins at the front of the PCB.
Step 7:
Place the Led Strip at the front of the PCB centered (compared with the rotary encoders above) with the wires placed at the left so we can cable manage the easily when we put it together with the 3D printed case.
Step 8: Assembling the Case
Step 9: Fader
Lets fit the fader first.
Remember to put the 2 pins on the top and the single pin of the fader at the bottom.
Screw 2 M3 screws on the top side of the case to secure the fader in place.
Step 10: Buttons
Now lets place the buttons and tighten the nuts from the inside to keep them firmly in place.
Also we need to tighten the nuts in the front for the rotary encoders and place the knobs for the fader and the encoders.
Step 11: Insert the PCB to Th Case
Slide the PCB inside the case and screw it in place.
Step 12: Prepare the Buttons Cables
Now we have to measure the cable for each of the 24 buttons from the buutton pin to the correct pcb clamp and cut it to the right size.
Then we will solder one flat socket to the one side of each cable we cut.
Optionally we can add some heat tube for insulation.
Step 13: Putting Things Together
Now that we have prepared all the wires that we need , we will start connecting
the Arduino DUE with the Crius TRX Control v1.0 PCB according to this schematics that I madewith Fritzing.
Step 14: Buttons Ground Wiring
We must measure and cut wires to connect and solder 1 pin for each button to the GND pin on thte PCB Clamp like I have done above.
Step 15: PCB Fixes
Double check to the PCB Fixes:
A)Solder a wire to the GND pin of a Rotary Encoder of the bottom row and connect it to the Arduino GND pin or to the PCB GND.
B)Solder a wire to the INTA pin of the bottom MCP23017 Chip and connect it to the D5 pin of the Arduino.
Step 16: Reset Button
Finally we have to open a hole to the case to fit one more button.
1 pin of the button goes to GND and the other one goes to the RESET pin of the Arduino.
Now we can place the bottom part of the case and screw it in place.
Step 17: USB Extention Cable
Remeber to fit and screw the micro USB Extention to the gap in the case and connect it to the Primary USB Port of the Arduino DUE.
Step 18: DONE
The building is DONE!
I hope you enjoyed the process!
Have fun!
Step 19: Code
1.First to upload the code you need to have installed the Arduino IDE to your system.
You can download it free ftom the Arduino website.
2.We need to nstall the Control Surface Library for the code to compile.
We can download it from the Github and install it to the Arduino IDE from the "Add .Zip Library" Menu.
3.We need to make a change to the "AnalogMultiplex.hpp" file that is strored at the Directory showin at the pictures above(that may be to a different Directory depending on where is the Control Surface library installed on your system).
Here you need to delete the "= NO_Pin" text at line 45 , save and close.
4.In order to upload the code to the Arduino DUE we need to Download the "DUE" Board for the Arduino DUE from the Boards Manager Menu of the Arduino IDE.
5.You will need to download the "Crius TRX Contol v1.0.ino" and open it with the Arduino IDE.
6.Since you have connected the Crius TRX Control v1.0 to your computer select from the "Board" meu the Arduino Due(Native USB Port)
7.Choose the "Arduino Due(Native USB Port)" from the "Port" menu
and hit UPLOAD !
Attachments
Step 20: Custom PCB Design
I choosed to design a custom PCB for this project so I can decrease the size and make it more dense and compact overall.
I used KiCad because its free while offers averything you need as a hobbyist designer like me.
I ordered the PCBs from the PCBWay PCB manufacturer for some quality PCBs.
Step 21: 3D Printed Case Design
I used Autodesk Fusion 360 to design the case because its free for personal use , easy to use and incudes some awsome features like to import a 3D PCB Design from KiCad in our case , so I can build the case around the PCB which make the whole construction feel more durable and professional.
Step 22: ABLETON Setup
Here the only thing we need to do is to connect the Crius TRX Control with our computer , open the Preferences menu and select from the MIDI tab :
- Conrol Surface - Mackie Control
- Input - Arduino DUE
- Output - Arduino DUE
We are READY to go!
Step 23: END
I hope you enjoyed the proccess and made one for your self!
You can find everything you need for this project INCLUDING INSTRUCTIONS IN ENGLISH to my website : www.criusdigitalstudio.com
You can find my projects and support me at the following social media and websites:
1.Crius Digital Studio Youtube Channel