Jump to content

MIDIBox SID, The DIN Module Schematic.


XTheWoodX
 Share

Recommended Posts

Dear All,

I am building a Step B MBSID, and have a question about the schematics regarding the connection of the buttons and encoders.

First... (please refer to http://www.uCApps.de/mbhp/mbhp_dinx4_32buttons.pdf )

I assume that a Rotary Encoder (undetented in my case) and a button(s) cannot share the same input.  For example, since I am building something as close to Swindus machine, the SID V2 - http://www.midibox.org/blog/wp-content/uploads/2008/06/swindus1.jpg - with the exception that I will use 4 SIDS and not 2, I will connect a total of 14 buttons (4 on J4, 4 on J6, 4 on J8 and 2 on J10,) I must connect the 5 Encoders to other inputs, such as 4 enc's on J5 and one on J7.  Is this correct?  Also, should I use more or less buttons?

Second... (please refer to http://www.ucapps.de/mbhp/mbhp_dinx4_16enc.pdf )

Apparently, Swindus used a total of 6 knobs (5 smaller ones and one "big knob.")  These would be connected to unused inputs, I am sure, but the schematic has a caveat: that this is MIDIBox16E wiring and that for "MIOS based controllers [you] must chain it with the DINX4 button modules @J9!!!"  What does that mean?  What is the "it" that the name was referring to?  What does it mean to "chain" in this case?  Just like the above question, should I use more or less encs? 

Any assistance would be much appreciated.  Thank you very much for your time, and best of luck to all of you with your goals and works in progress. :)

Best regards,

XTheWoodX.

Link to comment
Share on other sites

First... (please refer to http://www.uCApps.de/mbhp/mbhp_dinx4_32buttons.pdf )

I assume that a Rotary Encoder (undetented in my case) and a button(s) cannot share the same input.  For example, since I am building something as close to Swindus machine, the SID V2 - http://www.midibox.org/blog/wp-content/uploads/2008/06/swindus1.jpg - with the exception that I will use 4 SIDS and not 2, I will connect a total of 14 buttons (4 on J4, 4 on J6, 4 on J8 and 2 on J10,) I must connect the 5 Encoders to other inputs, such as 4 enc's on J5 and one on J7.  Is this correct?  Also, should I use more or less buttons?

The MBSID Step B is not quite the same configration as the swindus design.

The Step B has 13 (14) buttons, and one encoder.

Also, using the TK board overlay, you cannot connect more than 2 encoders per header. The encoders use 2 DIN pins each.

So, if you have 14 buttons, you can do 4 on J4, 4 on J6, 4 on J8 and 2 on J10, with one encoder on the other two DIN pins of J10. Then you could connect 2 encoders to J5 and 2 encoders on J7.

Second... (please refer to http://www.ucapps.de/mbhp/mbhp_dinx4_16enc.pdf )

Apparently, Swindus used a total of 6 knobs (5 smaller ones and one "big knob.")  These would be connected to unused inputs, I am sure, but the schematic has a caveat: that this is MIDIBox16E wiring and that for "MIOS based controllers [you] must chain it with the DINX4 button modules @J9!!!"  What does that mean?  What is the "it" that the name was referring to?  What does it mean to "chain" in this case?  Just like the above question, should I use more or less encs? 

Basically this means that multiple DIN boards can be daisy chained together for more inputs, ie:

[tt]

CORE--DINx4--DINx4--DINx4

[/tt]

up to 4 DINx4 boards can be chained in this fashion, for up to 128 DIN pins. You don't need nearly this many of course.

If (and I should perhaps stress here 'only if') you use the SmashTV boards, then you can chain DIN and DOUT boards using ribbon cable and dual row IDC headers, without much concern as to which is which, so long as you remember the order of the boards.

ie (using the SmashTV boards):

[tt]

CORE==DINx4==DOUTx4==DINx4==DINx4=DOUTx4

[/tt]is the equivalent to:

[tt]

CORE=+-DINx4--DINx4--DINx4

    +-DOUTx4--DOUTx4

[/tt]

Did I mention this is (AFAIK) only if using the SmashTV boards? there is some lovely routing on these boards, which makes this possible.

Link to comment
Share on other sites

I'm using a DINx2 circuit (16 inputs) for the 14 buttons and the big knob (encoder, 2 inputs) which is connected to the core on J9. The 5 small knobs are analogue pots (10k) connected to J5 on the core module.

Check the section 'Analog Control Elements' on this page: http://www.ucapps.de/midibox_sid_manual_fp.html

If you want to use encoders for the knobs you will need 2 inputs for each encoder. With 1 DINx4 module you can connect 14 buttons and 9 encoders to the core. For more inputs you need to chain DINx modules like described above.

Link to comment
Share on other sites

Gentlemen, thank you for your replies.  Tilted, your explanation was spot on; it clarified my issue completely.

Swindus...

I hope that you received my PM from one or two days ago.  If not, I would like to ask you a quick question.

I am building a Step B MIDIBox SID and I like the way your V2 box looks.  After /Tilted/ brought to my attention that yours is not quite a Step B interface, I wondered how you managed to create your own interface.  My untrained eye cannot match your piece to either Step A, B, or C, and I wonder how yours works.  Step B has 13 (or 14... I cannot recall at this time) buttons and one encoder, whereas yours has 5 knobs, one encoder, and I believe 9 buttons.  What does each part do, and how difficult was it to build yours?

Thank you for your time and assistance.  I am looking forward to your reply.

Best regards,

XTheWoodX.

Link to comment
Share on other sites

Before attempting to clone what Swindus' layout does I suggest you get familiar with the functions that are available to you :-) It is fairly easy to  build a custom CS and just use whatever buttons you want. You don't have to stick to any of the given layouts. For instance you might use the built-in arpeggiator a lot - you might want a start/stop arpeggiator button. You might find yourself tweaking filter cut off and resonance a lot - you might want to dedicated encoders for that. As you see there's virtually a million possible different setups. One for each type of user.

In a custom CS scenario, which only uses functions that are already available (in Step C for instance, that one has basically everything in it) all you would need to do is alter the matching setup_*.asm file by adding/removing a couple of lines that map your input devices (buttons/encoders) to the corresponding functions and assemble the new hex file (which is done by the assembler ;)).

Link to comment
Share on other sites

all i can say is that i built my MBSid V2 with a Step whatever is the minimal CS with 2 SID's, and i'm already regretting it...  not that it's bad, it's just that there are soooo many parameters that i would like to tweak at any given time and MIDI CC's are not my strong point.  ;) ::) :P  point being, i think that anything custom or AT LEAST the Step C is the best way to go when talking about control surfaces.  i'd definitely like to upgrade eventually, but that's just me! ;D  /me gives 2¢

Link to comment
Share on other sites

I am building a Step B MIDIBox SID and I like the way your V2 box looks.  After /Tilted/ brought to my attention that yours is not quite a Step B interface, I wondered how you managed to create your own interface.  My untrained eye cannot match your piece to either Step A, B, or C, and I wonder how yours works.  Step B has 13 (or 14... I cannot recall at this time) buttons and one encoder, whereas yours has 5 knobs, one encoder, and I believe 9 buttons.  What does each part do, and how difficult was it to build yours?

My box has:

- 5 analogue knobs for quick parameter changes. You can assign these knobs to specific parameters in each patch

- 1 big knob for selecting the patch/ensemble or changing the selected parameter

- 1 shift button (the most left one under the LCD)

- 10 buttons (under the LCD) for selecting the shown parameter on the LCD (10 buttons because the LCD is a 2x40 character LCD)

- up/down and menu buttons on the right of the LCD

So 14 buttons overall.

Before attempting to clone what Swindus' layout does I suggest you get familiar with the functions that are available to you :-)

This is a good advice! Just create some cs layouts (paint them on paper, check the distance of the buttons and knobs with your fingers, create paperboard prototypes, and so on) and test them. The layout I have choosed finally is also the result of testing differrent layous to fit my needs. Thats the big advantage here: you can create a box that works like YOU like it.

After the cs was finished I have built a box around it with the help of a friend. That means the final box size depends on the cs.

I wasn't really difficult to build it because before I constructed a MBSEQ with a lot of more buttons and knobs. My advice here: just do it! You can always change some things if you don't like it after some time.

Link to comment
Share on other sites

Oh I totally forgot, check out rutgers really cool MBSID v2 Editor once your core and SIDs are working - no CS needed and it might give you a really good idea of what functions you want available on the CS ;)

Link to comment
Share on other sites

Did you have to change anything in MIOS or the application in order to use the 2x40 LCD screen? 

Yes, this is the the part from the setup_8580.asm I changed for the LCD:

;; number of visible menu items on LCD

;; use:  4 for 2x16 displays

;;      5 for 2x20 displays

;;      10 for 2x40 displays

#define CS_MENU_DISPLAYED_ITEMS 10

;; NOTE: if CS_MENU_DISPLAYED_ITEMS > 5, you have to adapt the DIN settings

;; in CS_MENU_DIN_TABLE below

And this for the additional 5 buttons:

CS_MENU_DIN_TABLE

;; Function name SR# Pin#

DIN_ENTRY CS_MENU_BUTTON_Dec, 1, 0 ; only valid if rotary encoder not assigned to these pins

DIN_ENTRY CS_MENU_BUTTON_Inc, 1, 1 ; (see mios_tables.inc) and CS_MENU_USE_INCDEC_BUTTONS == 1

DIN_ENTRY CS_MENU_BUTTON_Exec, 1, 2

DIN_ENTRY CS_MENU_BUTTON_Sel1, 1, 7

DIN_ENTRY CS_MENU_BUTTON_Sel2, 1, 6

DIN_ENTRY CS_MENU_BUTTON_Sel3, 1, 5

DIN_ENTRY CS_MENU_BUTTON_Sel4, 1, 4

DIN_ENTRY CS_MENU_BUTTON_Sel5, 1, 3

DIN_ENTRY CS_MENU_BUTTON_Sel6, 2, 0 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel7, 2, 1 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel8, 2, 2 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel9, 2, 3 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel10, 2, 7 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

The values for the buttons 6 to 10 are depending on the inputs you use on the DINx module.

Link to comment
Share on other sites

Dear Swindus,

Since I have not any experience with MIOS (yet) or with programming, will the data that you provided make more sense to me once I begin to work with MIOS Studio on my Macbook?  I noticed that your data refers to an "8580.asm"... I am assuming that since I am using 4 6581's, I will use somehting called "6581.asm."  Is that correct?

The part on the LCD:

;; number of visible menu items on LCD

;; use:  4 for 2x16 displays

;;       5 for 2x20 displays

;;      10 for 2x40 displays

#define CS_MENU_DISPLAYED_ITEMS 10

;; NOTE: if CS_MENU_DISPLAYED_ITEMS > 5, you have to adapt the DIN settings

;; in CS_MENU_DIN_TABLE below

... appears to be pretty straight forward.  However, the part regarding the DIN settings looks a bit complicated.  I believe that it all will indeed make sense once I open MIOS Studio.  In fact, would you recommend that I download it now and open it on my Macbook, without having completed my SIDbox (since I am still awaiting the arrival of several more parts,) in order to acquiant myself with the interface?  Or, must a SIDBox be connected to it in order for the program to open/function correctly?  As a precautionary measure, I would like to learn the program before I make any adjustments that I may not quite understand.

Cheers,

XTheWoodX.

Link to comment
Share on other sites

Since I have not any experience with MIOS (yet) or with programming, will the data that you provided make more sense to me once I begin to work with MIOS Studio on my Macbook?

 

No, since this step is pre-MiosStudio. It's the changes in the source code you will *have* to make before compiling and sending to the midibox via MiosStudio.

I noticed that your data refers to an "8580.asm"... I am assuming that since I am using 4 6581's, I will use somehting called "6581.asm."  Is that correct?

Yes.

However, the part regarding the DIN settings looks a bit complicated.

Not really, once you understand what it does it's completely easy ;-)

I believe that it all will indeed make sense once I open MIOS Studio.

No, it won't since as I just mentioned those two things don't have anything to do with each other.

In fact, would you recommend that I download it now and open it on my Macbook, without having completed my SIDbox (since I am still awaiting the arrival of several more parts,) in order to acquiant myself with the interface?

Yes, do that. That way you'll see that MIOS Studio is just a tool that (simplified) allows you to easily upload compiled .hex files.

Or, must a SIDBox be connected to it in order for the program to open/function correctly?

It will not do much without a MIDIbox hooked up to it ;-)

As a precautionary measure, I would like to learn the program before I make any adjustments that I may not quite understand.

No "real" programming is necessary. All you need to do is change some pin assignments in tables. For more information check out the HowTos I made about modding a SID CS: http://www.midibox.org/dokuwiki/midibox_sid. You should especially have a look at "Changing DIN pins"

Link to comment
Share on other sites

Not really, once you understand what it does it's completely easy ;-)

It's a little simpler to understand if you use a little bit o' fixed pitch action and formatting:

[tt] -In fixed pitch

And this for the additional 5 buttons:

CS_MENU_DIN_TABLE

;;          Function name          SR#      Pin#

DIN_ENTRY CS_MENU_BUTTON_Dec,    1,      0 ; only valid if rotary encoder not assigned to these pins

DIN_ENTRY CS_MENU_BUTTON_Inc,    1,      1 ; (see mios_tables.inc) and CS_MENU_USE_INCDEC_BUTTONS == 1

DIN_ENTRY CS_MENU_BUTTON_Exec,    1,      2

DIN_ENTRY CS_MENU_BUTTON_Sel1,    1,      7

DIN_ENTRY CS_MENU_BUTTON_Sel2,    1,      6

DIN_ENTRY CS_MENU_BUTTON_Sel3,    1,      5

DIN_ENTRY CS_MENU_BUTTON_Sel4,    1,      4

DIN_ENTRY CS_MENU_BUTTON_Sel5,    1,      3

DIN_ENTRY CS_MENU_BUTTON_Sel6,    2,      0 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel7,    2,      1 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel8,    2,      2 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel9,    2,      3 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

DIN_ENTRY CS_MENU_BUTTON_Sel10,  2,      7 ; define this if CS_MENU_DISPLAYED_ITEMS > 5

[/tt]

The values for the buttons 6 to 10 are depending on the inputs you use on the DINx module.

See? It's a look-up table, a column for the name of the function associated with the button, a column showing which SR chip the button connects to, and a column showing which pin on that SR chip.

Link to comment
Share on other sites

Dear Nils, Swindus, and Tilted,

I think that I am pretty much set on using the white on black 2x16 LCD display available on http://www.oceancontrols.com.au/panel_meters/lcd/lcd_modules.htm#Purchase  That one should work with the Step C SIDBox, right?

That is, I will only use the 2x16 if it does not require any adjustments in the asm file.  After re-reading the LCD Module section, I am still assuming that the 2x16 is the display that can be soldered in and used (solder and play, heheh... instead of "plug and play"... eh, I guess that pun was not that funny.) ;D  This would be the only reason that I would settle for a 2x16.

However, which one is ultimately supported - without need for adjustments of any kind -  by MIOS?  2x16?  2x20?  2x40 (the one that I truly like)?  I think that I can bite the bullet with the smaller display, since my Waldorf Micro Q also utilizes a small display and I have no difficulty adjusting parameters.  But... gentlemen, if you reeeeeaaaally feel that incorporating the larger LCD is really that easy, I might change my mind and go back to the larger screen.  I read your posts several times, though the task, for this rookie, seems a bit intimidating. 

Lastly, I will download MIOS Studio this weekend and begin to familiarize myself with it.  I read some of Buhler's old posts on the forum regarding the Mac version of MIOS Studio and all of the trouble he experienced with it, so I will download the version for PC and work on my Dell instead (though I prefer the former, it is no big deal... I love my PC.)  :)

Have a great day, gentlemen, and once more... thank you.

Best regards,

XTheWoodX.

Link to comment
Share on other sites

I read some of Buhler's old posts on the forum regarding the Mac version of MIOS Studio and all of the trouble he experienced with it

yeah... :-[  i still can't figure that one out! ::)  now i can't even get JRE to open anything!

Link to comment
Share on other sites

In my opinion the two best options are a 40x2 which shows you 10 parameters at a time (which is almost enough to display everything in most menus) or the new 20x4 layout (which you can find info about in some mb-6582 or sidv2 thread). The WIKI has a pretty big list of known to work displays, too.

Link to comment
Share on other sites

isn't the 2x20 one pretty much 'optimized' for MB-SID?

(except for the new up'n'coming 4x20... ofcourse)

At least, the 2x20 display (or 20x2, whatever) is the one used by MIOS out of the box, right? If I understood the question correctly, XTheWoodX just needs to know which display is used as default display, without having to change any code and recompile MIOS/applications.

Link to comment
Share on other sites

isn't the 2x20 one pretty much 'optimized' for MB-SID?

It's more like the other way round. 2x20 is indeed the default, BUT there is really no point in using a smaller display when you can afford the bigger one and have the space on the panel. Besides a 2x40 will work correctly with the default setup (except for half the screen being blank of course).

Link to comment
Share on other sites

Changing from 2x20 -> 2x40 <= 30 seconds. If that's the only change you want/need I'm pretty sure there'll be tons of helpful people here who'd even do it for you, if you asked them nicely. Yes, that was an offer. As I mentioned before - the 2x40 will work right away, even if you don't change the source, so you can test all you want and troubleshoot and use and do whatever with the box. And then one magical day you change those 6 lines in the setup_*.asm and you have 10 menu items. Now, how cool is that. Basically my point is: Not wanting to change the software / being scared of asm / not having the toolchain installed is absolutely not a reason to not go with 2x40.

Link to comment
Share on other sites

Changing from 2x20 -> 2x40 <= 30 seconds. If that's the only change you want/need I'm pretty sure there'll be tons of helpful people here who'd even do it for you, if you asked them nicely. Yes, that was an offer. As I mentioned before - the 2x40 will work right away, even if you don't change the source, so you can test all you want and troubleshoot and use and do whatever with the box. And then one magical day you change those 6 lines in the setup_*.asm and you have 10 menu items. Now, how cool is that. Basically my point is: Not wanting to change the software / being scared of asm / not having the toolchain installed is absolutely not a reason to not go with 2x40.

Indeed. I'm also offering my help to create a hex file.

Link to comment
Share on other sites

Dear Nils and Swindus,

You are both correct.  It is the reticence to changing the code that would limit my creativity here.  However, your offer, Nils, and yours, Swindus, are much, much appreciated.   :)  Indeed, given the current circumstances, I will definitely opt for the 2x40.

So, Nils, if it would not inconvenience you in the least, I would be most obliged if you were to find the time one day to create the file that would enable me to use the 2x40 display.  I do not know how difficult it would be to grant the following request as well, but would it be possible for you to include a bit of text that would appear whenever my SIDBox powers on?  I would like for it to say the following (the message may change in the future, for the list may become longer)...

"Nessy 101... created by TK, built/designed by Dad and The Wood, with the priceless assistance of Nils Podewski, Swindus, Frailn, Buhler, and /Tilted/."

This would be an alternative to etching/engraving the screen names of all forum members who have helped me onto the back panel of my SIDBox.  I always thought that this would be a cool way to remember the names of those who helped me along the way.

If it is possible to do this, I would greatly appreciate it.  That would be my greatest tribute to all of you who have helped me, and continue to do so, as time goes by.  Every time the Nessy 101 powers on (yes, that would be my SIDBox's name, as it shares the nickname I gave my fiancee  ;D), your names will scroll across the screen.  Without the generous assistance that I have received from all of the aformentioned, the Nessy 101 could not be built.   ;)

Nils, I can imagine that your time is of the essence; when it is free, I am sure that it is your most prized and sought after commodity.  If you are unable to help due to unforeseen circumstances, I would understand perfectly, for your offer is what I appreciate the most.  Thanks again.  ;)

Swindus...

Thank you very much.  I am confident in your ability to create the file should Nils' schedule not permit it.  I hope that my humble gesture - to include your forum name along with those who have helped me so much in a bit of text when the Nessy 101 powers up - is a suitable representation of my gratitude. 

It is important to remember those who help you along in life, and to be grateful for their efforts and friendship.  I am a man of many faults, but gratitude is certainly not one of them.  It is my sincerest hope that this is evident.

Best regards,

XTheWoodX.

p.s, three 6581 SIDs received in the mail, one more to go!  Then come the parts from SmashTV.  :)

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...