Joe Grand's OpticSpy can read secret serial messages transmitted in quick flashes of light! Here's how to set up a transmitter and the OpticSpy receiver. Once you've completed this, you can try sending the message with a Tomu USB nubbin!
This demo uses only the OpticSpy (with a Mini USB cable) and an Adafruit Feather (with Micro USB) β no extra components to assemble, unless you want to try using an external LED instead.
In this example, the Adafruit Feather is sending bits of data by blinking its LED at 19200 baud β much faster than the human eye can detect. In fact, this is the same persistence of vision we use to make LEDs look like they are "fading" brighter and dimmer, when in fact they're just on or off for a larger percentage of the time. In this case, though, the LED just looks like it's constantly "on".
Note: Before making this video, I thought it was an IR-specific detector (hence my confusion when it worked with a regular LED). The OpticSpy actually has quite a wide frequency range. :)
Now, here it is for the textually-inclined...
1. Upload text-blinker code to your ArduinoJoe sent me an Adafruit Feather Huzzah with an Arduino sketch already uploaded to it β but you can customize the code to say whatever you want! Scroll down to find the sketch he sent me, and you can use the Arduino IDE to write it to your device.
Be aware that slower microcontrollers may not be able to run this code. It's being transmitted at a frequency (baud rate) of 19200.
2. Plug in your OpticSpy and connect to itOnce the OpticSpy is plugged in, find the USB port it's using. On Mac, you can run:
ls /dev/tty.*
Then, choose the one with "usbserial" in it. For example: /dev/tty.usbserial-DN02SYAO
Now, start a screen session to read data from OpticSpy over the port, providing the baud rate to read at:
screen /dev/tty.usbserialXXX 19200
Point the OpticSpy at the lit-up LED on your device, and you should soon see the information coming in! You'll see the text repeat over and over on your screen, since it's being sent extremely fast. Watch the video above for a quick demo of how that looks. :)
Comments