Contact Us
Language

TinyPilot Provides KVM-over-IP, With Low Cost And Even Lower Latency | Hackaday

tagsHdcp 2.2 Hdmi Splitter

Remote access is great, but if the computer stops starting, stops connecting to the network, or requires low-level interaction (such as BIOS settings or startup management), remote access is useless, because remote access is only available after the host is up and running. The usual solution is to drag the keyboard and monitor to the problematic machine for physical access.

For most people, swapping cables in this way is an uncommon task at best. But for those who work closely with hardware management or software development, the need to plug and unplug the keyboard and monitor into and out of the machine can be annoying. The modern solution is IP-based KVM (keyboard, video, mouse), but commercial options are expensive. [Michael Lynch]

, Including Raspberry Pi and USB HDMI capture devices. It does have to remove the "M" from KVM (which means it does not yet support the mouse), but everything else can be used and can be done through a web browser.

What exactly does TinyPilot do? It can provide remote access through a web browser, but from the perspective of the host, the device is an independent hardware, no different from a physical keyboard and display. This means that keyboard and video access can work before the host starts, so there is no problem even if the BIOS settings are changed.

[Michael] demonstrated his design in the video embedded below, but we recommend you

Attract people to explore all the challenges encountered during the development of TinyPilot.

Interested in? Do it yourself, or as an alternative [Michael]

. TinyPilot does not provide an interface with the host power switch, but if you need to add this interface, you can use

How to integrate the relay module with your own DIY.

Is this feature useful if you work remotely on a system that is not designed for the task I think? According to my experience, most remote work is done on a system with light-off management function (

) Function or VM (Is anyone in Citrix Farm?).

We have servers with IPMI, but still need multiple KVMs to handle failure/failure/failure IPMI, client colocation machines, serial connections on switches, etc. Mainly the first one, because IPMI sucks

Things like iLO are a godsend. I hope that desktop users can integrate it into ordinary systems.

They did it. It’s called Intel vPro. People hate it. The rest of the Intel ME (Management Engine) is because if it’s not configured properly, it’s a huge backdoor, and in 95% of my work, it’s very Configure less in the following locations. All of this makes you vulnerable to someone plugging in the USB and configuring it so that you can provide them with persistent system access.

Ok! I also have such an HDMI capture dongle. My idea is to integrate the camera feed with libvncserver in some way, because I have provided keyboard/mouse support in libvncserver.

It seems that the v4l support in libvncserver is part of x11vnc, so it may not be difficult to make the v4l device as a frame buffer.

Haha! It seems that X11VNC already supports exporting the v4l frame buffer:

Search v4l/rawfb

Therefore, porting keyboard/mouse stuff to x11vnc may be faster than porting v4l stuff to my existing code.

Those HDMI capture dongles are interesting, is there more documentation on them? Which linux driver is it? Is it the main line? Which chip is in these dongles? Any lsusb?

They come in the form of USB Video Class devices and therefore use standard UVC drivers. Look for the Twitter topic referenced in the linked page (Arsenio Dev) for disassembly. I believe the chip is not marked.

More information here:

The Twitter thread is here:

So far, almost all the data available on the dongle:

Or add esp8266 as keyboard and mouse?

If you need serial console access, stm32 blue medicine can also act as a HID keyboard, mouse and USB serial dongle.

It uses Pi4's USB device controller to display as any USB device, in this case a keyboard. I think he just hasn't figured out how to capture the mouse movement in the browser and convert it to a USB report. The second part is very simple, the code has been linked above. The first part is why I chose to use VNC instead of writing my own protocol: the usability of many client implementations!

Can it be programmed to detect the coordinates of the click and then simulate a graphics tablet or touch screen?

MaMe82's P4wnP1 has implemented a USB HID absolute positioning device (not sure of the exact term, but close enough), which will be an exact match of VNC. My code subtracts the previous position from the current position to get relative movement to simulate a more traditional mouse. Obviously, if the mouse exits the VNC window and re-enters from the other direction, there will be a considerable jump.

If the first part is to capture the cursor position, it is very simple.

If it is easy to hide the mouse, it may be difficult to find the motivation to put it together.

I also found that the cheap CH552 can serve as a keyboard and mouse:

They spent 30 cents.

The USB device controller is already built into Pi4 and several other inexpensive SBCs. Of course, you first need a kind of wizard that can handle HDMI streams! It may also be Pi 4, BeagleBoneBlack or Orange / Nano Pi

Does VGA have a dongle at a reasonable price?

In a quick search, it looks like the lowest price captured by vga-usb is $60 on newegg.

I quickly made a Newegg check and found at least one for $11

"VGA to HDMI adapter/converter with audio (old PC with HDMI to new TV/monitor),"

In this way, it is possible to convert the VGA output to HDMI output, which can then be captured by the HDMI dongle.

Is this speed fast enough when changing the display mode?

When I need a KVM adapter, I usually enter the BIOS, select another boot device and similar things. When restarting, most systems tend to change the graphics mode in rapid succession, and the time interval is short, you need to press the correct key sequence to abort the regular startup and enter the BIOS menu or boot menu.

I tried several other homemade solutions and hdmi capture modules. Unfortunately, they either take 3-5 seconds to change the display mode (you can't see anything during this period) or even completely disconnect when the mode changes (Elgato Camlink 4k).

If you don't like it, please crack it.... Have you tried sending screen lock/pause every few seconds? Slow down until the mode change is made.

I have a monitor that looks a bit like this: "Oh, you have changed the screen mode, let me show you a messy corner of it, and I realized that now I want to clear the screen, from inside me The user interface pops up a "screen mode change" box. Now, I will display a few scrambled screens and make some strange clicks when I browse the screen mode, and then I will completely black the screen (counting to 2), making you I think the weird click surprised me, TADA! !! There is the screen mode you want, oh wait, drag it...TA...Oh, push it up and down... Finally, you can go ….. It happens at approximately the required reading speed.

I used to have the exact same ViewSonic monitor. ; D

I have the same idea to use HDMI->USB dongle for KVM type applications.

However, when I got the HDMI->USB dongle, I had an interesting first experience.

I plug it into a Windows 10 PC and try to use VLC to "play" the capture device.

It shows the output of the startup screen, but it is hard to understand blocky and low resolution. I think this device is not suitable for capture rates lower than 1080p.

However, after seeing that the example actually runs normally, I tried the "Camera" application built into Windows 10, and the output looked "great"*.

This is a difference between day and night.

I guess this must be just a problem and/or setting on the VLC application, but I am not sure if anyone knows how to make VLC display the dongle output in a readable resolution.

The first thing that comes to my mind is the codec problem. My impression is that VLC does not use proprietary codecs by default. It may be a free implementation... It may be a newer version or plug-in, or something can solve the problem. .

Under the "Capture Device" option in VLC, you can specify the video size, such as 720p @ 30fps

This is a good intellectual exercise, but not extended. You can buy a user's 16-port IP KVM (the mouse can work in it) for $1,000 or $63/port. The BOM cost of a DIY solution without a mouse is $100.

Well, you said it cannot be expanded...but it is an X user, Y port KVM, you can expand at will.

With a cheaper SBC, the price of each port will drop! For example, any OrangePi/NanoPi board with a USB device controller can do the job well, if all they do is relay MJPG to the browser, and the price of these SBCs is around $20.

You can even get a slightly more powerful SBC, and each SBC can get more HDMI dongles. I am pretty sure that Pi 4 can support 2-4 active HDMI dongles at a time. Then, you said that the cheapest Pi 4 is $35, plus an HDMI dongle of $12 per port, plus a small amount of money, such as atmega32u4 or CH552, etc., to achieve each port USB device controller, and connect to the host SBC through I2C or SPI.

If you want to be fancy, the MAX3420E even has a suitable Linux kernel driver, so it may be a fully supported UDC. However, not sure if the driver (or Linux) supports having multiple concurrent UDCs. MAX3420E is very expensive, unfortunately, each chip is about $10!

Please note that for each HDMI dongle and UDC you have, these are essentially "seats" you want to add, or "users" in IP KVM terminology. In other words, these can be active at the same time, so you can allow 2 users to access different systems without stepping on each other. Many commercial IP KVMs use a single capture device and a single UDC, and then select which system to connect to through a large HDMI switch to achieve this function. That is, a "single user" device.

All this tells me that many commercial IP KVM players have taken their customers to ride for too long!

You don’t need more than one SBC, just a 16-port USB 2.0 hub for $25

In any case, you will never use more than one dongle at a time

If you are using this method: N-port HDMI switch + N-port USB hub + SBC + single dongle. complete.

16-port HDMI switch is priced at $300

Another identical project is here:

. The person I saw last time paired the pi with another device for keyboard/mouse output. Take a quick look today as if they added support for rapi4 with host usb and can simulate cdrom.

Yes, after using it for a while... It seems to be quite mature, rock solid, and has a pretty beautiful web interface. The rpi4 and HDMI csi-2 boards are only necessary hardware, which can be up and running with keyboard and mouse support within one or two hours. It also supports connecting the gpio pin as a physical power switch on the remote hit machine, or reading the power/HDD indicator status, and the emulation CD used to transfer files is very good.

By the way, for those who say that it cannot be extended, supporting other machines is simple, just connect the HDMI and USB switches to the gpio pins, and then set them to activate the control between them.

By the way, for those who say that it cannot be expanded, supporting other machines is simple, just connect HDMI and USB switches to the gpio pins, and then select the corresponding input on each pin to be able to be between the machines Transfer control.

I found that the Belkin 4-port HDMI switch has some remote control, so you can place an IR LED on the GPIO pin and control it in this way.

-or-

The Belkin HDMI switch I included looks like a fairly ordinary "cage LED appearance sensor" infrared receiver, with a cable plugged into them through the headphone jack.

Therefore, if you know the voltage that those IR sensor modules are usually subjected to, you can do the following:

RPi-> GPIO-> (some diodes/resistors)->headphone plug-> HDMI-switch

I want to do this, but I am not proficient in the voltages involved so much that it sounds simple in a focused meeting.

I would also like to know if you can pass the USB KB/mouse signal from each PC to another PC via the extra HDMI port pins in the HDMI switch, but I don’t know except for "the smallest number of switch pins can even be called Other information other than the HDMI switch, those switches actually passed.

In fact, it may be possible to implement HID through I2C (because the HDMI cable includes an I2C bus). Windows provides support for this (

), but I doubt that this will be a general solution, or it will work at the BIOS level.

Maybe this will help. Because I am working remotely and have a 34-inch curved 4k screen (emphasizing screen space), I want my work IT to install a borderless Microsoft mouse so that I can use my personal computer or the same mouse and The keyboard works. Due to the nature of the server/client relationship, they rejected the request. The mouse without borders may be your solution. My solution is to use chrome remote desktop on my work laptop and connect to my work laptop in dual monitor mode. In this way, I can switch to a personal PC that is also connected to the monitor. The mouse and keyboard are still connected to the work PC.

On eBay, that bargain is $8.07, but if you pay another $5, you can get a USB60 instead of a 30fps version.

And how to connect some GPIO pins to the PC's hardware reset switch to force a restart on the hung system?

I think the USB3 version is a scam:

It seems that all cheap USB-to-HDMI capture devices are just different packages around the same MacroSilicon MS2109 chip, so they will all have the same performance.

Those are scams

There is a real 60fps USB 3.0 capture card on eBay, $65 Wiistar USB 3.0. Older and larger multi-chip design. You can find them on AliExpress for $25, so they are still worth it.

At the time of writing this article, I remember that I have a dongle and an orange pizer0, it takes 2 hours to download images,

Update the operating system, and the instructions from

For debian, it works fine (with some problems).

I cut the USB and recognized it, but since I also have the "video capture with loop" function, it doesn't work

(Yes, it’s the same insede chip), because it needs more power, and has auxiliary USB power, and has

When the TV cannot receive any input source, it is a good TV color screen.

That's just a simple test, but if you can power the sbc through GPIO, then you can use a super cheap

NanoPi NEO-LTS starts at $10, if these guys use external power to develop hdmi capture hats

They will have a good product.

Otherwise, you will need to use an external power supply. For this, you can use:

aliexpress.com/item/32640565321.html (25.14)

aliexpress.com/item/4001115514333.html (8.49)

aliexpress.com/item/33038355026.html (3.90)

aliexpress.com/item/4001058817302.html (0.98)

The rest is the software configuration. Now that it’s ready, it’s just time

The last point is that the CPU is really hot, so the heat sink is crucial for this.

The choice in my mind (not that I have tried their products)

The pikvm project has indeed taken off, and even supports user-defined GPIO pins on the web interface to control various devices or display signal status. It is ideal for controlling Aliexpress's cheap physical USB/HDMI kvm switch.

So far, I have seen the most mature and fully open source IP KVM project. Even CDROM/Flash emulation. Still trying to make the Windows server image available for Flash emulation.

Please be kind and respectful to help make the comment section great. (

)

The site uses Akismet to reduce spam.

.

By using our website and services, you explicitly agree to our placement of performance, functionality and advertising cookies.