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 :

  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.

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 !

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 :

  1. Conrol Surface - Mackie Control
  2. Input - Arduino DUE
  3. 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

2.Crius Digital Studio Thingiverse Profile

3.Crius Digital Studio Github Profile