Raspberry Pi KVMs Compared: TinyPilot and Pi-KVM v3
jeffgeerling.com
jeffgeerling.com
// I'm the author ;)
After all, hardly any point of having a open-hardware HAT if you connect it to a closed-hardware Raspberry Pi. Even if the full schematics etc were available, the processor on the Pi is anything but open.
I have some cheap rackable server w/o KVM feature and I was ready to order an ASROCK Paul https://www.asrockrack.com/general/productdetail.asp?Model=P... but looks like I will definitely go for a PI KVMs
Happy to answer any questions about TinyPilot or KVM over IPs.
Lets say that I prototype something on dev board like something from Raspberry Pi, or ones from STM. Now I want to do a full product, (like the Tiny Pilot) with the microprocessor on a custom PCB board with just the necessary hardware.
I understand that you have to design the schematic and then get the PCB layout done, but in terms of figuring out which pins to connect, is it just a matter of figuring it out from the microcontroller manual? Additionally, how do you end up programming the microcontrollers, do you have to have a separate programmer since you don't have all the stuff on the dev board?
Programming microcontrollers is done using an in-circuit programmer, which connects to a header on the board. Adafruit has a great tutorial for this: https://learn.adafruit.com/proper-step-debugging-atsamd21-ar...
pretty much, you might end up tweaking which pins you use when designing the pcb because the one on the other side of the chip is just as good, but it simplifies the routing and layout of the board significantly.
The Voyager 2 will use custom PCBs for the HAT, but it will still be on top of the Pi.
In the next iteration, I'd like to use the Pi Compute Module to migrate to my own custom board, but I'll need to work with an EE firm on that, since I'm not knowledgeable enough about EE for that kind of project.
All existing CSI bridges that you have used so far have two very serious problems: they do not work with audio capture and due to HDMI backpowering, your Raspberry may stop booting until you physically disconnect the cable. Backpowering is especially common when using KVM switches and some HDMI converters.
Both of these problems are solved on v3 HAT, thanks to our CSI bridge design. Are you planning to solve these problems? Just interesting :)
There's no audio support, and audio would be a nice-to-have, but it's not my top priority at the moment.
I'd like to integrate the TC358743 onto the HAT itself, but Toshiba's got a huge lead time on orders right now.
Worth noting that your typical STM32 MCU is quite different class of device compared to the Broadcom SoC on a RPi. From a architectural point of view, the big difference is that MCUs typically have both flash and ram integrated in the package, while SoC requires external ram and flash. Designing PCB for high-speed DDR memory is not trivial. Modern SoCs come in high-density BGA packages usually sporting close to thousand pins (or more!), while MCUs usually come in more easy to work with packages with order of magnitude less pins.
Specifically the Broadcom chip in current RPis is custom made and not generally available.
yes. if you're using ST parts i suggest using their CubeMX tool, if only to figure out pin assignment. makes it way smoother.
i've seen multiple real projects with real engineers who should get this shit right screw up pin assignment.
also seen them just... not read the data sheet. i don't understand how they expected the board to work, but, it happened.
And do you listen to any of these Covenant Network radio stations that are now under TinyPilot’s control?
I started work on that earlier this year, but I paused it to focus on PoE. That work is almost done, so I should be able to revisit ATX early next year.
The challenge is more on the UX side. It's not that hard to connect the Pi's GPIO pins to a motherboard's ATX pins, but I want to do it in a way so that it minimizes the amount of nitty-gritty pin-matching that the user has to do to connect it correctly.
>And do you listen to any of these Covenant Network radio stations that are now under TinyPilot’s control?
I don't think they'll reach me out here in Massachusetts, but if I'm in the midwest, I'll check 'em out.
In this context, however, there's an additional expectation that these devices make this happen over a network, so that you can handle things like BIOS configuration fully remotely.
Yeah, the important distinction here is that these devices somewhat fulfill the role of a standalone IPMI[1] device. IPMI is typically built into server motherboard (SuperMicro) which allows an administrator to reboot a machine or configure BIOS over a network. Your typical KVM does not feature this.
However, where these lack is that they still require a video card. IPMI built into a motherboard can run on an entirely headless system.
There are also commercial versions of this, such as the Lantronix Spider KVM over IP[2]
[1] https://en.wikipedia.org/wiki/Intelligent_Platform_Managemen...
Edit: I say these here mainly because expanded out, the title says "Raspberry Pi 'Keyboard Video Mouse's Compared". That still means nothing to someone who doesn't know what a KVM is (actually makes it sound like HID devices specifically made for the Pi).
I will make the bet that build-in KVM is more responsive and those interfaces are now HTML5 based, so no nasty Java applet stuff.
Motherboards / servers with KVM will consume around 8-10 watt extra, even when powered off, as the KVM solution is basically a tiny computer running Linux + proprietary software, soldered on the motherboard.
Motherboards with KVM support also support IPMI or redfish for remote management. For instance: I use IPMI to force a physical machine to PXE-boot into an automated installer, to provision the OS.
Mainboard-built-in KVMs provided by server vendors are usually buggy as hell closed-source horrors, with regular full-compromise holes that make running them over the Internet a complete gamble.
This is why open-source KVMs that are just as secure as other normal Linux servers, and auto-upgradable, are very desirable.
https://www.cvedetails.com/vulnerability-list/vendor_id-10/p...
It required a custom cable that I didn't want to build myself. Are cables of this type more readily available now?
There are cables that do the same thing, but they don't provide reverse current protection. If there's a voltage difference between the USB port on your target system and the PSU feeding your Raspberry Pi, you can mess up the system's USB port or damage your Pi.[1]
[0] https://tinypilotkvm.com/product/tinypilot-power-connector
[1] https://github.com/tiny-pilot/tinypilot/wiki/Powering-your-T...
Then 5V USB-C power supply into the USB-C connector and a USB-A to USB-C cable into the motherboard which had a USB-C port. You could probably also find a USB-A male to male cable and use that if your motherboard doesn't have USB-C.
You can get it down to sub-100ms using a few hacks, but honestly, this kind of setup is not optimal if you need remote real-time control (e.g. for gaming or video production monitoring).
I'm asking this because the pikvm takes HDMI input so I'm wondering how does ipmi manage the video
In fact, TinyPilot is based on ustreamer, that is developed by Maxim Devaem, the pikvm creator: https://github.com/pikvm/ustreamer
You'd have to figure out how to get inbound connections - perhaps something like tailscale would do the trick.
Is there any other open source IP KVM projects out there? It's been on my mind for quite awhile.
OpenBMC is an option if you're a manufacturer.