[TI] Final – DMX Light Controller : The Programmable Tactile Dial [1/2] Progress

I plan to build a dial that is able to control multi-factors such as brightness, colors, and wheel. I came up this idea with an old telephone dial and I wonder how one dial can control multiple tasks.

Technically, I was planning to build a programmable tactile dial. So it can transform the tactile effects and clicking points depends on what it will controls. For example, if there are 5 steps to control, then it will have 5 points that the user can feel each point. I will use a haptic motor with the motor drive.


I needed to set up capacitive parts and haptic motor on the dial, I need a slip ring to prevent twisting wires. So I used timing belt and



1 x rotary encoder (I tested a small rotary encoder but it already has tactile feels when it turns. So I used 600p/r rotary encoder just because it is smoother. I think it is important not to have any tactile feel from mechanical parts.)

And, if I have a rotary encoder with center hole, it would be much simpler for fabricating.

Aaron’s Sensor Report

1 x slip ring

1 x MKR1000

1 x RGB led ring

1 x haptic motor

1 x haptic motor drive

1 x capacitive sensor


Arduino Code
  • DMX Ethernet

Here is Simple DMX + MKR1000 example code (from sACN_intro.ino / https://github.com/tigoe/sACNSource) with a push button that I tested so far.

  • Haptic motor

I tested a haptic motor with the driver code from Adafruit site. It works very well and simple.

  • Quadrature rotary encoder

For my quadrature rotary encoder, I used Encoder.h library and connected to interrupt pins. Compared to the normal rotary encoder, it was very sensitive and fast.


  • capacitive sensor 






Leave a Reply

Your email address will not be published.