5

I would like to use the Raspberry Pi 3B+ to operate the rectangular HyperPixel 4.0 touchscreen from Pimoroni. However, I don’t want to plug the touchscreen directly onto the Raspberry Pi, but instead use a 3.5 meter long cable to connect the touchscreen to the Raspberry Pi.

My structure is such that I bring the Raspberry Pi to a circuit board using a 40-pin cable. From there I pick up the I²C signal so that I can connect some I/O’s on the board. There is also a 40-pin connection on the circuit board, to which I can connect my 3.5 meter cable to the HyperPixel 4.0.

When I still had the cable connection from the circuit board to the HyperPixel 4.0 with a 40 cm cable, everything worked fine. However, when I replaced the 40 cm long cable with the 3.5 m, the display only flickered, but the touch still worked. I replaced the 3.5 m cable again with the 40 cm cable and the image display on the touchscreen still didn’t work. However, if I plug the HyperPixel directly onto the Raspberry Pi header again, everything works again.

At first I thought it was the I/O board that connects the Raspberry Pi to HyperPixel, but replacing this board didn’t help either. I’m at a loss, because I don’t know where to start troubleshooting. How can I do it?

3
  • Why do you need to screen 3.5m from the Pi?
    – CoderMike
    Apr 25 at 12:29
  • 4
    If you need a RPi remote from the screen, perhaps you could have one RPi connected directly to the touchscreen and another RPi connected to the first via Ethernet. Apr 25 at 18:27
  • 1
    Is "DPI" in your title supposed to be "MIPI DSI" (which is the tag you used) ?
    – Ben Voigt
    Apr 26 at 18:32

4 Answers 4

12

All cables have a length limit. When you exceed that length limit, the signals in the cable attenuate due to resistance of the cable, get deformed due to capacitance and inductance in the cable, and radio waves both leak out of the cable and into the cable causing external RFI and internal noise. If there are multiple wires in the cable, you can also get cross talk, where signals from neighboring wires leak into each other. (Longer more advanced cables might also have timing issues caused by the length of the cable.)

If attenuation is the only problem, you can add a booster. However ribbon cables, especially something like 40 pin wide ones, suffer all of the above problems even if the cable is only a few feet long, and there is no way it is going to work over a meter!

The only solution for longer cables is to change to another signal format (like HDMI(7m?) or ethernet(100m)) that is designed for longer cables with sufficient bandwidth.

For high bandwidth / high frequency signals, to get any significant length, you need to use transmission lines which internally use either twisted pair or coax or something similar which tries to reduce radio leakage in the cable, and the signal is designed to take advantage of the inductance and capacitance in the cable rather than have their signal mangled by it.

6
  • 180m ethernet cable? Aren't they limited to 100m. And please, please, don't use obsolete "units" with multiple, incompatible definitions such as feet. Apr 26 at 16:33
  • @12431234123412341234123 Probably a typo, but actually there is a standard (802.3cg) for 10Mbit Ethernet over twisted pair at up to 1km. Plus Ethernet over fiber, which can of course go even further. And cut the hyperbole if you want to appear adult.
    – hobbs
    Apr 26 at 19:04
  • 180m is correct for 1G ethernet using cat5e twisted pair cable. Old thicknet (10base5, coax) it was 200m. 10G with cat6a copper twisted pair is shorter, maybe 100m. Fiber doesn't really have any limit, because you can easily put boosters in it. or increase the input power. They do trans-oceanic cables that way (fiber with inline boosters every 50km or so) but I don't know what protocol that uses.
    – user10489
    Apr 27 at 1:57
  • Sigh. Looking it up, you are right, 1G ethernet is 100m and 55m for 10G. I claim bit rot.
    – user10489
    Apr 27 at 2:05
  • @user10489 The problem is not just signal integrity but also delay and you can't beat light speed. Apr 27 at 10:40
5

Your Hyperpixel has a resolution of 800 x 480 x 60fps, so the data rate is 23,040,000 pixels per second, plus some gaps for synchronisation.

You can't send such a fast signal over an arbitrarily long cable. You're basically dealing with radio frequencies, and it won't take much cable capacitance & inductance to degrade the signal so it becomes unusable.

2
  • 1
    Alright, so what can i do? Are there any useful filters? On the Touchscreen, there are 300Ohms resistors for each data line. Are they to filter the Signal?
    – manintree
    Apr 25 at 9:38
  • 1
    The resistors are probably 30 ohms, and are there to damp down any reflections. Filters won't help, as you don't have a problem with external noise; in fact, your long cable is already acting as a filter, slowing down the (very fast) signal so it is unusable. What to do? Shorten the cable, or use an alternative display (such as HDMI) that is designed for longer cable lengths.
    – jayben
    Apr 25 at 10:22
2

Think about what else is connected to your Pi which should be 3.5m away from the screen. Are those USB devices? Some I2C sensors? A power supply?

It could be that your best option is to keep the screen plugged into the Pi and have long cables for everything else you need in your system.

2
  • usb2 cable limit is 16ft I think
    – user10489
    Apr 27 at 2:01
  • @user10489, yes, and 16ft > 3.5m Apr 27 at 6:51
1

The bottom line is that DPI was simply not designed for those kinds of distances. It might be possible to stretch it out by building something like a custom cable with individually screened wires (or at least a ground between every pair of signals) and then experimenting with different terminations on the signal lines, but it would be at best a horrible hack.

Either you need to locate the Pi with the screen, or you need to use a screen that uses an interface that is designed for long cables like HDMI.

1
  • No matter how many ground wires you use, flat ribbon cables have high impedance, 2x-3x higher than typical PCB lines. This means the OP will have to remove the existing termination resistors from the devices rather than add more termination in parallel. No good way to do it really. Apr 26 at 12:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.