The other day hackaday.com posted about Connor Taylor and others that uses a computer screen to transfer data to their micro controllers. I immediately thought, wow that is just so cool, no more cables for firmware updates. Just add a photo transistor to each project and you're done!
But the projects mentioned all suffer from the same problem: 60Hz refresh rate only gives you a few bits of data per second. Uploading just a few kb of data would take hours.
So after pondering this I thought why not use gray scale? The following is my proof of concept in the hope that someone will take it further and make it truly useful.