rasky, open source KVM over IP
0 day left
0 Day Left
- Rasky is a low cost open source (hardware and software) KVM over IP built on top of the well known RaspberryPI model 2B featuring VGA video capture, USB keyboard and mouse emulation, remote control both by web (ajax VNC) and VNC, remote relay switches and digital inputs.
Name: Franco Lanza|
Nick Name: nextime
About this project
Rasky is a low cost open source (hardware and software) KVM over IP built on top of the well known RaspberryPI model 2B.
The primary goal of the project is to provide a low cost and completely open source alternative to commercially available KVM over IP and other remote consoles like iDRAC, iLO and so on.
A side goal is also to produce Rasky with a complete FLOSS workflow, so, no proprietary software will be used in any development step, all has to be strictly open and free software.
The expansion board for Rpi will be engineered in a way that is suitable for DIY PCB makers, and a 3d printable model of the enclosure will be available too, with an explicit goal to make it feasible to build at home a complete KVM for under 150 euro or to buy one assembled device for less than 200 euro.
For the first release it will feature:
- VGA video capture
- USB keyboard and mouse emulation
- Web (ajax VNC) and VNC remote access over IP
- 2 programmable and remote controllable Relays to switch on/off the remote machine and to virtually “press” a button (reset?)
- 2 digital inputs to attach sensors
- Completely open source design for software, hardware and box will be released (early and often). License will be GPL or similar.
- Backup battery pack management to assure clean shutdown of the Raspberry PI in case of power loss
The project is in a very early stage and some features may change.
Some other features I’m considering, i don’t know yet if for the first or the second release, is the emulation of an USB remote storage/cd drive and to add a couple of analog inputs.
All those features are implemented without the needs to install anything on the remote controlled machine/OS, so, they can be used even at a BIOS or equivalent level to remote control any machine that have at least one USB port and a VGA or, using an adapter, DVI or HDMI video output.
Rasky features 3 primary circuits, one for video capture, one for keyboard, mouse and eventually cdrom emulation, and one to control relays and digital inputs ( click on the image to enlarge )
Who i am and why I’m doing this
I’m Franco Lanza, also known as “nextime”, dad of two, married with a beautiful and patient woman, and i live in a little city near Milan, north Italy. I’m an “hacker minded” guy who loves building things, and in particular things that involve build electronic circuits and writing code.
I have more than 25 year experience in coding, building circuits, unix and linux systems and hacking in general, and i breathe open source and free software all day long.
In many years i never found a completely open source KVM over IP, and the ones that i used are limited and expensive as well as closed black boxes, so, with this project i hope to give back to the community something i think will be useful for both professionals and amateurs, and a funny project for myself to build as well.
The feedback i received when discussing this project with my colleagues and friends has convinced me to setup this crowd funding to make it real, and after some investigation and tests on the feasibility, here i am with this page.
Rewards for contributors
You can give me a free contribution or select a reward.
If you choose a reward, please take care that taxes and shipment expense where appliable are already included and you will not get charged for anything else except for eventual customs duty if appliable to your country .
I will ship to whole world.
I accept credit cards, bank transfer, paypal, bitcoin. Select your preferred currency using the dropdown menu on the right column
||||Quantity||3d printed logo||PCB beta||PCB final||KIT beta||KIT final||enclosure||Assembled beta||Assembled final||Rpi2|
|Open source entusiast||?||X||-||-||-||-||-||-||-||-|
|early kit builder||50||-||-||-||X||-||-||-||-||-|
|final kit builder||50||-||-||-||-||X||X||-||-||-|
|Super early seed||100||-||-||-||-||-||-||X||-||-|
NOTE: the “KIT” rewards will have all the SMD components with more than 40 pins pre-soldered. If you want to solder them by your own, please specify it when you give your contribution. Thanks.
Risks and challenges
Any project has risks, and an early phase project like this one isn’t an exception.
The first risk is that it’s a one man project, so, if anything bad had to happen to me, the project will stop. Anyway, considering the project is fully open sourced and i will release anything i do early and often, in any case anyone can takeover the project and continue it even without me, assuming he has the right skills.
Other risks are more technical, in particular the video grabber part seems to be a thing many people have tried to build on with slow progressions or failing completely. This is the reason I’m investigating three different ways to build that part, by taking advantages of previously experiences done on similar or relative projects by other hackers, and revisiting them thanks to the features of latest hardware and technologies. What i have found after some months of preliminary studies about this project is that all parts are already available, and they just need someone that will take them and glue them to work together. I’m the one that will do that.
All the components i will use are common parts with no supply issues, and they are cheap and reliable with strong distributors and producers, so, i can rule out supply problems. Though a low component count minimizes supply risk there is still a possibility that the quoted lead times for larger orders of our components could be exceeded or that we could be supplied with faulty parts. If this proves to be the case we will secure returns or replacement parts, however this would incur a delay to our shipping date. It’s a remote possibility, but we have to point it out.
I run a small company with some experience of product fulfilment in the software industry so we think we have accounted for all eventualities when getting your rewards to you. In the happy event that Rasky proves to be hugely more popular than we expected though it will place a strain on our resources and it may take us longer than we anticipated to ship your rewards to you. In that event we will provide regular updates as to our shipping progress and we will work as hard as we can to ship your rewards as soon as possible.
All the software and hardware schematics and models developed for Rasky are available on the Rasky group on my gitlab, and when ready packages will be distributed as a deb package suitable for both raspbian and devuan.
The remote machine will be reachable on web using an ajax webvnc or using vnc directly.
For bandwith saving vnc will be configurable for different level of quality/resolution/colorset/refresh.
The enclosure will be 3d printable and both the stl model and the OpenSCAD source will be available on gitlab.
From the hardware side features are:
- capture at least up to 800×600 for the first prototype, with the goal to go up at least to 1280×1024 at 10 FPS for the first release
- VGA input connector, DVI and HDMI are supported by using a common available adapter
- VGA output connector in bridge with the input one
- USB keyboard and mouse emulation on a single USB connector, on a future software update usb storage will be added too
- 2 relays up to 250VAC / 10A
- 2 opto-isolated, self powered digital inputs
- 12VDC power supply connector to power both the Rpi and the expansion board, estimated a 2A power supply needed.
- support for a 4x AA Ni-MH rechargeable battery pack with auto-switching to permit clean shutdown of the Raspberry PI in case of power failure/loss
Rasky can be connected to LAN both by ethernet and/or wifi, in latter case using a common Rpi compatible wifi usb dongle.
The KVM over IP will be implemented as an expansion board for Raspberry PI model 2, the PCB will be as simple as possibile, in any case no more than 2 layers design and using only commonly available components, so, it will be suitable for DIY makers to be built at home assuming they have anough expertise to solder SMD components and to produce 2 layers PCBs.
Relay and digital inputs will be controlled by using the Well known Wiring PI library and then exported on the web for remote control.
For the Keyboard and Mouse circuit and software, an ATMEGA32U4 will be used connected to the raspberry through the SPI bus, all the code needed for the MCU is already available thanks to projects like the hackaday driverless mouse and keyboard sharing and other arduino based projects, so, only a vnc to SPI bridge will be needed, and developing it on Raspberry is fairly easy.
The ATMEGA32U4 can be reprogrammed directly from the RaspberryPI, and then in future an updated firmware will be released to support also usb storage emulation over USB.
For the Video part circuit part, there are 3 options i’m investigating, both with pros and cons:
TVP7002 based frame grabber
The first option, will be to build a circuit based on the TVP7002 ADC, it can grab a VGA signal at a decent speed and output it as an RGB digital signal, and then push it in a
SRAM FIFO or an FPGA CPLD MaxII EPM570.
The CPLD will then use a SRAM memory to implement a FIFO buffer, and then it will move frames to Raspberry PI over SPI bus.
VGA2CSI bridge circuit This is probably the best solution, and a sort of an extension of the first circuit as it basically add a CSI2 encoder , but also the harder to build. RaspberryPI have a CSI2 input connector for cameras, and using it will give us the best performances and will be the easiest to implement on the software side as all the needed software is already available for the Rpi expansion cameras. Anyway, no VGA2CSI circuits or devices are available in the wild, and this is cause doing that will require at least a 3 chip circuit, one for video acquisition ( a TVP7002 will do that ), a CSI2 encoder and a SRAM FIFO buffer or a FPGA between them
UPDATE: MIPI CSI2 interface specifications are closed and to have them you must pay to the mipi alliance a seat for $8000 ~, there are some open source effort to produce an open FPGA csi2 interface, but it doesn’t seems to be mature yet, so, for the moment this way is a NO-GO for Rasky.
Common USB video capture device This would the easiest way to capture video, and also is a very cheap option, only a vga 2 RGB composite signal is needed, a fairly easy circuit, and then we will have our /dev/video device ready to consume data from after plugging an USB dongle on one port of the Raspberry. On the opposite side this solution will give us only relatively low quality video, and also i don’t really like this solution as it depends on commercial USB dongles. I will test also this way, but i will consider it as an option only if the other two will be too expansive and/or any other reason will make them a no-go. I will prototype and test all three solutions, and then pick the one that, remaining easy to build and ramaining in acceptable costs, will give better performances.
UPDATE: from the preliminary tests the TVP7002 video grabber is working great, so, the USB video capture device isn’t an option anymore as we can do it better.
Rasky block schematics
status & updates
21 September 2016
Long time (too mutch) is passed without updates. This was due to the missing goal of the crowdfunding campaign and some personal issues.
Anyway, despite my long silence on Rasky, i have great news, and in those months I’ve worked out some tests on both hw and software side, and, amazingly and unbelievably they fully worked at first try.
Also, the prototype was tested on rpi2 B+ AND rpi3 with success, rpi3 is working even better thanks to a faster bus clock and more resources in general.
This allowed me to move forward and start to optimize the design for final production.
I’m working on the new and final PCB, the one i will finally ship, and, if anything goes as expected, i will be able to ship to backers before the end of the year, probably first PCB even before the end of October.
The new PCB design will introduce a lot of simplifications and optimizations, and will get rid of most of the useless hardware and components there was on the prototype. The most notable changes are:
– Get rid of all the useless I/O buffers, we don’t need to connect every chipset to every SPI/I2C, they all work great on the RPI, so, only a single buffer to manage different voltage levels is needed, no more duplication.
– Power supply circuit completely revisited, battery support removed as I have now a board that can stacked up with Rasky to provide this functionality, and removing it will simplify the circuits, will drive down costs, and will let anyone doesn’t want to use it doesn’t pay for it. The supporters of the project will have a SafePI included in rewards.
Stay tuned, in next few days i will put online new material, schematics and PCB design for the new board.
Thanks to all backers for your patience, Rasky is back and it’s here to stay and get real!
PS: Of course any contribution is welcome!
15 February 2016
Due to the crowdfunding contributions sloweness i’m a little bit in late, around a couple of months on the initial scheduling, so, sadly i have to update some rewards estimation delivery date according to that.
Anyway, the project goes on, and in a week i will be able to give you all great updates if everything goes well ( as expected ), so, stay tuned, Rasky is getting real and working!
Thanks to all who have contributed, i will do my best to ship all rewards before the new estimated delivery time! Thanks guys for your support and trust in me!
6 October 2015
Starting to ship “Open Source Entusiast” early supporters rewards
30 September 2015
The first Rasky board is assembled and ready for deeply testing all things.
There are a couple of minor fixes needed on the PCB, some footprints aren’t exactly as the components are, but it’s good enough to start testing and write software.
In the next month i will focus on the software and testing side, and then i will move to a beta version.
28 September 2015
Rasky routing is done, i’m now producting the first few beta boards. Anyway, in next month i will be in a work trip, and then i will work more on the software side than the hw side.
After some market investigation and some laboratory improvements, i’m able to lower the target for the crowdfunding campaign maintaining the same final price for rasky, so, I’ve lowered it to 30000€. Also, as Rasky production is already started and I don’t intend to stop it in any case, I’ve prolonged the campaign to 1 December, please continue to spread it and help me raising needed funds to cover personal expenses and to pay the time i’m putting on Rasky!
As usual, you can see progresses on my gitlab
14 September 2015 – Rasky schematic complete, PCB routing almost done
The routing is done by hands to take care of high speed signals more than how any software can do, and it take some times to come to a final revision i’m happy to. Progresses are online, you can follow them on my gitlab project repository for rasky hw
These are the first 3d rendering of Rasky:
Schematics in PNG format:
4 September 2015 – Rasky schematic almost complete
The schematic for Rasky is almost done, details on this post
17 August 2015 – MIPI CSI2 interface option abandoned ( for now )
The specifications to program a CSI2 interface on FPGA are closed, and to get it without reversing you need to pay a MIPI alliance seat as high as ~ $8000.
At the same time, SPI on rpi is tested to work as 32Mhz clock, and this should be enough to move data for a standard VGA (640×480@60Hz 8bit deep), clocked at 27.150Mhz, without issue, or going up of size by reducing fps ( for a KVM over ip rarely it goes at more than 10fps ).
So, the first “full prototype” will try to use SPI interface.
If CSI2 interface efforst will succeed i will reconsider to move to it immediatly.
15 August 2015 – few components for kicad released
Moving to kicad make me in the needs to have some components for which kicad libraries doesn’t exists yet.
So, i wrote a couple of components ( the tvp7002 and the CLPD) and release it. Check it out at https://git.nexlab.net/rasky/Rasky/tree/master/kicad_libs
11 August 2015 – Added block schematic
4 August 2015 – full FLOSS development goal
For the early experiments done for Rasky, like i was doing for almost every piece of hw I’ve built in latest years, i was using eaglecad for circuit and pcb design.
The Rasky project have encouraged me to remove this last piece of proprietary software from my workflow, so, Rasky will use kicad to achieve full FLOSS development.
Thanks to kicad developers for this amazing piece of freedom!
24 July 2015 – first components for poc are here
Today i’ve received from farnell the parts needed to produce the first 3 PCB to test the 3 different Video grabbind solutions:
22 July 2015 – project start
I’ve already tested the project feasibility by trying different part that compose the Rasky board separately, and deeply investigating software and hardware needed and already available.
A couple of proof of concept and alpha prototypes has been proved working, and i’m highly confident the project will succeed.
© 2020 Nexlab - by Franco (nextime) Lanza