Reverse engineering to learn the core concepts

Hello forum,

This is my first post here and I look forward to going on this journey with you all! I am an entertainment lighting and video technician, some may call me a roadie, and also an electronic engineering student taking online courses.

I am trying to reverse engineer a feature in lighting fixtures called a Color Wheel. Colored piece of glass are put in slots, the wheel is driven by a DC step motor. It uses a magnet and a Hall Sensor to detect positioning, I am assuming this.

My goal is to build a program to ask for user input for a "slot number", once input is received the step motor moves the wheel to the required slot. I am using a hall sensor and an arduino mega board. I am working on a flow chart of what I think the software should look like. I have also attached some info about how the color wheel is used.

I am looking to the community for guidance to concepts to try to focus around. Thank you in advance!

Screen Shot 2020-01-13 at 3.33.50 PM.png|2560x1600

The DMX values in your flow chart show the positions of the color wheel.

I guess that these DMX values are outputs of the hall sensor. I am not familiar with hall sensors but I guess the output is analog. The Mega board has several ADCs to measure analog voltages.

So it is easy to control the stepper motor until the expected DMX value (analog value) is reached. For control of stepper motors there is a library in the Arduino IDE.

For user inputs the simpliest way is using the Serial Monitor. If you want to have a graphical input then you can use a small display with touch feature. There are libraries for this too.


Are you trying to replicate the MAC700 colour wheel hardware (controlled by DMX) or replicate the lighting desk profile to control an existing MAC700 with an Arduino + DMX shield?