TLDR : My brand new laptop did not support DisplayPort over USB-C. I had a Raspberry Pi lying around unused, with its RJ45 and Ethernet ports, and I felt that I should be able to use it to bridge the gap between my laptop and my 2nd external monitor. After a lot of trial and error, I managed to get to something that I can comfortably use daily. This is a tutorial to reproduce this project in the form of a detailed writeup
I made this project a few months ago, and got some good feedback when I shared it. I also made a Github repo with scripts and config files (there is a link in the blog post), but I did not get a lot of feedback on it.
Anyway, I’d love to read your thoughts about this project.
I’m also looking for lemmy communities related to DIY tech projects and Raspberry Pis, so feel free to recommend some communities :)
Thanks for posting - you did a fantastic job documenting this in the blog post, including troubleshooting and issues you ran into, which is really generous of you - I can tell you put a lot of effort into getting this to work as well as it does – the video of the screen working is pretty impressive.
Although you’re connecting the pi and the pc directly with your ethernet cable, if I wasn’t concerned about encryption of the screen data then it looks like this could run over on any network including the internet, provided the pi was at the destination endpoint, right?
I’m not immediately clear whether you can just configure the interfaces manually instead of using a local dhcp connection and whether I could just give the ethernet port a separate address on the existing network - is this only because you want the unencrypted screen traffic not to be on your network or is latency the bigger issue there? For most use cases I can think of (which would be remote displays for monitoring systems) a short latency isn’t a big deal, but running a screen over the network would be a potential solution.
I recently asked a monitoring vendor for a solution like this to enable an HDMI display remotely for their control center app and they came back suggested that the customer should deploy small form factor PCs running their app and connected to the displays, which seemed ludicrous to me, but that’s what they did.
Lemmy is growing pretty fast, so if you’re unable to find a community that looks like it’s aligned with your specific interests, then go ahead and create one :)
I have an idle pi 3 here – when I have some free time, I’ll see if I can make this work on my local network. Thanks again for the great writeup.
Thanks for the feedback!
I’ve tried it over my WLAN (both the Pi and laptop connected wirelessly) and the latency increases to a point where it’s not comfortable to use the keyboard and mouse with it. However it was fine for displaying
htop
or similar monitoring tools.Latency should increase even more if you use it over the internet, but the bitrate is quite low so the stream should remain fluid with reasonable latency. You should be able to encrypt the stream by looking at ffmpeg’s documentation, but I don’t know how the Raspberry Pi will handle the additional load.
To answer your question, I used a single ethernet cable to link the laptop to the Pi both because of unencrypted traffic and latency.