On many occasions I've considered doing a small hobby project to design a minimal dedicated VNC client, in essence with a goal of a $2 cloud-based computer! (ok $2 is chosen completely arbitrarily).

For those not familiar with VNC, it is a system for sharing the graphical desktop of a remote machine with a local computing resource. There are VNC software clients for Windows, *nix, MAC, iOS, Android etc, etc. Of course there are other desktop sharing systems such as RDP, but lets just consider VNC as its simpler.

There are clearly the following main sub systems

1.Input - PS2 keyboard & mouse
2.Desktop frame decoding
3.Network communciations
4.Frame buffer / Display 
I'm ignoring the transmission and decoding of audio, file transfer, printing, etc etc.

My question then is could a simple microcontroller board (e.g. PiC, AVR etc with PS2 connectors, ethernet port and VGA output) handle the throughput of a host desktop with a resolution of 1280x800 and a frame rate of 60 fps? If not, I fancy doing this with dedicated hardware on an FPGA (though I'm unsure how to handle the network traffic), possibly using open source IP from the likes of Opencores.org

Any thoughts would be appreciated! Hopefully my question is suitable for this area of stackexchange, I'm not sure if superuser.com or servervault would have the experience with microcontrollers to provide insight. However I appreciate my question is slightly open ended. I'll try pad out the throughput spec requirements further when I get a chance.

thanks folks!

  • \$\begingroup\$ And VNC means what? \$\endgroup\$ Commented Mar 5, 2012 at 18:43
  • 2
    \$\begingroup\$ @LeonHeller VNC is a pretty well known acronym - Virtual Network Computing en.wikipedia.org/wiki/Virtual_Network_Computing - basically a way to bring up your graphical desktop display over a network connection. \$\endgroup\$
    – vicatcu
    Commented Mar 5, 2012 at 18:52
  • \$\begingroup\$ @LeonHeller, VNC is as described by vicatcu. Its a well known acronym nevertheless I've updated my question to clarify this. \$\endgroup\$
    – trican
    Commented Mar 5, 2012 at 19:27
  • 1
    \$\begingroup\$ @trican, Take a look at the Parallax Propeller. It can handle VGA signals and the community likely has a TCP stack for it. It has quite a bit of horsepower but I don't know how well it would handle VNC. I am not really sure of the minimum requirements for a VNC project, but I would be curious as to what people turn up. \$\endgroup\$ Commented Mar 5, 2012 at 22:13
  • \$\begingroup\$ Just wanted to say, you'll have to post how you get 60fps over VNC. VNC is dog slow! \$\endgroup\$
    – dext0rb
    Commented Mar 6, 2012 at 0:29

2 Answers 2


I suspect you'll end up designing something very similar to the Raspberry Pi, with the trouble of manufacturing it yourself and the same cost issues (simply getting a PCB with ethernet, ps2, video and power connectors is probably going to exceed your $2 budget before you put any logic on it). I suspect with aggresive value engineering for your specific application you might be able to get the cost down to $10 by using a different core without the GPU and with less RAM.

I went looking on the Raspberry Pi blog for their own articles on the subject, but couldn't immediately find them; well worth reading that and Bunnie Huang's on the Chumby before setting out to do any manufacturing of your own.


Have a look at the display driver chips from DisplayLink, they make ASICs for controlling LCD displays over USB and ethernet.

They don't use the VNC protocols, but they're functionally equivalent.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.