findbuddha Posted July 14, 2011 Report Share Posted July 14, 2011 I'm testing my Seq PCB prior to soldering all the LEDs in place, and I've noticed a strange issue. All the buttons work fine, unless more than 1 LED in the BLM8x8 column (select line, cathode - not sure of the correct terminology) is lit. Repeatedly pressing will occasionally get a 'hit'. It's completely reliable when <=1 LED is lit for the column. The PCB is of my own creation, based largely on Wilba's Seq PCB. Thanks :) :sorcerer: Quote Link to comment Share on other sites More sharing options...
gomiboy99 Posted July 14, 2011 Report Share Posted July 14, 2011 (edited) I too designed my own PCB for the control surface. It gave me a headache trying to work out the pin assignments for the switches and LEDs. I had to modify the Wilba.hw4 file to assign the correct din dout pins to my setup. Maybe this is the problem? If I load the wrong .hw4 file then nothing works as it should. It may also be one or more LEDs in the wrong way round. I did this too :( Tim.. Edited July 14, 2011 by gomiboy99 Quote Link to comment Share on other sites More sharing options...
TK. Posted July 14, 2011 Report Share Posted July 14, 2011 There is a nice debugging option in MBSEQ: if a certain DIN (SR/Pin) isn't assigned to any function, the sequencer will output the appr. SR and Pin number of the button in the MIOS Studio Terminal. So, just disable all button and encoder pin assignments in your MBSEQ_HW.V4 file (e.g. by adding a # before the definition). Thereafter reboot your MBSEQ and press the buttons... the MIOS Studio Terminal should give you the right numbers which then have to be entered into the MBSEQ_HW.V4 file This feature also allows you to troubleshoot your soldering work: if a button triggers multiple messages, you know that there is a soldering error between the button and DIN register. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
findbuddha Posted July 14, 2011 Author Report Share Posted July 14, 2011 Thanks both for your help. I suspect I have eliminated my previous configuration file errors, but the problem remains. When I try that debugging option I get the intended output for buttons that haven't been disabled by >1 LEDs, but no message comes in MIOS Terminal for the buttons disabled by the LEDs. Would this be symptomatic of switch diodes around the wrong way? As far as I can tell I've got it correctly, and I'd rather not start desoldering if that's not likely. :) Quote Link to comment Share on other sites More sharing options...
findbuddha Posted July 16, 2011 Author Report Share Posted July 16, 2011 I've done some testing on a breadboard, and confirmed/extended the results with my PCB. The shift registers are not on the control surface so this should be a valid test. I've attached an image of the circuits I tested. The circuits on the left worked as intended. The circuits on the right did not work. I don't get why it worked without a diode for the switch? (The numbers in the image are just for example, I have verified that my assignments seem to point to the correct LEDs and switches) Thanks :) And my config file: ################################################## # Setup File for Wilba's Frontpanel # $Id: MBSEQ_HW.V4 951 2010-03-07 17:49:12Z tk $ ################################################## ################################################## # MIDI Remote Keyboard Function ################################################## # The note number which activates the remote function # 96 = C-7 (by some MIDI monitors displayed as C-8) # 0 disables the remote keyboard function MIDI_REMOTE_KEY 96 # The CC number which activates the remote function # (e.g. to control it with a footswitch) # Allowed numbers: 1-127 for CC#1..CC#127 # 0 disables the function (default) MIDI_REMOTE_CC 0 ################################################## # Shift Register Setup ################################################## # number of first and second DOUT shift register used for GP LEDs GP_DOUT_L_SR 3 GP_DOUT_R_SR 4 # DOUTs for Dual Color option: GP_DOUT_L2_SR 0 GP_DOUT_R2_SR 0 ################################################## # Optional BLM Matrix ################################################## # set this value to 1 if each track has its own set of 16 LEDs to display unmuted steps and current sequencer position # or if you are using a button/led matrix for misc. button/LED functions BLM_ENABLED 1 # define the shift registers to which the anodes of these LEDs are connected # Note: they can be equal to GP_DOUT_[LH]_SR, this saves two shift registers, but doesn't allow a separate view of UI selections BLM_DOUT_L1_SR 0 BLM_DOUT_R1_SR 0 # define the shift register to which the cathodes of these LEDs are connected # Note that the whole shift register (8 pins) will be allocated! The 4 select lines are duplicated (4 for LED matrix, 4 for button matrix) # The second DOUT_CATHODES2 selection is optional if LEDs with high power consumption are used - set this to 0 if not used BLM_DOUT_CATHODES_SR1 0 BLM_DOUT_CATHODES_SR2 0 # set an inversion mask for the DOUT shift registers if sink drivers (transistors) # have been added to the cathode lines # Settings: 0x00 - no sink drivers # 0xf0 - sink drivers connected to D0..D3 # 0x0f - sink drivers connected to D7..D4 BLM_DOUT_CATHODES_INV_MASK 0x00 # 0: no DUO colour LEDs are connected to the LED matrix (position marker inverts step LED) # 1: DUO colour LEDs are connected to the LED matrix, second LED displays position marker # 2: Like option 1, but the first LED is turned off when the position marker activates the second LED BLM_DOUT_DUOCOLOUR 0 # define the shift registers to which the anodes of the "second colour" (red) LEDs are connected BLM_DOUT_L2_SR 0 BLM_DOUT_R2_SR 0 # set this to 1 if a button matrix is connected BLM_BUTTONS_ENABLED 1 # set this to 1 if these buttons should only control the "step triggers" (gate, and other assigned triggers) - and no UI functions BLM_BUTTONS_NO_UI 1 # define the DIN shift registers to which the button matrix is connected BLM_DIN_L_SR 0 BLM_DIN_R_SR 0 ################################################## # Additional 8x8 BLM as used for Wilba's Frontpannel ################################################## # set to 1 to enable 8x8 BLM driver BLM8X8_ENABLED 1 # to which shift register are the select lines connected? # Allowed values: 0 to disable, 1..16 to assign shift register BLM8X8_DOUT_CATHODES_SR 1 # set an inversion mask for the DOUT shift registers if sink drivers (transistors) # have been added to the cathode lines BLM8X8_DOUT_CATHODES_INV_MASK 0x00 # to which shift register are the LED anode lines connected? # Allowed values: 0 to disable, 1..16 to assign shift register BLM8X8_DOUT_LED_SR 2 # 0: no mapping of 8x8 LEDs # 1: enable GP LED -> 8x8 matrix mapping for Wilba's MB-SEQ PCB BLM8X8_DOUT_GP_MAPPING 1 # 8x8 matrix for misc. button functions BLM8X8_DIN_SR 1 ################################################## # CV and Gate/Trigger/Sync Setup ################################################## # define the AOUT interface which is connected to the core # 1: a MBHP_AOUT module # 2: up to 4 (chained) MBHP_AOUT_LC modules in 8/8 bit configuration # 3: a MBHP_AOUT_NG module AOUT_INTERFACE_TYPE 1 # additional gate triggers are available on common digital output pins of the # DOUT shift register chain - they are assigned to AOUT channel #16 (Note C-1, C#1, D-1, ...) # define the shift registers which should be used here (each provides 8 gates) # Note that SRs assigned to this function cannot be used as LED outputs (exclusive function) # Allowed values: 1-16, 0 disables the function, all other values invalid and not allowed DOUT_GATE_SR1 0 DOUT_GATE_SR2 0 DOUT_GATE_SR3 0 DOUT_GATE_SR4 0 DOUT_GATE_SR5 0 DOUT_GATE_SR6 0 DOUT_GATE_SR7 0 DOUT_GATE_SR8 0 # if set to 1, the DOUT "gates" will send 1mS pulses # useful for analog drums DOUT_1MS_TRIGGER 0 # should J5A/B/C outputs be enabled (0: no, 1: yes, 2: yes, but in open drain mode)? # - the 8 AOUT gates will be forwarded to J5A/B # - DIN sync clock will be forwarded to J5C:A0 # - DIN sync start/stop will be forwarded to J5C:A1 # - if open drain mode enabled (option 2), external pull-ups have to be connected to J5 pins # (advantage: pin levels can be pulled to 5V) # # NEVER USE THIS TOGETHER WITH ANALOG POTS - IT WILL CAUSE A SHORT CIRCUIT! J5_ENABLED 1 # pulsewidth of DIN sync clock (1..250 mS) DIN_SYNC_CLK_PULSEWIDTH 1 ################################################## # LED assignments to DOUT pins # SR = 0: LED disabled # SR = 1..16: directly forwarded to DOUT pin # SR = 17..24: forwarded to a 8x8 LED matrix ################################################## # SR Pin LED_TRACK1 0 0 LED_TRACK2 0 0 LED_TRACK3 0 0 LED_TRACK4 0 0 # SR Pin LED_PAR_LAYER_A 0 0 LED_PAR_LAYER_B 0 0 LED_PAR_LAYER_C 0 0 # SR Pin LED_BEAT 20 3 # SR Pin LED_EDIT 21 3 LED_MUTE 21 1 LED_PATTERN 22 3 LED_SONG 22 1 # SR Pin LED_SOLO 21 0 LED_FAST 22 2 LED_ALL 22 0 # SR Pin LED_GROUP1 0 0 LED_GROUP2 0 0 LED_GROUP3 0 0 LED_GROUP4 0 0 # SR Pin LED_TRG_LAYER_A 0 0 LED_TRG_LAYER_B 0 0 LED_TRG_LAYER_C 0 0 # SR Pin LED_PLAY 17 2 LED_STOP 18 2 LED_PAUSE 18 0 LED_REW 19 0 LED_FWD 17 0 LED_LOOP 0 0 LED_FOLLOW 0 0 # SR Pin LED_EXIT 24 2 LED_SELECT 23 0 LED_MENU 23 2 LED_SCRUB 20 0 LED_METRONOME 19 2 LED_RECORD 0 0 LED_UTILITY 19 1 LED_COPY 23 3 LED_PASTE 23 1 LED_CLEAR 24 1 # SR Pin LED_STEP_VIEW 21 2 LED_PAR_LAYER_SEL 0 0 LED_TRG_LAYER_SEL 0 0 LED_TRACK_SEL 0 0 # SR Pin LED_TAP_TEMPO 0 0 LED_TEMPO_PRESET 0 0 LED_EXT_RESTART 0 0 # SR Pin LED_DOWN 20 1 LED_UP 19 3 # SR Pin LED_MORPH 0 0 LED_MIXER 0 0 LED_TRANSPOSE 0 0 ################################################## # Button assignments to DIN pins # SR = 0: Button disabled # SR = 1..16: directly triggered from DIN pin # SR = 17..24: triggered from a 8x8 button matrix ################################################## # SR Pin BUTTON_DOWN 20 6 BUTTON_UP 19 4 BUTTON_LEFT 0 0 BUTTON_RIGHT 0 0 # SR Pin BUTTON_SCRUB 20 7 BUTTON_METRONOME 19 5 BUTTON_RECORD 0 0 # SR Pin BUTTON_STOP 18 5 BUTTON_PAUSE 18 7 BUTTON_PLAY 17 5 BUTTON_REW 19 7 BUTTON_FWD 17 7 BUTTON_LOOP 0 0 BUTTON_FOLLOW 0 0 # SR Pin BUTTON_MENU 23 5 BUTTON_SELECT 23 7 BUTTON_EXIT 24 5 # SR Pin BUTTON_TRACK1 0 0 BUTTON_TRACK2 0 0 BUTTON_TRACK3 0 0 BUTTON_TRACK4 0 0 # SR Pin BUTTON_PAR_LAYER_A 0 0 BUTTON_PAR_LAYER_B 0 0 BUTTON_PAR_LAYER_C 0 0 # SR Pin BUTTON_EDIT 21 4 BUTTON_MUTE 21 6 BUTTON_PATTERN 22 4 BUTTON_SONG 22 6 # SR Pin BUTTON_SOLO 21 7 BUTTON_FAST 22 5 BUTTON_ALL 22 7 # SR Pin BUTTON_GP1 21 0 BUTTON_GP2 21 1 BUTTON_GP3 22 0 BUTTON_GP4 22 1 BUTTON_GP5 23 0 BUTTON_GP6 23 1 BUTTON_GP7 24 0 BUTTON_GP8 24 1 BUTTON_GP9 20 0 BUTTON_GP10 20 1 BUTTON_GP11 19 0 BUTTON_GP12 19 1 BUTTON_GP13 18 0 BUTTON_GP14 18 1 BUTTON_GP15 17 0 BUTTON_GP16 17 1 # SR Pin BUTTON_GROUP1 0 0 BUTTON_GROUP2 0 0 BUTTON_GROUP3 0 0 BUTTON_GROUP4 0 0 # SR Pin BUTTON_TRG_LAYER_A 0 0 BUTTON_TRG_LAYER_B 0 0 BUTTON_TRG_LAYER_C 0 0 # Following button functions are usually assigned to Fx # buttons, or to dedicated (labeled) buttons # In Wilba's frontpanel layout: # F1 is located at SR 19 Pin 3 # F2 is located at SR 18 Pin 2 # F3 is located at SR 18 Pin 3 # F4 is located at SR 17 Pin 2 # and there are dedicated buttons for Copy/Paste/Clear/Utility/StepView # SR Pin BUTTON_TEMPO_PRESET 18 4 BUTTON_PAR_LAYER_SEL 24 4 BUTTON_TRG_LAYER_SEL 24 3 BUTTON_TRACK_SEL 24 2 # SR Pin BUTTON_UTILITY 19 6 BUTTON_COPY 23 4 BUTTON_PASTE 23 6 BUTTON_CLEAR 24 6 # SR Pin BUTTON_STEP_VIEW 21 5 # SR Pin BUTTON_TAP_TEMPO 20 5 BUTTON_EXT_RESTART 0 0 # SR Pin BUTTON_MORPH 0 0 BUTTON_MIXER 0 0 BUTTON_TRANSPOSE 0 0 ################################################## # Button behaviour # 0: active mode so long button pressed # 1: pressing button toggles the mode ################################################## BUTTON_BEH_FAST 1 BUTTON_BEH_ALL 1 BUTTON_BEH_SOLO 1 BUTTON_BEH_METRONOME 1 BUTTON_BEH_LOOP 1 BUTTON_BEH_FOLLOW 1 BUTTON_BEH_SCRUB 0 BUTTON_BEH_MENU 0 BUTTON_BEH_STEP_VIEW 0 BUTTON_BEH_TRG_LAYER 0 BUTTON_BEH_PAR_LAYER 0 BUTTON_BEH_TRACK_SEL 0 BUTTON_BEH_TEMPO_PRESET 0 ################################################## # Special Behaviour of ALL button # 0: only parameter layers are modified by ALL function # 1: trigger and parameter layers are modified by ALL function ################################################## BUTTON_BEH_ALL_WITH_TRIGGERS 0 ################################################## # Encoder Functions # SR = 0: encoder disabled # SR = 1..16: DIN assignment # Types: NON_DETENTED, DETENTED1, DETENTED2, DETENTED3 ################################################## # SR Pin Type ENC_DATAWHEEL 0 2 DETENTED2 # the speed value for the datawheel which is used when the "FAST" button is activated: ENC_DATAWHEEL_FAST_SPEED 3 # SR Pin Type ENC_GP1 4 6 DETENTED2 ENC_GP2 4 4 DETENTED2 ENC_GP3 4 2 DETENTED2 ENC_GP4 4 0 DETENTED2 ENC_GP5 5 6 DETENTED2 ENC_GP6 5 4 DETENTED2 ENC_GP7 5 2 DETENTED2 ENC_GP8 5 0 DETENTED2 ENC_GP9 6 6 DETENTED2 ENC_GP10 6 4 DETENTED2 ENC_GP11 6 2 DETENTED2 ENC_GP12 6 0 DETENTED2 ENC_GP13 7 6 DETENTED2 ENC_GP14 7 4 DETENTED2 ENC_GP15 7 2 DETENTED2 ENC_GP16 7 0 DETENTED2 # the speed value for GP encoders which is used when the "FAST" button is activated: ENC_GP_FAST_SPEED 3 # Auto FAST mode: if a layer is assigned to velocity or CC, the fast button will be automatically # enabled - in other cases (e.g. Note or Length), the fast button will be automatically disabled ENC_AUTO_FAST 1 Quote Link to comment Share on other sites More sharing options...
findbuddha Posted November 5, 2011 Author Report Share Posted November 5, 2011 Problem solved. I had resistors on the cathode DOUT lines. *kicks self for not reading wilba's schematic properly* Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.