How to change the MIDI input circuit for 6N137 instead of 6N138?

I'm trying to figure out what modifications to make to the MIDI input section of this circuit to use 6N137 IC instead of the 6N138 shown.

td_libs_MIDI_sch_t3.png

In my searches I'm finding incomplete and conflicting info. Any solid answer? (I'm using Teensy 4.0 and 4.1 if that makes a difference)
 
Thanks for the link jimr but I decided to go the easy route and source some 6N138 instead. I see a lot of conflicting information about the 6N137 and I'm too new to this to make sense of it.
 
Thanks for the link jimr but I decided to go the easy route and source some 6N138 instead. I see a lot of conflicting information about the 6N137 and I'm too new to this to make sense of it.

@dannytaurus:

Have a look at <this thread>, which appears to describe a successful implementation with the 6N137.

Mark J Culross
KD5RXT
 
While not qualified to say, what I read is the 137 can tolerate a much higher impedance pullup and so the using the internal one makes sense to me.

I believe lower value pullups would still work and that higher values are recommended to mitigate high-frequency noise from the fast switching speed.

The Darlington pair in the 138 switches much more slowly and needs a more aggressive (lower impedance) pull-up to work, even an MIDI speeds.
 
@dannytaurus:

Have a look at <this thread>, which appears to describe a successful implementation with the 6N137.

Mark J Culross
KD5RXT

Sorry, apparently my phone corrupted the pasted thread link . . . it's <here>.

Note that one of the posts in this same thread seems to imply that the output from the 6n137 is inverted from the normally used 6n138 opto-isolator, so you may be bumping into that as well. The thread includes a couple of possible work-arounds which should allow you to make use of the 6n137.

Mark J Culross
KD5RXT
 
Try this:-

Code:
#include <MIDI.h>
MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI); // MIDI library init

void setup() {
  MIDI.setHandleNoteOn(midiNoteOnCallback);
  MIDI.begin();
  Serial1.begin(31250,SERIAL_8N1_RXINV);
}

void loop() {
  MIDI.read();
}
 
Back
Top