Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Joe Walnes
committed
Sep 19, 2011
1 parent
ae82f0c
commit f51ed35
Showing
1 changed file
with
58 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
FlashPrance | ||
=========== | ||
|
||
FlashPrance is a toolkit allowing data to be transferred by flashing | ||
lights on and off. | ||
|
||
|
||
Application | ||
----------- | ||
|
||
It's primary purpose is to allow settings to be sent from a computer or | ||
cellphone to an embedded device, such as an Arduino. | ||
|
||
The screen of the computer or cellphone will quickly flash between black | ||
and white at different intervals, and the device shall measure the | ||
duration of the light intervals to decode the data. | ||
|
||
Because bandwidth is limited by the frames per second that can be | ||
displayed on screen, it is only suitable for very small amounts of data. | ||
It takes roughly 1 second to transfer 1 byte. | ||
|
||
It's benefit is the cost and convenience. The sender (computer or | ||
cellphone) does not need any additional hardware or drivers - only the | ||
capability to flash an area of the screen - this may even be a web page. | ||
The only additional components on the receiver (embedded circuite) are a | ||
light sensor and a resistor - this should cost less than $1. | ||
|
||
|
||
Planned Features | ||
---------------- | ||
|
||
*This is still an early work in progress - most of these features are | ||
not implemented yet.* | ||
|
||
Sender implementation libraries: | ||
|
||
* Web: JavaScript (DONE) | ||
* iOS: Objective-C (TODO) | ||
* Android: Java (TODO) | ||
* Terminal console: NCurses/ANSI (TODO) | ||
* Generic C++: algorithm + {MFC,GTK,QT,WinForms,...} (TODO) | ||
* Generic Java: algorithm + {Swing,SWT} (TODO) | ||
|
||
Receiver implementation libraries: | ||
|
||
* Arduino (DONE) | ||
* Generic C: {atmega,attiny,msp430,arm,pic,...} (TODO) | ||
|
||
Communication protocol: | ||
|
||
* Data streaming (DONE) | ||
* Clock syncronization (DONE) | ||
* Manchester encoding (TODO) | ||
* 8B/10B encoding (TODO) | ||
* Message framing: start/length/end (TODO) | ||
* Checksums (TODO) | ||
|
||
|