IRIS HX4: a 4x MIDI Controller/Switcher for the HX Stomp
63 Views, 0 Favorites, 0 Comments
IRIS HX4: a 4x MIDI Controller/Switcher for the HX Stomp
I wanted to design a MIDI controller using an Arduino as an cheaper, modular and more configurable unit. This controller is designed to send custom configurable MIDI Control Change (CC) and Program Change (PC) messages to the Line 6 HX Stomp. Each footswitch can toggle effects on/off, change parameters, switch between presets, active tuner, or navigate pages of commands, with the OLED displays showing the current page and active functions.
In this build I have included 4 footswitches but the design is easily expandable with some minor change to code and screen display design. Currently, the controls are fixed in the code and you will need to manually alter these in the .ino to change the functionality. This walkthrough assumes basic knowledge of Arduino code and assembly of electronics.
Details on the code are available on: https://github.com/al5668/iris-hx4-midiswitcher
Supplies
Electronics:
- 2x SSD1306 OLED Screens
- 1x Arduino Nano Every
- 4x SPST Footswitches
- 1x MIDI DIN 5 Plug
- 1x 2.5mm DC Panel Mounted Power Socket
- 1x 220Ω Resistor
- Single Core Wiring
- Stripboard
Mechanical:
- 1x Aluminium Enclosure (Hammond 1590, 90mm x 90mm)
- 3D printed faceplate for two screens (https://makerworld.com/en/models/1934949-ssd1306-dual-faceplate)
Software:
- GitHub Repo: https://github.com/al5668/iris-hx4-midiswitcher
- Arduino IDE
Prepare Enclosure
In preparation for assembly we need to ensure that we can house the system in an enclosure. I have opted for a Hammond 90mm x 90mm aluminium enclosure and, using a stepper bit and files, I was able to create a square opening for the screen faceplate. Note that the diagram is not to scale and is intended as a guide - frankly you can 3d print an enclosure if you like!
Prepare Arudino Circuit
As the diagram highlights, solder the Arduino Nano Every Board, Switches onto the stripboard following the layout. The MIDI switch and After placing the components, add the wire links and resistor, cut any necessary stripboard tracks underneath, and verify all continuity so the switches, MIDI output, and power rails match the illustrated circuit. Here, I have only include switches for digital pins D2-D5 but if one could easily include more switches if needed.
Prepare OLED Screen Faceplate
In order to conveniently align the OLED screens in place - I made a 3D printed faceplate to accommodate the two OLED screens. The link to print this is available here: https://makerworld.com/en/models/1934949-ssd1306-dual-faceplate
The OLED screens should have a through hole which will line up with the pins of the faceplate. This is a push-fit connection which can be bonded in place. Additionally, I have attached a piece of electric tape (pictured) just to ensure there is no residual conductivity and the pins won't short.
Assemble Screen
Ensure that the underside of the 3D printed faceplate is glued to the ensure as pictured. Using stripboard, and jumper cables, solder both OLED screens to strip board to ensure a common SDA, SCL, Vin and Ground cables. Use the image above as reference to make sure each wire connects to the same rows and tracks shown.
Additional notes: I was able to run two OLED screens from the same SDA/SCL wires (see circuit diagram from previous step) since SSD1306 OLED screens typically have two i2C addresses. In my case I was able to re-solder the jumper resistor on the back of one of the screens to change the i2C address to 0x3C. I recommend looking at this article for help here: https://bitbanksoftware.blogspot.com/2019/01/controlling-lots-of-oled-displays-with.html
Prepare MIDI and DC Plug Wiring
Ensure that the MIDI DIN 5 Plug is solder as dictated by the circuit diagram with the inclusion of a 220Ω Resistor to ensure the controller does not overcurrent the HX stomp. Furthermore, wire the DC plug to the Vin and ground of the Arduino Every Board. Mount both the MIDI and DC plug into the enclosure.
Final Assembly
Upload the code via the Arduino IDE and GitHub repository provided, ensuring that you name the correct COM port during the upload. I have provided a final gut-shot of the electronics to give an idea of how much available space there is in this enclosure.