By now it’s likely that most Hackaday readers will be used to USB display adapters, in their most common form channeling DisplayPort over the ubiquitous serial interface. Connecting to projectors and other screens with a laptop becomes a breeze, and gone are the days of “Will my laptop work in the venue” stress for people delivering presentations. [Avra Mitra]’s STM32 tiny monitor may not ascend to these giddy heights, but it does at least live up to the promise of reproducing a desktop onto a small colour LCD hooked up through a USB port.
Not through any DisplayPort wizardry though, instead it relies on a Python script that takes successive screen grabs and streams them through USB to the microcontroller, which in tun puts them on the display. It’s claimed to achieve 6 to 7 frames per second as you can see in the video below, with an admission that there remains a huge scope for improvement.
Notwithstanding its limited utility at the moment, we can see that maybe this idea could have its uses in a very basic display after a few improvements. Meanwhile, more conventional monitors take the established route of pairing a dedicated controller board with an LCD panel.
Thanks [Pyrofer] for the tip.
Transferring screenshots over USB is a sort of homebrew version of DisplayLink. I’d look at that for any potential improvements.
Yeah, I think Jenny was thinking of DisplayLink rather than DisplayPort.
Just wanted to add that there is a fairly new project under way to implement an alternative to DisplayLink in recent Linux kennels, with receiving implementations on Pi Zeroes. So if you have a spare hdmi screen and a Pi Zero, you can address it over usb from your main PC
Would you mind sharing a link to the new project?
I think this is it…
GUD
https://github.com/notro/gud/wiki
Story about the dev
https://www.phoronix.com/scan.php?page=news_item&px=Linux-Generic-USB-Display
https://www.phoronix.com/scan.php?page=news_item&px=Linux-Generic-USB-Display
It’s over a year old now but does include a link to the mailing list where most of the conversation seems to take place.
The driver is mainlined now, in 5.13 and later: https://www.phoronix.com/scan.php?page=news_item&px=Generic-USB-Display-GUD-5.13
https://www.displaylink.com/downloads/android
Similarly for android and that old tablet you’ve got kicking around…
Sadly this is the opposite, it turns the android device into the CPU for a displaylink dock.
What I’d love to find is an application that makes the old android tablet into a USB connected screen.
Hell I’d settle for wifi connected and a virtual screen being streamed and decode it with VLC on the android.
If anyone has sen such a project ??
I came across this recently
https://www-tomshardware-com.cdn.ampproject.org/v/s/www.tomshardware.com/amp/how-to/use-tablet-or-phone-second-monitor-linux?amp_gsa=1&_js_v=a6&usqp=mq331AQFKAGwASA%3D#amp_tf=From%20%251%24s&aoh=16241469113713&csi=0&referrer=https%3A%2F%2Fwww.google.com&share=https%3A%2F%2Fwww.tomshardware.com%2Fhow-to%2Fuse-tablet-or-phone-second-monitor-linux
Seems like you’d need a Windows display driver to give Windows a target to be aware of/render into.
Maybe vulkan could be used.
There are some commerical apps like twomon that will do that, at least under windows. Only cost about five bucks (and your soul ;-)
Why not instal it on keyboard and moving command bar (wifi indicator, volume etc) to keyboard and free the screen area
Will I one day be able to hook up my multitude of collected vga monitors to my pc? I would live to hook up 5 of them for low refresh display of spec sheets/ docs etc.
Not a hack, but usb to vga adapters are a thing these days, and they can be had for fairly cheap (around $10 on Amazon or other online retailers). The cheap ones are often plug-and-play on windows, but some assembly is required for linux and mac.
DisplayLink (mentioned in comments above) was one of the original companies to develop a USB-to-external-monitor solution, and they have good drivers for pc/mac/linux, but displaylink certified adapters are usually a lot more expensive.
and, to your original point, while performance becomes progressively more terrible as you add more, and some less-good USB implementations will choke to death eventually, there’s nothing stopping you from plugging a bunch of these into the same computer.
(and, just to clarify, and go all-in on excessive comments since I can’t edit, USB-C passthrough adapters can also support VGA, but that’s not what I’m talking about – these are typically old style usb 2.0 or 3.0 and, for better and worse, they’re not taking advantage of your existing graphics card to do rendering)
I’m sorry but I am not getting the jist of this. While a bit pricey in the past you can pick up a Mimo 10″ Touchscreen USB external monitor for $100 or less on eBay. As I understand it works in real-time and doesn’t do screen grabs…. and it is a touchscreen.
Those monitors are DisplayLink over USB. This is absolution that doesn’t require display link to work.
This is cool. I’ve been wanting to do something like that myself. Hadn’t thought of using those tiny displays.
Re-inventing VNC?
I never thought this project will be on hackaday. I’m super happy indeed.
Anyway, the main purpose of this project is nothing but to help me learn how USB works. That’s it. I’m currently learning USB and decided to make something that involves USB.
This one has no practical use (at least that’s what I think).
Thanks Jenny List for this awesome article, thanks everyone for your comments here. :)
What I want is a way to turn an Android or a tablet into an auxiliary keypad with programmable “keys” (think PF13 to PF99). Has anyone seen anything like that?
Some Android tablets can enumerate as keyboards when connected over USB. Worst case, you may need a rooted device to load the appropriate configuration. Then, an app to display the desired “buttons”, and translate those into keypresses coming over USB.
Could almost imagine an old phone/tablet with the battery removed, with a custom ROM booting directly into the “keyboard” app. Could be controlled/configured using e.g. a serial port over the same USB connection if needed.