Button Matrix

Hi, we try to connect our first button matrix to the midibox lpc. We have a DIN and DOUT Modul connected to a button matrix. Unfortunalty, we get only an event on some buttons. Some buttons don’t show any reaction others create a lot of events. No real schema. How should we debug this. 

 

We soldered the diodes in the wrong direction. Can we fix this with "inverted_sel=1 and inverted_row=1"

 

Br,

Stephan

Hi Stephan,

 

if diodes are soldered in the wrong direction, you’ve to change the polarity of the pull-up resistors at the DIN inputs as well.

They have to pull the signal to ground instead of 5V

 

If you are using the original MBHP_DINX4 module, search here: http://www.ucapps.de/mbhp_din.html for the keyword “pull-down”.

If you are using the MBHP_DIO_MATRIX module (-> http://www.ucapps.de/mbhp_dio_matrix.html), just change the polarity with J6

 

Best Regards, Thorsten.

Can’t you just switch the cables between the Din and Dout boards that goes to the keys?  Then the diodes will point in the right direction.  Only problem might be that the keys won’t send the right command. But this can be changed.

Good idea!

 

Best Regards, Thorsten.

Thanks for the Feedback. We try that tomorrow. Best Regards Stephan

Hi, we get now events BUT all buttons from one row show the same hw_id. Any Ideas whats wrong?

 

Kind Regards

Stephan

 

 

[33721.009] MBNG_DIN_NotifyToggle(3, 1)

[33721.010] [EVENT:3003] BUTTON hw_id=3 bank=0 fwd_id=0x4003 type=NoteOn value=127 label=^std_btn

 

 

[33592.277] MBNG_DOUT_NotifyReceivedValue(4, 0)

[33592.279] MBNG_DIN_NotifyToggle(4, 0)

[33592.279] [EVENT:3004] BUTTON hw_id=4 bank=0 fwd_id=0x4004 type=NoteOn value=0 label=^std_btn

[33592.283] MBNG_DOUT_NotifyReceivedValue(4, 127)

Seems that the inversion flags haven’t been set correctly

 

Best Regards, Thorsten.

Hi Thorsten,

 

we don’t understand this. We tried the DIN_MATRIX Command in all variants. We connected the DOUT pins to the Buttons and than to the cathode of the diode and than to the DIN Module. Our Command is 

 

DIN_MATRIX n= 1   rows=8  inverted=1 inverted_sel=1  inverted_row=1  sr_dout_sel1=3 sr_dout_sel2= 0  sr_din1= 0 sr_din2= 0

 

So I guess, we have to resold the Matrix completly.

 

Br

Stephan

Hi Stephan,

 

if the diodes are in the right direction, no inversion would be required. Neither for the selection lines, nor for the rows.

Did you test this as well?

 

Btw.: “inverted=1” and “inverted_sel=1” are actually doing the same. “inverted” only exists due to compatibility reasons.

Best Regards, Thorsten.