I made a quick setup with two phototransistors, two leds, some resistor, some piece of wood to align everything, some black strips printed on transparent paper, and a 0.5mm wide opening in some heavy paper as a mask. I tryed to tweak everything to get the best result I could, and made some mesurement (using an arduino because my oscilloscop is dead :( ). Here is the result :
I currently have two problems to solve :
-The levels are bad (when the resistor after the phototransistor is too low and the signal only raises to about 2.75V, it already too high and the signal only goes down to maybe 1.7V in some cases.
-The alignement of the two bit streams (data and clock) is poor : first clock (orange) starts about 1 period after the data signal, when it should be half a period.
Hald a period is 0.25mm, which is an acceptable precision for something that has been hand build, yet is not precise enough. On solution which would solve those two problems at once would be to widen the bands. But imagine you want to flash a 100 byte bootloader, that's 800 bits, and with the protocol overhead, you'll probably need to send about 1200 bits. With 0.5 bands, the paper strip will already need to be 1.2 meters long. I'll try to solutions that does not imply to double this length.
One thing is sure for now : I have two problems to solve, and I need to separate them and solve them individually so I can manage the complexity.