Custom Lighting Console (On Going)

2025

Intro

15/02/2025 (last edited: 15/02/2025)

This project is the result of my pursuit of a lighting console that has all the features I'm looking for while remaining affordable. Funnily enough, I know what "affordable" means for me right now, but I don’t actually know what features I want. I might end up buying a console only to realize later that it doesn’t fit my needs.

Since I don’t currently have access to equipment I can test, building my own console—where I can tinker and discover what I like-seems both like a bad idea and a fun hands-on project!

Here are my goals for this project:

Building a functional and reliable console with plug-and-play features (no extra software, just MA2).

Possibly adding extra fancy features, such as motorized faders and LEDs that respond to MA2 input through macros and Lua scripting.

Image 1

Patch Note 1.01 - Arduino and grandM2 Comunication

15/02/2025 (last edited: 15/02/2025)

This might be one of the most important steps in making this console work without requiring any extra software to run on the host computer. Some Arduino boards, such as the Arduino Micro and Arduino Leonardo, can emulate a MIDI device thanks to their ATmega32U4 chip.

I decided to go with the Arduino Micro due to its smaller size.

With this setup, grandMA2 onPC successfully detects the Arduino as a MIDI device and is ready to receive MIDI notes from it. Plug and play just like originaly planned!

Direction Update

16/02/2025 (last edited: 16/02/2025)

I’m questioning the use case of this lighting console. If I have an MA2 console to work with, I wouldn’t use it. I can use it with a computer, but my screen isn’t tactile, and I don’t plan on getting one. That means the console would be useless unless I design it to be fully independent of any touch-screen input. Features like color selection must be fully implemented within the console itself.

With this observation, the project has evolved into a much more complex problem-solving challenge.

Going forward, keep in mind that I’m building this console for concert settings, so I will design it specifically to facilitate that environment.

Patch Note 2.01 - Color

16/02/2025 (last edited: 17/02/2025)

Well, implementing controls for all a fixture’s features is going to be crazy. So let’s start simple! (jk)

Color might be a great opportunity to design an entirely new system. By applying color theory, I can minimize the space this parameter occupies while keeping it efficient. My idea is to use one button and two knobs to control four simultaneous color selections.

Again, keep in mind that this is for concert use, so the main priority is an efficient way to select colors that complement each other well.

I'm going to label the button "Mode" and the two knobs "Direction" and "Spread," respectively. The "Mode" button will switch between preprogrammed modes. So far, I’ve thought of two.

Color Mode 1

All these "Modes" will produce four colors.

In Mode 1, the Direction knob controls colors A and B simultaneously. A and B are always polar opposites on the color wheel, for example if A is red (255,0,0) B will be cyan (0,255,255). Colors C and D will copy B, cyan, but the Spread knob will adjust their positions by mirroring from B.

This system allows for quick selection of four colors that follow color theory principles, ensuring aesthetically pleasing looks for concerts.

Color Mode 2

Just like in Mode 1 in Mode 2, the Direction knob controls colors A and B simultaneously. A and B are always polar opposites on the color wheel. Colors C will copy A and D will copy B and the Spread knob will adjust their positions by sliding them clock wise in the color wheel.

Image 1

Patch Note 2.02 - Color

17/02/2025 (last edited: 17/02/2025)

I have been testing this method with some faders instead of knobs. It works pretty well, and I can use the Arduino to efficiently calculate the colors of A, B, C, and D. However, now I need to decide how to send this data to ONPC MA2. Since this communication happens through MIDI, I need to determine how much data I can push out at a time, as this will define how complex this feature can be.

Before moving forward, it’s important to note that alongside these two knobs and a button, there will also be four buttons representing colors A, B, C, and D. There will be additional buttons for white, amber, and UV light, but they are not relevant at this stage.

In MA2, heavy use of presets are the backbone of the software, but I'm are diverging from the traditional approach slightly. With this method, at any given time, we will only have four color presets (Color A, B, C, and D).

Foreseen utility without Midi limitations:

Efficient and quick selection of color combinations without worrying about less optimal color palettes.

Ability to create a color palette using any color in the RGB spectrum, no longer limited to primary and secondary colors.

Smooth live color palette transitions mid-song without blackouts, undesirable color combinations, or confusion.

Simplicity in live operation, making it easy to use in real-time performances.

No pre-setup required. Color presets can be created on the fly without prior programming.

Patch Note 1.02 - Arduino and grandM2 Comunication

18/02/2025 (last edited: 18/02/2025)

I've been using MIDI to communicate between an Arduino and GrandMA2, but we've hit a limitation: MIDI can only trigger buttons, commands, and hardkeys, while note velocity is restricted to controlling faders. This makes transmitting RGB values inefficient, unreliable, and resource-intensive.

OSC seems like a better alternative, but it requires Wi-Fi or Ethernet, which presents challenges. I prefer to avoid Wi-Fi, and the Ethernet port is already in use for the MA2 node. One option is to create a middleman program to convert MIDI to OSC, or alternatively, switch entirely to OSC communication.

30 minutes later, I’ve confirmed that GrandMA2 onPC does not support OSC. I explored using an Arduino Micro as a keyboard emulator to quickly input commands into MA2, but that turned out to be inefficient and impractical.

Back to MIDI! With a combination of macros and Lua scripting, I'll attempt to read fader values and perform the necessary calculations. Most of the code is already written for Arduino. I just need to translate it!

Patch Note 1.03 - Arduino and grandM2 Comunication

19/02/2025 (last edited: 19/02/2025)

The method I recently mentioned is also a bust. I haven’t found an easy way to read fader values through Lua. I'm running out of options, and this project is becoming nearly impossible with the knowledge I have now.

However, I’ve thought of something else. Two physical faders in the Arduino would calculate the previously mentioned Colors A, B, C, and D and then map their RGB values to 12 faders. Using the group selection in MA2, I could write a macro or Lua script to add and remove fixtures from these executors to control the color for each fixture group. I got that part sort of working, but this will only move forward if I'm able to create presets using only the fader values.

Direction Update

20/02/2025 (last edited: 20/02/2025)

I’m planning to focus on different sections of the project to create small prototypes, test them in the field, refine them, and then gradually integrate everything. Once each part is working well individually, I’ll transition to a full-fledged lighting console.

Patch Note 1.04 - Arduino and grandM2 Comunication

20/02/2025 (last edited: 20/02/2025)

Success! I managed to save RGB values using fader data by assigning them to a dummy fixture and storing its output as a universal color preset. Now, any RGB fixture can use it! The possibilities are incredible—effect color references, automatic cue color updates, live color monitoring without affecting active fixtures, and seamless palette transitions. It’s exactly what was outlined in patch note 2.02! There are still some bugs to fix, and adding a manual update option could help reduce system load since there's a lot of constant data flow. Overall, I’m really happy with how this turned out!

This little previous test gave a bit of insight of the possibilities of dummy fixtures. If i can get the values from a dummy fixture controled by a fader I can pass the RGB arduino logic to lua code. Saving in Midi Remote Setup time from 12 to olny 2 fader inputs!

Yeah... I don't think it's possible... But here is the set up working!

Notes for Future Me

15/02/2025 (last edited: 15/02/2025)

Understand Midi protocol for Ma2 for both input and output in conjuction with arduino code.

Power Supply Limitations.

Build quality for eletronics and usability study.

When to invest more money.

in color selection remmember there is Amber, White, UV and other to consider and color wheel instead of RGB

midi notes velocity oly mappable to faders = big issue