Arduino MIDI DAW Controller - Crius TRX Control V1.0

by Crius Digital Studio in Circuits > Arduino

4692 Views, 83 Favorites, 0 Comments

Arduino MIDI DAW Controller - Crius TRX Control V1.0

Crius TRX Control v1.0 - DIY Arduino MIDI DAW Controller - ABLETON READY
FUNCTIONS 1_1.46.1.png

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 Live ALL 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

Untitled_1.22.1.png
Untitled_1.314.2.png
Untitled_1.314.3.png

HARDWARE COMPONENTS :

  1. Crius TRX Control v1.0 PCB x1
  2. Arduino DUE x1
  3. Rotary Encoders 20mm x16
  4. Push Buttons 12mm x25
  5. SSD1306 OLED Displays 7-pin SPI x4
  6. 5-way Switch Joystick x1
  7. 88mm Linear Fader 10kOhm x1
  8. Analog Multiplexer HC4067E x3
  9. A pice with 8 Leds from WS2812b Led Strip (60/m)
  10. 8 Pin Clamps 2.54 x6
  11. 5 Pin Clamps 2.54 x1
  12. 4 Pin Clamps 2.54 x4
  13. 3 Pin Clamps 2.54 x2
  14. IO Expander MCP23017 x2
  15. USB Extention 50cm Male to Female x1
  16. Flat connectors 2.8mm x50
  17. Crius TRX Control v1.0 3D Printed Case x1
  18. Encoder Knobs x16
  19. Fader Cap x1
  20. M3 10mm Screws x15
  21. Lots of wires Preferably Colored to color code the connections and in Spools to cut in the desired length

TOOLS :

  1. Soldering Iron
  2. Solder
  3. Flux
  4. Cutter
  5. Tweezers
  6. 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.

Solder the Rotary Encoders

7.png
8.png
9.png
10.png
5.png
6.png

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.

Solder the Displays

11.png
12.png
13.png
14.png
15.png

Place the SSD1306 displays to the front of th PCB ,

turn the PCB around and solder the 7 pins for each of 4 displays.

Solder the Joystick

16.png
17.png
18.png
19.png
20.png
21.png
22.png
23.png
24.png

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.

Solder the MCP23027

25.png
26.png
27.png
28.png
29.png
30.png

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.

Solder the HC4067E Multiplexers

32.png
33.png
34.png
35.png
36.png
37.png
38.png

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.

Solder the Clamps

Untitled_1.105.1.png
Untitled_1.106.1.png
Untitled_1.113.1.png
Untitled_1.115.1.png
Untitled_1.120.1.png
Untitled_1.122.1.png
Untitled_1.127.1.png
Untitled_1.128.1.png
Untitled_1.124.1.png
Untitled_1.131.1.png

Place the Clamps on the back side of the PCB ,

turnd around the PCB and solder the pins at the front of the PCB.

54.png
55.png
56.png
57.png

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.

Assembling the Case

Untitled_1.149.1.png

Fader

58.png
59.png
61.png
62.png
63.png

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.


Buttons

64.png
65.png
66.png
75.png
76.png
77.png
78.png

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.

Insert the PCB to Th Case

68.png
69.png
70.png
71.png
72.png
73.png
74.png

Slide the PCB inside the case and screw it in place.

Prepare the Buttons Cables

82.png
83.png
84.png
79.png
85.png
86.png
87.png
88.png
89.png

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.

Putting Things Together

CRIUS TRX Contol PCB FRITZING IMAGE.png

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.

Buttons Ground Wiring

90.png
91.png
92.png
93.png

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.


PCB Fixes

PCB Fixes IMAGE 2.png
PCB Fixes IMAGE 1.png

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.

Reset Button

96_1.293.1.png
97_1.301.1.png

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.

USB Extention Cable

101_1.280.1.png
102_1.282.1.png
103_1.285.1.png

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.

DONE

99_1.309.2.png
98_1.309.1.png

The building is DONE!

I hope you enjoyed the process!

Have fun!

Code

CODE 1_1.36.1.png
CODE 2_1.36.2.png
CODE 3_1.36.3.png
CODE 4.png
CODE 5_1.36.6.png
CODE 7_1.36.10.png
CODE 8_1.36.12.png
CODE 10_1.36.16.png
CODE 6_1.36.8.png
CODE 11_1.36.18.png

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 !

Custom PCB Design

53.png
52.png
CRIUS TRX Contol PCB IMAGE.png
Crius TRX Controlv1.0 PCB.PNG

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.

3D Printed Case Design

Case 1_1.42.1.png
Case 3_1.43.2.png
Case 2_1.42.3.png

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.

ABLETON Setup

ABLETON 1_1.45.1.png
ABLETON  2_1.45.2.png

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 :

  1. Conrol Surface - Mackie Control
  2. Input - Arduino DUE
  3. Output - Arduino DUE

We are READY to go!

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

2.Crius Digital Studio Thingiverse Profile

3.Crius Digital Studio Github Profile