understanding how to configure LEDrings

from main.asm

;; used by lc_ledrings.inc

LEDRINGS_SR_CATHODES      EQU      8      ; shift register with cathodes of the 8 LED rings

LEDRINGS_SR_ANODES_1      EQU      10      ; first shift register with anodes of the 8 LED rings

LEDRINGS_SR_ANODES_2      EQU      11      ; second shift register with anodes of the 8 LED rings

I assume I won’t have to change these numbers?

from lc_io_table

LC_IO_TABLE_LAYER0

     ;; 1st shift register

     ;;      button                  LED

     db      ID_REC_RDY_CHN1,      ID_REC_RDY_CHN1

     db      ID_REC_RDY_CHN2,      ID_REC_RDY_CHN2

     db      ID_REC_RDY_CHN3,      ID_REC_RDY_CHN3

     db      ID_REC_RDY_CHN4,      ID_REC_RDY_CHN4

     db      ID_REC_RDY_CHN5,      ID_REC_RDY_CHN5

     db      ID_REC_RDY_CHN6,      ID_REC_RDY_CHN6

     db      ID_REC_RDY_CHN7,      ID_REC_RDY_CHN7

     db      ID_REC_RDY_CHN8,      ID_REC_RDY_CHN8

     ;; 2nd shift register

     ;;      button                  LED

     db      ID_SOLO_CHN1,            ID_SOLO_CHN1

     db      ID_SOLO_CHN2,            ID_SOLO_CHN2

     db      ID_SOLO_CHN3,            ID_SOLO_CHN3

     db      ID_SOLO_CHN4,            ID_SOLO_CHN4

     db      ID_SOLO_CHN5,            ID_SOLO_CHN5

     db      ID_SOLO_CHN6,            ID_SOLO_CHN6

     db      ID_SOLO_CHN7,            ID_SOLO_CHN7

     db      ID_SOLO_CHN8,            ID_SOLO_CHN8

     ;; 3rd shift register

     ;;      button                  LED

     db      ID_MUTE_CHN1,            ID_MUTE_CHN1

     db      ID_MUTE_CHN2,            ID_MUTE_CHN2

     db      ID_MUTE_CHN3,            ID_MUTE_CHN3

     db      ID_MUTE_CHN4,            ID_MUTE_CHN4

     db      ID_MUTE_CHN5,            ID_MUTE_CHN5

     db      ID_MUTE_CHN6,            ID_MUTE_CHN6

     db      ID_MUTE_CHN7,            ID_MUTE_CHN7

     db      ID_MUTE_CHN8,            ID_MUTE_CHN8

     ;; 4th shift register

     ;;      button                  LED

     db      ID_SELECT_CHN1,            ID_SELECT_CHN1

     db      ID_SELECT_CHN2,            ID_SELECT_CHN2

     db      ID_SELECT_CHN3,            ID_SELECT_CHN3

     db      ID_SELECT_CHN4,            ID_SELECT_CHN4

     db      ID_SELECT_CHN5,            ID_SELECT_CHN5

     db      ID_SELECT_CHN6,            ID_SELECT_CHN6

     db      ID_SELECT_CHN7,            ID_SELECT_CHN7

     db      ID_SELECT_CHN8,            ID_SELECT_CHN8

     ;; 5th shift register

     ;;      button                  LED

     db      ID_ASSIGN_TRACK,      ID_ASSIGN_TRACK

     db      ID_ASSIGN_SEND,            ID_ASSIGN_SEND

     db      ID_ASSIGN_PAN_SURROUND,      ID_ASSIGN_PAN_SURROUND

     db      ID_ASSIGN_PLUG_IN,      ID_ASSIGN_PLUG_IN

     db      ID_ASSIGN_EQ,            ID_ASSIGN_EQ

     db      ID_ASSIGN_INSTRUMENT,      ID_ASSIGN_INSTRUMENT

     db      ID_BANK_LEFT,            ID_IGNORE            ; (no LED supported by host)

     db      ID_BANK_RIGHT,            ID_IGNORE            ; (no LED supported by host)

     ;; 6th shift register

     ;;      button                  LED

     db      ID_BANK_CHANNEL_LEFT,      ID_IGNORE            ; (no LED supported by host)

     db      ID_BANK_CHANNEL_RIGHT,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FLIP,            ID_FLIP

     db      ID_GLOBAL_VIEW,            ID_GLOBAL_VIEW

     db      ID_SHIFT,            ID_IGNORE            ; (no LED supported by host)

     db      ID_OPTION,            ID_IGNORE            ; (no LED supported by host)

     db      ID_CONTROL,            ID_IGNORE            ; (no LED supported by host)

     db      ID_CMD_ALT,            ID_IGNORE            ; (no LED supported by host)

     ;; 7th shift register

     ;;      button                  LED

     db      ID_MARKER,            ID_MARKER

     db      ID_NUDGE,            ID_NUDGE

     db      ID_CYCLE,            ID_CYCLE

     db      ID_DROP,            ID_DROP

     db      ID_REPLACE,            ID_REPLACE

     db      ID_CLICK,            ID_CLICK

     db      ID_REWIND,            ID_REWIND

     db      ID_FAST_FWD,            ID_FAST_FWD

     ;; 8th shift register

     ;;      button                  LED

     db      ID_STOP,            ID_STOP

     db      ID_PLAY,            ID_PLAY

     db      ID_RECORD,            ID_RECORD

     db      ID_CURSOR_UP,            ID_IGNORE            ; (no LED supported by host)

     db      ID_CURSOR_LEFT,            ID_IGNORE            ; (no LED supported by host)

     db      ID_ZOOM,            ID_ZOOM

     db      ID_CURSOR_RIGHT,      ID_IGNORE            ; (no LED supported by host)

     db      ID_CURSOR_DOWN,            ID_IGNORE            ; (no LED supported by host)

     ;; 9th shift register

     ;;      button                  LED

     db      ID_VPOT_SELECT_CHN1,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN2,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN3,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN4,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN5,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN6,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN7,      ID_IGNORE            ; (no LED supported by host)

     db      ID_VPOT_SELECT_CHN8,      ID_IGNORE            ; (no LED supported by host)

     ;; 10th shift register

     ;;      button                  LED

     db      ID_GLOBAL_TRACKS,      ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_INPUTS,      ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_AUDIO_TRCK,      ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_AUDIO_INSTR,      ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_AUX,            ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_BUSSES,      ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_OUTPUTS,      ID_IGNORE            ; (no LED supported by host)

     db      ID_GLOBAL_USER,            ID_IGNORE            ; (no LED supported by host)

     ;; 11th shift register

     ;;      button                  LED

     db      ID_AUTOM_READ_OFF,      ID_IGNORE            ; (in my setup no LEDs are connected here)

     db      ID_AUTOM_WRITE,            ID_IGNORE            ; (in my setup no LEDs are connected here)

     db      ID_AUTOM_TRIM,            ID_IGNORE            ; (in my setup no LEDs are connected here)

     db      ID_AUTOM_TOUCH,            ID_IGNORE            ; (in my setup no LEDs are connected here)

     db      ID_AUTOM_LATCH,            ID_IGNORE            ; (in my setup no LEDs are connected here)

     db      ID_UTIL_CANCEL,            ID_IGNORE            ; (no LED supported by host)

     db      ID_UTIL_ENTER,            ID_IGNORE            ; (no LED supported by host)

     db      ID_MBLC_HOLD_LAYER,      ID_IGNORE            ; (MIDIbox LC specific: switch to other layer when button (de)pressed)

     ;; 12th shift register

     ;;      button                  LED

     db      ID_F1,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F2,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F3,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F4,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F5,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F6,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F7,                  ID_IGNORE            ; (no LED supported by host)

     db      ID_F8,                  ID_IGNORE            ; (no LED supported by host)

     ;; 13th shift register

     ;;      button                  LED

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     ;; 14th shift register

     ;;      button                  LED

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     ;; 15th shift register

     ;;      button                  LED

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (in my setup encoders are connected here)

     db      ID_IGNORE,            ID_IGNORE            ; (spare pin in my setup)

     db      ID_IGNORE,            ID_IGNORE            ; (spare pin in my setup)

     db      ID_IGNORE,            ID_IGNORE            ; (spare pin in my setup)

     db      ID_IGNORE,            ID_IGNORE            ; (spare pin in my setup)

     db      ID_IGNORE,            ID_IGNORE            ; (spare pin in my setup)

     db      ID_IGNORE,            ID_IGNORE            ; (spare pin in my setup)

     ;; 16th shift register

     ;;      button                  LED

     db      ID_FADER_TOUCH_CHN1,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN2,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN3,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN4,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN5,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN6,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN7,      ID_IGNORE            ; (no LED supported by host)

     db      ID_FADER_TOUCH_CHN8,      ID_IGNORE            ; (no LED supported by host)

can someone tell me what I have to change here to get the LEDrings working?

from lc_io_table

LC_IO_TABLE_LAYER0

     ;; 1st shift register

     ;;      button                  LED

     db      ID_MBLC_SWITCH_LEDMETER1 ,      ID_REC_RDY_CHN1

     db      ID_REC_RDY_CHN2,      ID_REC_RDY_CHN2

     db      ID_REC_RDY_CHN3,      ID_REC_RDY_CHN3

     db      ID_REC_RDY_CHN4,      ID_REC_RDY_CHN4

     db      ID_REC_RDY_CHN5,      ID_REC_RDY_CHN5

     db      ID_REC_RDY_CHN6,      ID_REC_RDY_CHN6

     db      ID_REC_RDY_CHN7,      ID_REC_RDY_CHN7

     db      ID_REC_RDY_CHN8,      ID_REC_RDY_CHN8

if I modified it like this, would that mean that pin one on SR one would switch the LCD meter into a horizontal LEDring?

sorry to ask so many questions at once, thanks, from Steve

Hi Steve,

yes, the LEDRINGS_SR_* settings are used to define the position of the shift registers which are connected to the LED rings. In difference to lc_io_tables.inc the shift registers are counted from zero here!

See also this schematic:

http://www.ucapps.de/mbhp/mbhp_doutx4_lc_ledrings.pdf

it means that LEDRINGS_SR_CATHODES are located at the 9th SR, therefore number 8, and the anodes are located at SR 10 and 11.

SR 9 is reserved for seperate meters, but if you don’t plan to add them, you could either change the default settings or use this spare shift register for additional LED functions.

ID_MBLC_SWITCH_LEDMETER1 switches to the meter mode, but doesn’t switch back. So you have to assign at least one additional button to ID_MBLC_SWITCH_LEDMETER0

or use a single button with ID_MBLC_TOGGLE_LEDMETER for a toggle function, resp. ID_MBLC_HOLD_LEDMETER for a shift function

FAQMARKER

Best Regards, Thorsten.

T…

Just seen this new pdf and i’m a lil concered, i thought your able to place the meterbar LEDs anywhere on the dout chain - not just after the vpot rings…

My design has the meterleds rings on a sep core, which is also used for the forthcoming MTC digits aswell as a single pot for the maser fader…is this still okay?, as i thought it was from a q i posted a while bak…have i got my wires mixed up - so to speak…or is just an example setup uve posted?

Best…

Dan

Yes, you can place the meter LEDs anywhere - damned! thats the problem when the application allows too much options - how to answer a simple question with one sentence when so much variations are possible? :frowning: You see: under these circumstances the LC documentation will never be finished… :wink:

Best Regards, thorsten.

Thanks Thorsten!

I’m just wondering, why my encoders work properly, when in the 13th and 14th SR, it says “db ID_IGNORE,  ID_IGNORE  ; (in my setup encoders are connected here)”

and I never changed this before I built the main.HEX file?

in the standard lc application, will the ledrings work straight away without configuring, if I just connect them to the right shift registers?

if I connect the ledrings like in the pdf, will they work straight away, or will I have to assign the SR pins in the lc_IO_table? I am using mios 1.2, as the faders go erratic when I try 1.3 (they kind of don’t stop at the target position, they keep going!

Yes, you can place the meter LEDs anywhere - damned![

Your design is like Logic audio… too many options for beginners, but everything possible that an expert needs!

When I get time, I will make a step by step webpage on how to build the standard LC, with upgrade options and things… for beginners,  maybe with a modular frontpanel or something! Unless someone beats me to it!

Thanks Thorsten!

If someone else can help, could they please save Thorsten from all the typing? :wink:

don’t worry about answering this, (unless it is for others) cos I probably won’t fit Ledrings  :P

Hi Steve,

When I get time, I will make a step by step webpage on how to build the standard LC, with upgrade options and things… for beginners,  maybe with a modular frontpanel or something! Unless someone beats me to it!

this would be really helpfull! :slight_smile:

Some infos to LEDrings and encoder settings:

buttons are “shadowed” by the encoder pins. Means: once you’ve assigned two pins to an encoder in mios_tables.inc, these pins will not trigger a button function anymore, therefore the appr. button entries in lc_io_tables.inc will never be processed.

digital output pins are “shadowed” by LEDring assignments. Means: the shift registers for anodes/cathodes which are assigned to the LEDring handler cannot be used for common LED functions defined in lc_io_tables.inc, since the handler overwrite the values every milisecond

Best Regards, Thorsten.

FAQMARKER

:+)

thanks Thorsten! That was helpful!

ID_MBLC_SWITCH_LEDMETER1 switches to the meter mode, but doesn’t switch back. So you have to assign at least one additional button to ID_MBLC_SWITCH_LEDMETER0

or use a single button with ID_MBLC_TOGGLE_LEDMETER for a toggle function, resp. ID_MBLC_HOLD_LEDMETER for a shift function  

can these functions be used to switch the LCD meters into ledring bars on 40x2? (sick of soldering!)

-> ToDo List  :)

Best Regards, Thorsten.

;D