RunLengthGPIO
a computer interface to the Arduino I/O digital lines
...Three application programs are included: the first makes two digital pins act as a TTL-levels UART; the seconds turns the value of the input pins into an image; the third reads codes from infrared remotes with a photodiode and a resistor connected to one of the input pins.