Using a flashing LCD monitor to transfer data

lcd-screen-data-transferWe love the concept of using an LCD screen to transfer data. The most wide-spread and successful method we know of is the combination of a QR code and the camera on a smart phone. But for less powerful/costly devices data can be transferred simply by flashing colors on the screen. That’s what [Connor Taylor] is testing out with this project. He’s using a TEMT6000 light sensor to turn a white and black flashing monitor into binary data.

So far this is just a proof of concept that takes measurements from the light sensor which is held in front of a Macbook Retina display with different backlight levels. At 3/4 and full brightness it provides more than enough contrast to reliably differentiate between black and white when measuring the sensor with the Arduino’s ADC. What he hasn’t gotten into yet is the timing necessary to actually transfer data. The issue arises when you need to have multiple 1’s or 0’s in a row. We’ve tried this ourselves using an LDR with limited success. We know it’s possible to get it working since we’ve seen projects like this clock which can only be programmed with a flashing screen.

[Connor's] choice of the TEMT6000 should prove to be a lot more sensitive than using just an LDR. We figure he could find a way to encode using multiple colors in order to speed up the data transfer.

Comments

  1. tophathacker says:

    The old timex DataLink watches did this, but watch out.. it flashed the whole screen so hope you’re not epileptic.

    • Fritoeata says:

      I thought of those, too!
      At 14yrs old, after seeing my grandfather’s datalink, I bought a Casio DataBANK… much to my dismay, There was zero PC interface.

      >.<

    • Mystick says:

      You beat me to it. I owned one of those. You had an application on the PC that managed the data, like phone numbers, dates, etc. You then programmed the watch by holding it to the screen, which then flickered to transfer. It was one-way, and the data was flashed every time in totality.

      It was decent back in the day before the ubiquity of cellphones in the pager era.

    • RoadWarrior222 says:

      Dammit, should have looked at the comments first, I’ve just sat drooling into space for 10 minutes trying to remember where I’d seen this before, and on what, I’d just got to digital watch with a databank feature and was mentally dickering between timex and casio :-D

    • gadget says:

      Yep – I still have my old data link. Still working fine after all these years!

  2. wetomelo says:

    How about to use a self-clocked protocol?

  3. JC says:

    As do the Electric Imps.

    And in one respect, it goes *way* back in time. Light pens did this to detect where on the screen the pen is pointing.

  4. Steve M. says:

    Here in Germany many banks use the ChipTAN system for online bank transfers, which uses a 4 bit + 1 clock bit displayed as black bars on the screen, see https://www.youtube.com/watch?v=qQfKgxNGfbY&t=0m50s

  5. Rob says:

    My first thought was this thing I found a long time ago http://www.youtube.com/watch?v=iOGv7_chCLQ&feature=player_embedded

  6. Doktor Jeep says:

    Outstanding!

  7. I did something similar to this for an outreach program to allow them to transfer new waveforms to their little synthesizers. I used BiPhase Mark Code (very similar to Manchester Encoding). Using JS one runs into some issues at higher speed that have to do with javascript being a very bad timer. You can get small improvements by creating a video on the backend that is the transfer. Using multiple light levels/colors is also an interesting concept that I was thinking about implementing, but never really got around to it.

  8. I was just looking at this implementation the other day:

    http://www.wayneandlayne.com/projects/blinky/

    uses two sensors, one for clock and one for data.

  9. Hack Man says:

    Movie plot device!

  10. muriani says:

    Wow, this flashes back to setting up Bloomberg authenticators when I was supporting a commodities trading floor.

  11. Jim Hearne says:

    This was done by BBC television In the early 80’s to send software for ZX81 and BBC’s etc as part of their computer programs. It did work.

    • Ren says:

      I remember reading about that in a Timex Sinclair magazine out then.

    • RoadWarrior222 says:

      Was it? I thought it was a little different, using the bottom 5 lines of the picture or something…. meaning you needed access to the signal rather than using an LDR/LDT/LDD

    • Wonko the Sane says:

      I remember that there was a TV show about computers that flashed a white/black square in the corner of the screen for a few minutes – as the program’s were not just for the BBC Micro (the BBC only supported that computer) it must have been the ITV show database – this would have been around 1983/4 in the UK… So nothing new here… :-)

      • DaveO says:

        I remember that show. You were supposed to wire a photo-detector to an audio cable. Tape the detector to the screen and plug it into a tape recorder. Converting light to noise. I wonder if anyone actually did it.

    • I don’t remember the video-based one, but in Making the Most of the MIcro, the last episode featured a small BBC Micro program you were supposed to record onto an audio cassette for use in a tape drive.

    • Andy Mc says:

      I remember watching an American Tech show on NTL cable in the 90’s here in the UK that did something similar, the bottom right corner had a black and white square that flashed out a data transmission for a free software giveaway. It is so long ago that I cant remember the name of the show.

  12. james says:

    Would it be possible to briefly flash an color in between to signal that the next bit is coming, so black is 0, red is 1, green is the “next bit” signal. I know somewhere very very little about binary, so feel free to ignore me if what im saying is a bad idea or just plain wrong.

  13. junkbox says:

    I suppose it depends on the accuracy of the sensor, but suppose you have 4 colors: red, green, blue, and white you have from 0b00 to 0b11, either bit could be a clock bit, OR you could transfer 2 bits at a time, and in such a case perhaps return to black in the case of repeating colors.

  14. Corey L. says:

    i remember having one of those Tamagachi toys that sync’d via monitor. forget what for, but they would put a square on the screen and the toy have a sensor on the back.

  15. Seimen says:

    The Remee Googles are also programmed by light.

    http://sleepwithremee.com/

    http://sleepwithremee.com/config.php

  16. Hey guys, Connor here. Website seems to be having some problems but I should have it fixed soon. I can answer any questions if you have any.

  17. biozz says:

    reminding anyone else of those CCD based ones that used the magnetic fields of the yoke to program something?

  18. Addidis says:

    Yeah same deal the blinky grid uses. Pretty sure Wayne and Layne (forgive the spelling) developed this. Neat kit they sell.

  19. Jay says:

    If it can detect 4 colors then it can have its own clock signal built in. Lets assume white and blue = 0 while black and red = 1. Now whenever you have multiple 1s or 0s it can use the alternative color. The color change always shows the next bit even when the bits are the same.

  20. Roklobsta says:

    About 13 years ago I was given a keyring fob that had an alphanumeric LCD, some buttons for selection and a CD with software to put addresses and phone number in. The application then flashed a square on the screen you held the fob up to. I though the idea was neat but the execution was terrible. The thing ended up in the bin not soon after. This was back when everyone was drooling over those overpriced Palm Pilot things.

  21. joe says:

    if you keep it just black and white, it should be trivial to keep the timing in check; start a timer, wait for the color to switch and the time between each change is the data, if it’s longer than threshold it’s a 1 otherwise it’s a zero, rinse and repeat until an end of line character or timeout or something like that. not sure for color, though.

  22. Joejoedancer says:

    I like what junkbox said. Use another color or two, or even greys to transmit start and stop bits. Or flash the black (like Morse Code) to transfer data.

  23. hspsoftware says:

    Blinky Grid does exactly the same.

    http://www.seeedstudio.com/depot/blinky-grid-red-p-1134.html?cPath=138

    And it works extremely well! I bought one for my girlfriend as practice for her soldering skills.

  24. Scott Harden says:
  25. Parka says:

    “We love the concept of using an LCD screen to transfer data. The most wide-spread and successful method we know of is the combination of a QR code and the camera on a smart phone.”

    Actually, the most wide-spread of tranfer data with an LCD is making visual representations of abstract computer systems and then pushing that to the LCD screen, so a human reciever interprets such data.

  26. Bobbo says:

    Bloomberg terminals use this, combined with an online-banking style dongle tied into a finger print, to stop people sharing a terminal using VNC or similar.

  27. Galane says:

    Back in the 90’s I had a small keychain “PDA” that kept a list of names, phone numbers and small notes. It had a sensor and an LED on the back with tapered plastic bezels. One was countersunk, the other an outside taper.

    IIRC info could be laboriously input directly but the faster method was to use the included Windows program which would then blink a white dot in a black square on the screen.

    The reason for the LED and opposite tapers was to hold two of the devices back to back to transmit data between them.

  28. static says:

    Kind of a neat novelty. Before we know it there will be a sort of pipe for light with light transceivers at each end moving data. :)

    • RoadWarrior222 says:

      Ridiculous, and how do you propose to do this, threads of glass? We’ll have them everywhere, all die of blood loss from the breakages…. and just where the hell are you going to get a nixie tube bright enough that you can make out what number it is through a few feet of glass, eh? Preposterous.

      • NewCommentor1283 says:

        ahh,
        the exact words from before amplifing tubes!

        you forgot the part about detectors arent fast enough to transmit _*moving*_ pictures! lol

        later, after amplifier tubes were invented, the light-sensor TUBE solved this, and mechanical TV was born

        PS: a single NEON glow bulb actually WAS the light-source in some early mechanical TV’s… the ONLY way to watch was in complete darkness

  29. NThanks says:

    Very cool. This would be great if you wanted to exfil data surreptitiously from a terminal in a high security environment. Additionally, if you can get control of things like lights on a router hardware i believe it has been demonstrated you can use them to do something similar. :D

  30. Jim says:

    Optical discs use ‘eight to fourteen modulation’ to ensure that there are never too many 1’s or 0’s in a row and so to keep the reading clock in sync with the data. Before starting the actual data transmission, a short bit of fixed data is used to tune the data clock. It might be a little wasteful for this purpose, doubling the size of the data, but should be pretty robust. Wikipedia has an fair explanation of the scheme.

    Alternatively Brandon’s 8b/10b encoding might be more efficient choice. Being an optical system, it made me think of an existing optical solution.

  31. Lionel Brits says:

    I don’t have time to recall the details right now, but I think you can choose an encoding scheme that prevents long strings of 1s or 0s, to make synchronization easier. Also, you can have a microscopic flicker between 1s for synchronization purposes (i.e., on a different timescale)
    Naively, let
    0 -> 1010
    1 -> 0110

    So …1010011010101010… must represent 0100 and nothing else…

    Also, look into http://en.wikipedia.org/wiki/Non-return-to-zero,_inverted

  32. Velli says:

    CHILDREN! The Worlds of Wonder Action Max system, from 1987 used this, with data from VHS tapes of planes flying around. GET OFF MY LAWN.

  33. Dave says:

    Nintendo Zapper anyone?

  34. Modulating the backlight instead of the LCD screen might deliver more bandwidth.

    • RoadWarrior222 says:

      Hmmm if it’s a slowass old LCD with flourescent backlighting, on a cold day, then modulating the scroll lock light on the keyboard might be an order of magnitude faster :-D

  35. caseythr says:

    Back when I was maybe 8, I got a little plastic pda with a pair of Mudd pants that did this. There was a game or something you could download if you visited the website. It also had an led on the back so you could put two of the devices back to back and transfer data. At 8 years old, that was the coolest thing to me.

  36. Wileur says:

    How about using grayscale and a phototransistor? I put together my thoughts here http://eclsh.blogspot.se/2013/02/gray-scale-lcd-data-transfer.html in case anyone finds it useful.

    Wileur

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 94,612 other followers