Jump to content

Custom control surface for MB-6582


fallenturtle
 Share

Recommended Posts

I'm building a MB-6582 based synth, but instead of using the official control surface PCB, I'm making my own surface. It will have all the same buttons, LEDs, and encoders that the official control surface has with the exception of the matrix. So I'm trying to learn how to build out the CS based on the MB-6582 CS but subtracting what I don't need, which has led me to some confusion because I'm a noob:

  • I think I might be getting my matrices confused. Is there only one matrix, or is there the matrix has in the grid of leds and buttons on the control surface and also matrix, as-in a way of connecting inputs and outputs?
  • If I'm not doing the LED matrix, do I need any diodes for the other parts of the control surface or can I just wire everything directing to the DIN/DOUT along the bottom of the MB-6582?
  • Are mb-6582_cs_din_wiring.pdf and mb-6582_cs_dout_wiring.pdf found in the Control Surface Wiring section of http://www.midibox.org/dokuwiki/doku.php?id=wilba_mb_6582 exclusive to the LED/button matrix?
  • Is each JD header on the base PCB (JD1, JD2, JD3) equivalent to a shift register? Would the JD number correspond to the shift register number used in the asm file?
  • If I wanted to keep the same pin assignments that the MB-6582 asm file uses, but without the LED matrix, would I just remove the 16+ part of the shift register assignment?
  • How do I deal with ground? Do I just chain the ground pins of the components per shift register and connect them to the ground pads next in between the the JD headers?

Thanks.

Link to comment
Share on other sites

Hi there,

just a few answers:

* there are two LED output matrices (both using 8x8 LEDs), see dout_wiring.pdf and there is one tactile switch input matrix (see din_wiring.pdf)
* one of the output matrices is used for the visual 8x8 "mod matrix" on the cs6582 pcb, the other matrix is used for all other leds on the frontpanel
* the JD? headers in the wiring diagram correspond to shift register outputs or inputs, just trace them on the baseboard
* if you don't want to have the "mod output matrix", just don't connect anything to jd6
* jd8 is the shared "column strobe/pulse", you can think of each matrix as of one "column" being actively pulsed at a time, this pulse is used for the two output matrices and the input matrix simultaneously (i did not know this before, quite cool! :-)).
* for the output matrices, you don't need ground, there is a direct connection between the JD pins that will feed the LEDs
* for the input matrices you just have to provide ground to every switch, how you do that should be irrelevant, as long as it is all connected together.
* if you want the same pin assignments as in the mb6582 hex, just trace the pins of the JD? lines to the respective component, eg the LFO1 LED would be "between" JD8, Pin D5 and JD7, Pin D4.

Hope this helps?
Many greets,
Peter

Link to comment
Share on other sites

A few corrections:

Diodes are essential when the switches are scanned in a matrix, otherwise multiple switches would "activate" at the same time. Notice the cathodes of the regular LEDs and the diodes of the switches connect to the sinks on JD8. The anode sides of the switch diodes (drawn as the floating part of the switch connection) are scanned in on JD5 which will find their way to a 165 shift register. As the "strobe" pulses the transistor bases, the collectors allow conduction through JD8. The DIN pin senses this as pulling the input low and registers a button press. The MCU "knows" what button was pressed by considering what strobe pulse was active at the time. In effect, the current sinks are providing "ground" in a multiplexed fashion.

 

Edited by latigid on
Link to comment
Share on other sites

Thanks Peter,

That does help, though I'm still a little bit confused and I think it might be related to how I literally wire this up. I guess I was initially thinking I'd run a wire from an LED, LFO1 LED for example, lead to D4 and then another wire from the other LED lead to ground. Am I to understand correctly that I'll want to recreate those matrices shown in the PDFs on a piece of strip board and wire everything through that?

Would I want to remove the "16 +" from the DOUT table in the asm file? Actually I realize my understanding of how the PCB connections translate to the asm file are off. For example for LFO1 LED it says:

     DOUT_ENTRY  TMP4, 0, 16+3,   3   ; LFO1 LED

Which I previously would have thought was JD3 Pin D3, but its actually JD7 and Pin D4 according to the wiring chart.

Sorry for being such a dunce!

Link to comment
Share on other sites

Just now, latigid on said:

A few corrections:

Diodes are essential when the switches are scanned in a matrix, otherwise multiple switches would "activate" at the same time. Notice the cathodes of the regular LEDs and the diodes of the switches connect to the sinks on JD8. The anode sides of the switch diodes (drawn as the floating part of the switch connection) are scanned in on JD5 which will find their way to a 165 shift register. As the "strobe" pulses the transistor bases, the collectors allow conduction through JD8. The DIN pin senses this as pulling the input low and registers a button press. The MCU "knows" what button was pressed by considering what strobe pulse was active at the time. In effect, the current sinks are providing "ground" in a multiplexed fashion.

 

Okay, so I will need to buy some 1N4148 diodes? The official control surface PCB is some what of a maze for me... do I put a diode between each switch/LED and JD8?

Link to comment
Share on other sites

Just now, fallenturtle said:

Okay, so I will need to buy some 1N4148 diodes? The official control surface PCB is some what of a maze for me... do I put a diode between each switch/LED and JD8?

Yes, or connect the switch to JD8 and the diode to JD5

Just follow these:

http://www.midibox.org/dokuwiki/lib/exe/fetch.php?media=mb-6582:mb-6582_cs_dout_wiring.pdf
http://www.midibox.org/dokuwiki/lib/exe/fetch.php?media=mb-6582:mb-6582_cs_din_wiring.pdf

You will soon see why we normally use PCBs for matrix routing :)

 

Just now, fallenturtle said:

Thanks Peter,

That does help, though I'm still a little bit confused and I think it might be related to how I literally wire this up. I guess I was initially thinking I'd run a wire from an LED, LFO1 LED for example, lead to D4 and then another wire from the other LED lead to ground.

It is possible to do this and I recommend it in the absence of a front panel PCB. You will need one DIN pin for each switch, with the other pin wired to 0V (ground). No diode is required. For LEDs do the same: you need one DOUT pin + resistor for every LED. If you are completing a comparable control surface to the MB-6582, you'll have to expand the SRIO chain, labelled as J8 and J9 just up from the bottom-left of the Base PCB. and below the J8/9_Core4 header. You can either use DINX4/DOUTX4 modules or wire the chips/resistors/headers etc. onto your stripboard.

Edited by latigid on
clarity
Link to comment
Share on other sites

Just now, latigid on said:

Yes, or connect the switch to JD8 and the diode to JD5

Just follow these:

http://www.midibox.org/dokuwiki/lib/exe/fetch.php?media=mb-6582:mb-6582_cs_dout_wiring.pdf
http://www.midibox.org/dokuwiki/lib/exe/fetch.php?media=mb-6582:mb-6582_cs_din_wiring.pdf

You will soon see why we normally use PCBs for matrix routing :)

 

It is possible to do this and I recommend it in the absence of a front panel PCB. You will need one DIN pin for each switch, with the other pin wired to 0V (ground). No diode is required. For LEDs do the same: you need one DOUT pin + resistor for every LED. If you are completing a comparable control surface to the MB-6582, you'll have to expand the SRIO chain, labelled as J8 and J9 just up from the bottom-left of the Base PCB. and below the J8/9_Core4 header. You can either use DINX4/DOUTX4 modules or wire the chips/resistors/headers etc. onto your stripboard.

If I'm following you correctly it sounds like its easier to create matrix routing on a printed stripboard than direct wire each LED/switch. I was hoping I could just use the DIN and DOUTs that are on the MB-6582 base PCB.

I didn't get the BC547s for T2-T9 because I didn't think I needed them if I'm not using the Mod Matrix, but if I AM using JD8, then does that mean I need them after all?

Link to comment
Share on other sites

If you don't want to add any more DIN/DOUT shift registers then you have to use the matrix routing. Depending on your skill/patience level and the particular layout of the panel, it's certainly possible, but likely a lot of frustrating work.

Probably an 8x8 matrix will work without sink transistors as long as the LEDs aren't driven too brightly. It won't hurt to add them.

Link to comment
Share on other sites

I'm still working out how I'm arranging the front panel. It's based on a C64* keyboard with the encoders and switches being on the keyboard grid and the LEDs around it coming out of the C64* case surface. See image. Because of this I think none of possible arrangements will work for or against direct wiring vs matrix wiring. I think I'd rather deal with wiring 2 matrices then buy more DIN and DOUT boards and they required components for them (though I do have one DIN module completed from my since abandoned modular MIDIBox SID.

 

*Actually its a VIC-20 keyboard and case, but I'm pretending is from a C64.

D5300_20171203_17.13.46.jpg

Edited by fallenturtle
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...