Jump to content

6x6 Midi Router CORE_LPC17 based


Ripper
 Share

Recommended Posts

Hi my friends.

I'm fresh meat on this electronic circuitry planning thing, so noob doubts are something that I have A LOT. (not an issue for me to solder or etch a pcb if I have the final project file though, just fixed two old midi mergers this month, lol)

I've been reading some things here and at the uccaps.de fabulous pages, and would like to do someting like a 5 In 1/2 out Midi Merger.

So, the question is: May I do it without having to go for the router project? How?

It's not that I think I couldn't build the Router, but more a question of going for the cheaper option. I admit I don't have a clue of where to start or which is the cheaper way of doing this.

I suppose that the midi router would be the answer, but the cost is something that counts a lot here.

By the way, C programming is not my land, I'm an SQL guy. Obviously I thing I can tweak some things in C if I'm guided on the right direction.

Please, appologise the noob here for this one, but believe me, I am reading on a daily basis on this, and can't see an alternative for this without being the midi router.

Best regards.

Edited by Ripper
  • Like 1
Link to comment
Share on other sites

Today, with the MBHP_CORE_LPC17 core, it's probably better to create a MIDI merger based on MIOS32, especially since you will get USB-MIDI (and even OSC via Ethernet for wireless transfers) for free!

E.g. have a look into the MIDI 4x4 application: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fmisc%2Fusb_midi_4x4%2F

The APP_MIDI_NotifyPackage() function in app.c routes the MIDI events, even for a SQL guy it should be obvious what has to be changed to route all inputs to a single output, no? ;-)

Best Regards, Thorsten.

Link to comment
Share on other sites

Today, with the MBHP_CORE_LPC17 core, it's probably better to create a MIDI merger based on MIOS32, especially since you will get USB-MIDI (and even OSC via Ethernet for wireless transfers) for free!

E.g. have a look into the MIDI 4x4 application: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fmisc%2Fusb_midi_4x4%2F

The APP_MIDI_NotifyPackage() function in app.c routes the MIDI events, even for a SQL guy it should be obvious what has to be changed to route all inputs to a single output, no? ;-)

Best Regards, Thorsten.

Thanks TK

To be absolutely honest I was already convinced that the way would be the midi router project. As such, I've been reading on it and doing my maths (AKA €, lol) with your part lists help ;)

Now, with this CORE_LPC17 of yours you messed all my plans, hehe.

Have to start everything again and see if I really have the needed courage to do a 2 side PCB etching AND figure the right approach to the "periferal" MBHP boards I should need to "convert" from your original Core V_3 Midi Router project to the new CORE_LPC17.

About the MIOS, it looks easier than I thought, althought I'm aware that the doubts on these things only appear when you really put your hands on it.

Obviously, If I'm going for "some" changes (for me, as a noob, any change to the original is a headache) from the base project, I will try to get the most out of it.

That being sad, I am considering a 6x6 routing approuch, so that I wouldn't need the ESI M8U Midi Interface, the midi mergers and to change cables everytime I need to sysex the synths anymore.

My encyclopaedia of doubts will come up to this thread as far as i'm reading more on the CORE_LPC17 thing.

Once again, a big thanks from Portugal to TK.

Cheers,

Joao

Link to comment
Share on other sites

First 2 doubts (Those noobs...:( ):

1- As far as I can understand midi in/out3 goes to J5b and midi in/out4 goes to J4b. In the extensions example there is no "J2" for slave chaining as it does on the IIC modules schematics. How should I "chain" the 2 extra in/outs I need? (I need 6)

2- J5a/b should be enough for direct connection for the 6 buttons and 1 knob, or do I have to shut up and keep on reading (herm... I know i must)?

Thanks for the answers you may give to me!

Edited by Ripper
Link to comment
Share on other sites

As I do my reading I think the answer to my doubt 1 is called J4A, am I right? (using IIC Midi Modules, of course)

Obviously I wouldn't mind if I could use the "no PIC" option, used in J4b and J5b, but I thing I'm putting my feet on moving sand! :)

Edited by Ripper
Link to comment
Share on other sites

Yes, J4A is free for IIC accesses.

Handling the IIC_MIDI interface requires a bit more code, see this test app: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fmios32_test%2Fiic_midi_check%2F

The RI signals if the IIC_MIDI modules have to be connected to J10.D0..3 (see the LPC17 configuration in mios32_config.h)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi guys,

How can I connect the extra usb ports? I mean: On the LPC core's PCB.

Is this ALPS STEC12E encoder, 24/24, vert, MT encoder good for the LCD control of the Midi Router? http://www.reichelt.de/Drehimpulsgeber/STEC12E08/index.html?;ACTION=3;LA=446;ARTICLE=73923;GROUPID=3714;artnr=STEC12E08;SID=11T5Bwf38AAAIAAGwLjiw41da7f1eb285e7486cb567cc7d8aeaf6

Just ordered some of the parts (LPCXpresso, LPC_core17 Pcb and IIC pcb). Would like to order the rest from Reichelt, but have this doubt on the encoder.

Best regards,

Joao

Link to comment
Share on other sites

There is only a single USB port, it will open multiple MIDI interfaces on your PC.

If you are working on a Mac, and if you downloaded another application before which only specified a single MIDI IO port, you have to remove the old config from the Audio/MIDI Configuration, and re-power the core to get all 4 interfaces.

Yes, ALPS STEC12E will work.

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 3 weeks later...

Hi guys, Just to inform you that this project is not forgotten or the forum is ignored.

I've been collecting the parts I need for the project. Already have Pcb's, NXP LPC1769 and the LCD. Next month will be the rest.

Still searching for the way to go for the enclosure, but probably it will be something like an old vcr enclosure or similar. In time it could be changed for a more deserved one.

A big thank you for this great community and all the knowledge that TK and all the other mages share with us, mere noobs.

Best regards,

Joao

Link to comment
Share on other sites

for the eclosure : you can make the faceplate and the case easy from Acryl and MDF

- just make the plate with "Frontplattendesigner" export it to .dxf

- open that in "Inkscape" ,

- correct the mistakes, corners and lines , make the changes to 0,01 mm line and RGB-color B255 (for Lasercut the lines you have drawn)

- save as .svg and send it to Formulor/Ponoko :)

( you can engrave text and later fill it with color or use transparent Acryl and make the text behind the "glas" )

Edited by Zossen
Link to comment
Share on other sites

for the eclosure : you can make the faceplate and the ease from Acryl and MDF at Formulor.de

- just make the plate with "Frontplattendesigner" export it to .dxf

- open that in "Inkscape" ,

- correct the mistakes, corners and lines , make the changes to 0,01 mm line and RGB-color B255 (for Lasercut the lines you have drawn)

- save as .svg and send it to Formulor :)

( you can engrave text and later fill it with color or use transparent Acryl and make the text behind the "glas"

but i still have not found out how to convert text :question: )

I'll consider your advice, Zossen. :hug:

Thanks

Link to comment
Share on other sites

Hi my friends.

While i'm waiting for the rest of the parts to come, i'm reading and doing the work I can with the parts I already have with me.

So, to start I'm trying to flash the bootloader for the lpc17, by following the tutorial in uccaps.de. The problem is that the LED on the LPCXpresso doesn't change from 2 to 3 flashes after I disconnect the usb cable and reconnect it.

What am I missing?

Link to comment
Share on other sites

Doing my homework, while I don't get my hands on the solder iron, I'm trying to make a start on the software part of the project.

I'm trying to understand this IIC address thing.

I know I have to have one IIC.asm per IIC Midi Module, so the first one would be IIC_DEVICE_ADDRESS EQU 0x10. What would be the other ones: 0x12, 0x14, 0x16? What about the other 2 Midi I/O's of the core?

And the physical assignation we need to put on J3 pin's. Is there any special procedure for that?

I'm absolutely sure that those doubts are answered somewhere in the Wiki, but it is a matter of security, not leasyness, as I am very new to this Microcontroller/PCB/C/Assembly thing.

Edited by Ripper
Link to comment
Share on other sites

Please remember that the LPC17 core supports 4 internal UARTs as documented here: http://www.ucapps.de/mbhp/mbhp_core_lpc17_midi3_midi4_extension.pdf

Using these UARTs is the preferred solution as the system load is minimal.

(I'm not saying that the load generated by 4 IIC_MIDI modules is high, but the perfect solution would use as less IIC_MIDI modules as required)

So, you only need two IIC_MIDI modules, and since the IIC address selection is done via jumpers, you only need a single firmware (just the precompiled .hex file) for the PIC16F88

The required jumper settings are documented at the MBHP_IIC_MIDI page: http://www.ucapps.de/mbhp_iic_midi.html

Search for "Configuration and Interconnections", there is a picture which shows how to stuff the jumpers for address 10 and 12

Following application can be used to test if the LPC17 core can access the IIC Modules: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Ftroubleshooting%2Fiic_midi%2F

Once this test is working, the part for a merger application is simple:

just use UART0...UART3 ports to access the internal MIDI ports, and IIC0..IIC1 to access the IIC_MIDI ports

E.g. you could take this app as a basis:

http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fmisc%2Fusb_midi_4x4%2F

and enable IIC_MIDI in the mios32_config.h file:


// enable 2 interfaces
#define MIOS32_IIC_MIDI_NUM 2

// Interface and RI_N port configuration
// _ENABLED: 0 = interface disabled
// 1 = interface enabled
// 2 = interface enabled, check RI_N pin instead of polling receive status
// _RI_N_PORT: Port to which RI_N is connected
// _RI_N_PIN: pin to which RI_N is connected
#define MIOS32_IIC_MIDI0_ENABLED 1
#define MIOS32_IIC_MIDI0_RI_N_PORT GPIOC // not used due to mode #1
#define MIOS32_IIC_MIDI0_RI_N_PIN GPIO_Pin_0

#define MIOS32_IIC_MIDI1_ENABLED 1
#define MIOS32_IIC_MIDI1_RI_N_PORT GPIOC // not used due to mode #1
#define MIOS32_IIC_MIDI1_RI_N_PIN GPIO_Pin_1
[/code]

Note: RI_N isn't used here, therefore the GPIO settings can be ignored (they are only valid for STM32, I'm unsure if the driver is ready to support LPC17 as well)

Best Regards, Thorsten.

Link to comment
Share on other sites

I know that we can only use 4 UARTs, but would it be worthewile (Or feasible) to add a core 8 (I suppose by CAN) to sum the 2 extra IIC Midi Modules I need, or is there another solution for this?

For now I can use the 4 UARTs plus the USB ports, once that one of my machines is a Kurzweil PC3K and the other is a Roland Fantom XR,both of them with USB midi. The problem is for future, once that I (Who does ? :) ) don't think to stop my GAS for ever :)

Edited by Ripper
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...