Buffering serial communication lines over long lengths

So I have this problem, I have a 16x4 button light matrix for my Midibox SEQV4 that I am trying to add as a peripheral via mini Din8 cable (so I can unplug it). With a very short ribbon cable, it works fine but with a slightly longer din cable, I cannot get the output from the blm to talk back to the core reliably, some buttons function, some dont at all, some trigger 2 or 3 steps at a time. The outputs from the core work fine however.

A little background on my SEQV4: STM32 based so the serial lines are 5v. The core connects to the control surface by a ribbon approximately 30 cm long where the are 5 or 6 165s and 595s. The BLM is chained to the control surface serial output and has 3 or 4 165s. I have the shield of the din cable hooked to ground which helps but isnt enough. I’m at the shortest possible length right now (~12 cm) and it doesn’t work, I’d like to have ~30 cm

I am hoping I can use a hex inverter buffer type setup to give the serial lines going back to the core a bit more juice to allow me some more length but this is far from my area of expertise so any input would be appreciated

While the MCU usually has internal nice drivers that even may power an Aircraft Carrier, the 165s are a bit whimsey, so you could try to buffer the outs from these - a 4050 is here your friend:

Or you could try some Schmidt Triggers on the MCU Side to keep the signals clear wit a 7414

If you have a scope take a look on the signal, if its smeared you are in trouble zone, you want nice rectangles…

cool, that’s what i was hoping. 4050 would be at the blm output correct?

Thats what i would try first as i have some 4050s at hand. or just use some cheapo Transistors :wink:

edit: Just checked stocks - 7414 beats 4050 by 10 to 7. I am the greedy collector i guess

yeah, i use them regularly to buffer midi signals. will report back

can i get a proofread?


Is a 2 Sided PCB not a tiny bit of overkill??

Not if you don’t home-brew it.

@ ilmenator : I think you will like my approach, case will be here next week and I used a mini DIN8 cable and connector so I can unplug it. This is all that’s missing

@fcd: I’m spoiled, OSHpark is like having a PCB printer for my computer

Some of the traces on the bottom layer:

  • Could be moved to the top layer.
  • Are actually touching pads. I’m surprised this one passes DRC.

will double check. Eagle render may be the culprit here since when each layer is isolated, its OK

@altitude: Looks like you moved X1 after DRC? Pins 5 and 6 seem to be connected.

OSHpark is great.

erm, need to dial back the late night trace routing. Lets try that again: