Jump to content

MIDI merge


latigid on
 Share

Recommended Posts

Another idea to modify a MIDI merge with to_com I/O: add a MIDI output. Two I/O's, one at 38400, the other at 31250 bps. This would make a serial port to midi interface, also called baud rate converter, for those who can't or don't want to add USB/PCI/whatever MIDI interface, but have spare serial port. There is a serial MIDI interface driver for Linux in Ubuntu-Studio: see alsa.opensrc.org/index.php/Serial

Is there enough memory and processing power left in a PIC to add a software serializer and some flow control to the existing merge and software deserializer ?

Out of MIDIBox, there is another solution which I will evaluate too: the 8051-based serial interface from maxmidi.com . It will cost less for me (except for a bigger PCB) because I have recycled several 8031 + EPROMS 8)

Update: this interface design from yesteryears is a piece of crap, dead with only Win3.1/95 driver :P, there is no PCB, cheap power supply drawn from RS-232 lines, transistors and opamps instead of a true line driver/receiver like MAX235, complex 8031 code (software uart), hard to hack without source code... maybe well for mass production with low power x51 mpu, if able to be sold under $30, but not for DIY kits where part of the fun is in hacking, not buying programmed components.  I will redesign it with a second external uart.

Link to comment
Share on other sites

  • 6 months later...

I finished and test my first MM board :)

The downloaded firmware did not work with a PIC16F877A

(programmed with an universal programmer, not a cheap hack).

It was successful after editing midibox.h to add 'A' there:

#ifdef __16F877A  #include <p16f877A.inc> and rebuilding with

MPLab IDE.

The PCB layout has some mods:

-7805 laid down on copper side with tab contact to ground

-4 SMD leds and their resistors between PIC pins

Link to comment
Share on other sites

Glad it's working :) Would be cool to see pics of your board mods too!

It was successful after editing midibox.h to add 'A' there:

#ifdef __16F877A  #include <p16f877A.inc> and rebuilding with

MPLab IDE.

Thanks for this info! I have edited the code for the new (GPASM-based) toolchain according to this, I wonder if you would mind testing it for me, before I commit the source to SVN? I will email (or attach here or upload or whatever you like) the code with the hex files already built, and anything else that makes it easier for you :)

Thanks!

Link to comment
Share on other sites

  • 6 months later...

Wiht a capital 'A' in the include filename, it returns this warning:

./16f/midibox.h:26:Warning [230] found lower case match for include filename
Fortunately the assembler is smart enough to just use the (silghtly) incorrect filename, but it still builds that way... Still, I thought it best to avoid it, so I hope you don't mind that I made a change:
#ifdef __16F877A
#include <p16f877a.inc>
#endif
Note the lowercase 'a', I guess this is a difference between GPASM and MPASM. I have confirmed that all versions of GPASM use this lowercase variant designator. The necessary change in the makefile to enable this, is:
midimerger_pic16f87x.hex: 16f/main.asm
	gpasm $< $(GPASM_FLAGS) -I ./16f -p 16f877a -o midimerger_pic16f87x.hex
Note that although I have used the lowercase 'a' here, the assembler is smart again and will create the define with the capital A regardless of which case you use here, so
midimerger_pic16f87x.hex: 16f/main.asm
	gpasm $< $(GPASM_FLAGS) -I ./16f -p 16f877A -o midimerger_pic16f87x.hex

Also works.

Anyway the hex:

Thanks for testing!!  :)

midimerger_pic16f87x.hex

midimerger_pic16f87x.hex

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