TK.

MIDIO128 V3

86 posts in this topic

Hi johnc,

I don't want to sound disrespectful, but you could answer all your questions yourself (except no. 3 maybe) by simply trying out what you suggest, and report here! :thumbsup:

Best, ilmenator

Ok! I accept the hand slap, but not without comment!

Remember that I am using "5b"the beta ver. Why would the lowest note on an organ keyboard be 0x30? The low C on most organ keyboards is 0x24. Could be an error.

Yes an answer to item 3. would be good.

For those of us that lack the technical insight, we tend to think of such devices as the LPC17 as a black box, hoping that in some way it can make my "stuff" work better. So in reading a feature list as awesome as the list for the LPC it is normal to look for applications in my personal domain. I refer to item 4 above. IMHO, when I plugged the wireless adapter into my laptop, I had to run some config software to set it up. Isn't it reasonable to ask item 4, since I have no way of knowing or understanding what the firmware can do, or not do.

Enough said!

TK - I appreciate all your hard work and patience with my questions.

Best Regards,

johnc

Share this post


Link to post
Share on other sites

I will definitely dive into programming, that was one of the reasons I built the new core, but I guess it will take some time before I come up with something useful.

I think that in this case it would be better if you would integrate the encoder handling by yourself - a nice exercise to learn programming :)

Speaking of Midio128, right now I experience some heavy jittering with the 8 analog pots, constant bombardement with values (like 3-4 messages every second), some are jittering around a certain value, and sometimes it's all over the place. I used 10k pots with the 100nF capacitors, and cables are quite short (ca. 12cm)... I guess it's some kind of grounding issue. Have to try some things over the weekend...

The jitter is normal, the ADCs of LPC17 are really bad, I don't like them.

This is also related to the LPCXPRESSO design, because the ADC supply input is directly connected to digital supply.

In future MIDIO128 will support the new MBHP_AINSER64 module (see ) which delivers much better conversion results.

Remember that I am using "5b"the beta ver. Why would the lowest note on an organ keyboard be 0x30? The low C on most organ keyboards is 0x24. Could be an error.

It isn't really an error, but you are right that it makes sense to use a lower note by default.

I will change this in the next release.

3. I note that in the matrix setup strings, the OSC1 is checked, along with USB and IN1. what does the OSC do?

It means, that events are also sent via ethernet (if enabled).

The supported protocols are explained here: http://www.ucapps.de/midio128.html (search for keywords "Supported OSC Packet Formats"

My opinions about OSC are written down here: http://www.ucapps.de/midibox_seq_manual_osc.html

4. If I plug in my Dilink wireless USB adapter into the LPC will it communicate with my wireless router? Since my organ console is 50 feet from the computer location, midi over ethernet would be great, especially if wireless.

For MIDI over Ethernet I wrote a proxy, but currently it only works on a Mac.

But you could also ask the developer of the organ emulation that you are using to integrate OSC support.

The "j" in "jOrgan" sounds like it's based on Java, and Java has already an integrated OSC library.

Accordingly it should be trivial to add such a feature to jOrgan, so that it can be accessed via Ethernet.

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

TK,

Thanks!

I think that I am good to go for awhile.

johnc

Share this post


Link to post
Share on other sites

today I played around with the pots a bit more: tried different pots and values (1k, 10k), connected only one pot at a time, inside/outside the case… and after reading your post now my conclusion is the same: must definitely use the AINSER64 if I want to use analog pots with the LPC17.

Ok, installing xcode right now …. :thumbsup:

Thank you Thorsten!

Lars

Share this post


Link to post
Share on other sites

Just me again, wanted to let you know I'm still alive, I've been working with my dad on building the box for all my buttons, we got the top done and I just got finished hand wiring one of the matricies. It's a very time consuming process I have discovered. But it seems like it will be worth it. I'll post pics some time soon. I only have one question for you now, Is there any way to set the fixed velocity to something lower than full? Or have the velocity of all outgoing notes scaled by one knob?

Share this post


Link to post
Share on other sites

I finished the other matrix today, now I'm just waiting on my dad to finish the bottom of the box. I also figured out that if you have two matricies and you push something on both of them at the same time, it triggers the DIN as per the column on the second matrix, I don't know if it did this in mode 0, but If I just set all the DINs that I'm using for the matricies to send out 0xFF it's fine.

Share this post


Link to post
Share on other sites

MIDIO128 V3.006 is available now

Finally the "128" also stands for 128 analog inputs! :)


MIDIO128 V3.006
~~~~~~~~~~~~~~~

o support for two MBHP_AINSER64 modules: up to 128 analog pins can be scanned!

o improved MIDI OUT throughput
[/code]

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Nice!!!

I'll try that as soon as I finish my small "ainser8" board

Thanks TK !!

Edited by rvlt

Share this post


Link to post
Share on other sites

A SysEx transfer issue at port OUT1 and OUT2 has been fixed in MIDIO128 V3.007:


MIDIO128 V3.007
~~~~~~~~~~~~~~~

o corrected SysEx output for LPC17
[/code]

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

TK,

Today I finally got midio128 ver 3.007, and jOrgan ver 3.14 working together. Big problem all along was that of midi channel mis-match. 0-15 vs 1-16. Had to do some juggling.

With midio 128 on the LPC, is it possible to make the monitor display of inputs and outputs last a bit longer. Currently it is too fast to read.

Other then the above, the LPC is doing a fine job. It would be great if the midibox DINS and DOUTS and Pic8 cores all had polarized connectors.

Thanks TK for a great device, and the willingness to help me get my LPC up and going.

Johnc

Share this post


Link to post
Share on other sites

It would be great if the midibox DINS and DOUTS and Pic8 cores all had polarized connectors.

This is easy to implement - after all, you've built the thing yourself, so you can use any connector you want. The one in the picture for example is what I use.

post-3442-0-04132800-1338535341_thumb.jp

Share this post


Link to post
Share on other sites

On the DINX4/DOUTX4 module, there isn't enough space for polarized connectors... :-/

But at least I considered this on the new MBHP_DIO_MATRIX module, because meanwhile I don't want to miss them as well! :)

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Thanks for the comments guys.

You are correct TK, the DIN4X and DOUT4X are small. Perhaps Smashtv would entertain a slightly enlarged version. Wouldn't take but a couple of millimeters.

A few comments about the mios studio. The midi monitor does not display the complete config for the matrixes - matricies, and what it does display is mixed up. Also please comment about the speed of display of inputs and outputs on the mon display on the lcd. It flashes much too fast to read.

Last question - Remembering that i am working with an LPC and a PIC8 tied together. With mios studio loaded, either device can be querried. with the midio128 V2 screen on the monitor, what happens if you send or receive with the device number set to the LPC instead of the pic8?

Johnc

Share this post


Link to post
Share on other sites

On the DINX4/DOUTX4 module, there isn't enough space for polarized connectors... :-/

But at least I considered this on the new MBHP_DIO_MATRIX module, because meanwhile I don't want to miss them as well! :)

Best Regards, Thorsten.

TK,

The MBHP_DIO_matrix would have saved me lots of trouble 4 months ago as I planned encoding 4 keyboards. I followed the same approach, but with a DIN4X and DOUT4X, ending up with encoding capability for 16 matricies which is over kill. I ended up with 4 matricies, three for keyboards, and one for contacts on the SAMS which had to be wired with the diodes on each SAM. This was very "wireing" intensive, whereas the new keyboard matrix would have simplified things greatly. Thanks for your continued work in this area.

have you given any thought to an output matrix? Consider this - Each SAM has 12vdc available on the device which is sufficient for installation of two transistor drivers on each SAM, one for each magnet, with a very limited PIC controller programmed to have one input whereby one magnet is driven with an "on" signal, the other with an "off" signal. The output matrix would do all the decoding and activate each matrix location based on conventional DOUT coding. Actually, why couldn't a bistable flip-flop be used, each side driving a magnet, the flip flop changng state with the "on"/"off" signal from the output decoder. just a thought. Would really save a lot of wiring and hardware. Since each SAM has a pcb attached, the additional stuff could be installed on the pcb. For SAMS that come with a connector already installed, the mod could be done with a small plug on board, with no work needed on the SAMS pcb.

Going a bit further, currently, it takes 2 DOUTS to drive SAMS, for 64 SAMS total with 4 DIN4X. the same "flip-flop" driver on a plug on pcb could be used with conventional DIN4X which would permit 128 SAMS. This would eliminate the ULN driver addition to the DOUT cards.

Does this make any sense?

johnc

Share this post


Link to post
Share on other sites

I guess a simple "what Ilmenator said" won't do here..... ;)

post-3497-0-97660800-1339528734_thumb.jp

DINX4: Box headers can be used on the input lines also with slight modification (shave the corner off of J3 and J6 with a sharp knife else they will run into J1 and J2)

post-3497-0-43739900-1339528772_thumb.jp

DOUTX4: No mods on any connector positions - drop in some box headers and solder!

post-3497-0-57939900-1339528761_thumb.jp

PIC CORE: J8/9 will likely run into the PIC socket (depends on the brand of the header). Shave a bit off the corner of the header with a sharp knife or file and problem solved.

All other connector positions fit without modification.

You are correct TK, the DIN4X and DOUT4X are small. Perhaps Smashtv would entertain a slightly enlarged version.
Those layouts were done with an eye towards build cost and drop in compatibility (including size/mount hole spacing) with the official layouts.

Low cost shrouded/box headers are a relatively recent thing, but that is no reason to assume that I did not consider them while playing trace tetris. ;)

Wouldn't take but a couple of millimeters.
And some design time, and a few hundred $USD in NRE charges/photoplots/screens, and the associated cost to stock two variants of the same module as board and kit etc.....

That does not mean I won't do some smaller prepaid bulk-order style fabrication runs of whatever is needed, and I'm always ready to help turn a schematic into a board layout on my dime for any public MIDIbox related project.

Best regards

Tim

Share this post


Link to post
Share on other sites

hi Tim,

So you are ahead of the game. Thats great! no offense intended. Please forgive if i offended you.

So the box connectors can fit with the off the shelf pcb's, with as you say some shaving. We did that with fitting the ULN2803 chips on the DOUT card as you remember. I am still using those modified DOUT4X pcbs. not the most attractive, but they work. I well understand your point about costs, etc., but I also remember the revisied pcbs to add the ULN chips to the DOUT cards. The adjustment doesn't technically change the card, but lowers the probability that the connectors go on backwards. Not all constructors of your kits have technical backgrounds. most follow the assembly pictures and the words. I'm not offering criticism, just a suggestion. Most assuredly, we don't want to increase the costs of the kits.

Johnc

Share this post


Link to post
Share on other sites
hi Tim,

So you are ahead of the game. Thats great! no offense intended. Please forgive if i offended you.

No offense taken, sorry if my reply had the wrong tone.... Just trying to explain why I did what I did. :)

So the box connectors can fit with the off the shelf pcb's, with as you say some shaving. We did that with fitting the ULN2803 chips on the DOUT card as you remember. I am still using those modified DOUT4X pcbs. not the most attractive, but they work.

I really like keyed connectors on everything and while they might fit the current boards, it is nowhere near optimal with some box headers covering mounting holes and other issues.

I well understand your point about costs, etc., but I also remember the revisied pcbs to add the ULN chips to the DOUT cards.

Absolutely.... I just need to be careful with the timing of revisions due to cumulative NRE costs.

Most assuredly, we don't want to increase the costs of the kits.

I will attempt to minimize the pinheader vs. box header cost difference (by shopping the world for the right supplier/manufacturer). ;)

Best regards

Tim

Share this post


Link to post
Share on other sites

Tim,

no Sweat. you do a great job.

I particularly like the LPC board. it is a super board, and works great for me.

I am involved with several pipe organ situations involving electronic components by Syndyne, Artisan and others, and don't find any of them superior to the midibox modules. The LPC has the capability of toping any of them with a bit more custom programming especially in the Combination action area. With that code added to the midio128 ver 3., you could compete with any of the commercial products.

Keep up the good work.

Johnc

Share this post


Link to post
Share on other sites

Based on very fruitful discussions about the MIDI player capabilities (see ) a new release is available now:


MIDIO128 V3.011
~~~~~~~~~~~~~~~

o USB device settings have been changed.
IMPORTANT: please install MIOS32 Bootloader V1.010 before uploading
the application! Otherwise code upload via USB won't work anymore!
(Backup: upload via MIDI IN1/OUT1)

o 4 USB ports are enabled now.
Note: if your operating system still displays only a single MIDI port for USB,
then unplug the USB cable and remove the USB MIDI driver in your system setup,
so that the driver be installed again once the core module has been re-connected.
E.g. under MacOS this can be done with the Audio-MIDI Setup application
(search for "Audio" in Spotlight)

o support for GM5 driver under Windows.
- upload the application with MIOS Studio
- close MIOS Studio
- install the GM5 driver which can be downloaded from http://www.ucapps.de/mios32_download.html
- start MIOS Studio -> 4 "GM5" USB ports should be visible

o 4 MIDI IN/OUT ports are enabled now.
Pin mapping for LPC17 (see also http://www.ucapps.de/mbhp/mbhp_core_lpc17_midi3_midi4_extension.pdf):
- MIDI OUT3 is available at J5B.A7
- MIDI IN3 is available at J5B.A6
- MIDI OUT4 is available at J4B.SD
- MIDI IN4 is available at J4B.SC

since MIDI IN3/OUT3 allocate analog input pins, AIN Pin #6 and #7 is
not available anymore!

o Matrix DINs are now also inverted with the InverseDIN flag in the
.MIO configuration file

o support for MIOS Filebrowser, which will be part of MIOS Studio 2.4

o It's now possible to record MIDI files!
Press EXIT + first softbutton (under REC)

o Fast Forward and Fast Rewind are now available by pressing EXIT

o rotary encoder now selects the tempo (BPM) in main page

o BPM mode can be switched between Auto/Master/Slave/Lock by pressing
shift button + soft button 2
"Lock" prevents tempo changes from the MIDI file. The BPM generator
is always in master mode.

o play modes: aside from All and Single, we've now also a "Loop" mode
which repeats the selected song

o first MIDI song already selected after boot

o if you scroll the .MID page to the right side, you will find configuration
options for MIDI ports assigned to the Rec/Play/Clock IN and Clock OUT functions

o a couple of minor bugfixes
[/code]

Please note that the documentation at my website hasn't been updated yet!

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

MIDIO V3.012 is available now:

 

MIDIO128 V3.012
~~~~~~~~~~~~~~~

   o USB MSD driver: changed endpoint to avoid conflict with MIDI driver.
     Note that it's still not possible to use MSD and MIDI in parallel,
     but Windows and MacOS should accept the connection (again).

   o the .MID menu got a subhierarchy to improve the oversight: Play and Ports

   o with the new ConvertNoteOffToOn0 setting in the .MIO file incoming
     Note Off events will now be converted to Note On with velocity 0.
     This change is active by default - means: it can be optionally
     displayed in the .MIO file

 

(documentation still not up-to-date)

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Some minor improvements:

 

 

 

MIDIO128 V3.013
~~~~~~~~~~~~~~~
 
   o LPC17: robustness of LCD driver has been improved
 
   o The application boots a little bit faster now
 
   o optional support for up to 32 DIN and DOUT shift registers
     (=256 inputs and 256 outputs)
     Currently only provided as compile option; increase
     MIOS32_SRIO_NUM_SR to 32 in mios32_config.h
 
   o the "sdcard_format" command allows to format the connected SD Card with FAT32
     from the MIOS Terminal
 

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Thorsten, Forum,

Currently,  I have active,  an LPC-17 running 4 (8x8) matricies, 3 scaning keyboards, one scanning pistons, and  10 additional dout stages in 3 DOUT4x pcbs.  The 10 stages of DOUT drive various SAMS on the console which operate at 12vdc from a stand alone 12 volt powersupply.  The LPC is USB powered from a PC running jorgan.  in additiion, there is an 8bit core, fully loaded, 4 DIN4X and 4 DOUT4x connected to the LPC router, and powered by a 9vdc wall wart.  I am running midio128 Ver. 3

my concern revolves around the power supply interconnection on the ground side.

All of the DOUTS in the LPC stream have UULN2803 drivers using the common pcb ground from card to card back to the LPC. which has no ground point for tie in to the 12vdc powersupply tor the SAMS.  Each SAM coil can draw just under 0.5 amps, so it doesn't take too many SAMS to be set or cleared to generate a sizable amp load through the ground path back to the LPC and its USB power source. 

For the 8bit core, the same thing is true, however, the negative leg of the 9vdc wall wart is tied to the 12vdc negative of the 12 vdc Sams power supply.

Question #1 - is the high amp draw of the SAMS thru the pcb grounds to the LPC a problem?  How much load is safe?

Question #2 - How do I develop one common ground point for the 3 power sources, especially the LPC?

Thanks,

johnc

Edited by John_W._Couvillon

Share this post


Link to post
Share on other sites

Hi,

 

 

Question #1 - is the high amp draw of the SAMS thru the pcb grounds to the LPC a problem?  How much load is safe?

 

yes, this can seriously overload the interconnection cables between LPC17 and DOUT modules + the ground plane of the LPC17 module. It shouldn't be loaded by more than 1A

 

 

 

Question #2 - How do I develop one common ground point for the 3 power sources, especially the LPC?

 

I would add additional wires "star-like" between the ground terminals of the DOUT modules (J1:Vs) and the ground of the 12 VDC PSU.

Let the ribbon cables between DOUT modules and LPC17 connected as they are. This ensures that there is also a ground connection between LPC17 and DOUT modules (which is required).

But the main current will flow from the SAMS through the ULN2803s and the additional cables directly to the PSU (and not through the LPC17 module).

 

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Thorsten,

Questiion:  The order of MIO and DOUT PCBs cards and jumpers is LPC  to matrix pcbs first in line then the 3 DOUT4X PCBs, Using ribbon cable and connectors makes the Vs terminals inaccessible. Can I just drill a hole in the ground plane on the DOUTS, install a pin connector with soldered ground lead?

 

Question: with the core 8 Dout Chain, Is only one connectiion from Vs on J1 of the first DOUT to the system ground sufficient. The  existing interconnecting jumpers are 24Ga copper, 0.5 inch long, soldered, J2 to J1 inbetween each card.  Would it harm to  install a larger ga ground from each Vs jumper between PCBs to the common system ground?  Each Uln2803 serves 4 Sams, two 40 ohm magnets each on adjacent DOUT pins, but the on and off coils are not energized at the same time, so max load per PCB is  4.8 amps.  On the core 8 chain with 4 DOUT4X PCBs at  4.8 amps thats 19.2 amps. Realistically,  one  magnet on every SAM either going on or off is not  probable, so applying a diversity factor of  70%, there could be a 13 amp load which could explain why some of the SAMS are not moving as fast as others.  In any event voltage drop in the 24-26ga wire sizes whether ribbon or solid conductor becomes an issue.  Granted 90 or higher ohm magnets would be good, but we use what we have.

perhaps, Smash would consider  higher capacity ground traces on the DOUT4X Pcbs with a higher capacity ground lug apart from J1 and J2.

 

Question:  Would it be better to use one multi-voltage PS providing DC for the LPC at 3 or 5vdc regulatrd,  5vdc, regulated for Core 8 and each I/O PCB and  a stiff 12vdc at 20-30 amps for SAMS, eliminating the Vs cable link in the card to card jumpers, and powering every card through a fuse directly from the PS, or possibly a fuseholder on the PCB.

 

 

Question:  Is it possible to insert a low power LED on  both DIN4X and DOUT4X as well as MIO PCBS to monitor either shift register action, or clock pulses to be able to flush out SR chip issues.

 

The LPC  core is super.  Thanks Thorsten -  I  can see several great applications utilizing the horsepower of the unit with regard to pipe organs and virtual organs.  Unfortunately, i am a bit too old to start a new carrer in programming.  If anyone out there is interested in a discussiion on the subject, please send me a personal email. 

At this point, IMHO, there is only one organ  function that a midibox based organ relay can't do, and thats provide the software to implement a combination action system.  The hardware can do it, and MIOS and  midio128 Ver3. already provides for the I/O functions, but not the capture action, storage and  combination retrieval.  Why have to use a PC or a Mac to run jOrgan, miditzer, hauptwerk when the LPC hac the smarts to do it all?

Thanks,

Johnc

Share this post


Link to post
Share on other sites

Hi John,

 

I don't want to throw another wrench into your project but there is another problem that I don't think you have seen yet. When power is applied to the Dout cards, the state of the output registers are not guaranteed to be set in the off state. I also wish that SmashTV would at least place a very large solder pad on the ground side connection of the board for high current applications. It would also be nice if another pad could be added for the output enable pins for the 74hc595 pin 13. Being able to cut 1 trace on the PCB and adding a single wire to control the enable pins from an external source would give more options for projects like this. Right now your only option is don't apply the 12 SAM power until the Dout chain has been initialized. On my project this looks to be about 1 second.

 

As far as grounds to the Dout cards, I would do as TK suggests. I would connect at least an 18awg wire to each Dout card and connect them to 1 common point with wires as short as possible. I don't like connecting another ground to the LPC17 card since it introduces a ground loop between the SAM's and the ground wire in the ribbon cable BUT I would go ahead and add this LPC17 ground wire anyway and see if all works without problems. If it does create problems, remove it and see if the problems go away.

 

P.S. If at all possible, make sure that the 12v 20amp power supply is isolated from protective ground. The minus (-) wire of this supply should go directly to your Dout common ground and nowhere else.

 

Pete

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now