Stacked encoder

The idea of the stacked encoder comes from Serkan from Soelpec. The Spectra XR steering wheel runs a custom DDC firmware, and amongst the functions designed for Soelpec's wheel is the stacked encoders. The function allows you to use a pushbutton to scroll through a stack of button number layers. How many layers you can decide yourself.

Soelpec Spectra XR uses stacked encoders for its thumb rotaries

The function will also push the current stack number to the rotary field, which in return will give you SimHub properties that you can use to make your dashboard change as you scroll through the stack. With more layers, more bits are used in the field. For instance 7 layers will use 3 bits, since 3 bits are required to get type the number 7 in binary.

In addition, there is a LED function encoderStack() that you can use to trigger LEDs depending on which stack you're currently in.

For instance, lets say we have a stacked encoder with its stack button on row 3, column 1. We want LEDs 0 to 4 to change color when scrolling through the stack. Writing something like this in 36_LEDtop.ino would work well:

triggerLED(0,4,encoderStack(3,1,0),0x00FF00,25,false);
triggerLED(0,4,encoderStack(3,1,1),0xFF8000,25,false);
triggerLED(0,4,encoderStack(3,1,2),0x08FFA5,25,false);
triggerLED(0,4,encoderStack(3,1,3),0x0000FF,25,false);

rotary2Stack()

Stacked encoder in the rotary2bit category.

rotary4Stack()

Stacked encoder in the rotary4bit category.

PEC11Stack()

Stacked encoder in the PEC11 category.

funkyRotaryStack()

Stacked encoder in the funkyRotary category. This is for using a regular pushbutton to change layer, not the funky pushbutton.

funkyRotaryStackPush()

Stacked encoder in the funkyRotary category. This is for using the funky pushbutton.

Last updated