I have finally finished a working prototype of my VLC system and it works like a charm ;) This prototype has a maximum bandwidth of 1 Mbps and works to a distance of roughly over 2 meters using a collimated light source. After several design iterations i have used newer components like the S1223 30MHz photodetector from Hamamatsu and operational amplifiers from Analog Devices. Analog Devices has some great tools and application notes that simplify designing. The picture below shows the finished prototype of the VLC receiver. The micro-controller interface uses a Cortex-M4 micro-controller from Freescale - The Teensy 3.1 development board from PJRC. The circuit is basically a photodiode transimpedance amplifier using the AD8651 followed by a AD8561 high speed comparator for wave shaping.
Going forward with this project i shall be increasing the bandwidth and experimenting with smaller form factors, controllers, PDs, to facilitate audio, video and data streaming applications...
Going forward with this project i shall be increasing the bandwidth and experimenting with smaller form factors, controllers, PDs, to facilitate audio, video and data streaming applications...

The final specifications had the feedback resistor with a value of 68 K, feedback capacitor of 2.4 pF for an output voltage swing of 3.3V. The PD was reverse biased by 5V resulting in a capacitance of 20pF. The AD8651 has a Gain Bandwidth Product of 50 MHz and powered by a 3.3V single supply. For the select Rf the 45-degree phase margin bandwidth turned out to be 1.82 MHz and the Cf with a value of 1.2 pF. Since the desired value of Cf was greater than the value of Cf that produces 45 degree PM the circuit was deemed stable. The dynamic range turned out to be 91 dB with total RTO noise of 96 uVolt rms. Since the slew rate of the AD8651 is 41 V/us, the output voltage max swing was chosen as 3.3V which when plugged into 2πfv for f = 1MHz gives approx. 20 V/us, which is less than the max specification
Output signal from the receiver. The transmitter is a single white LED driven by a 1 MHz clock signal.
Below are some graphs i plotted in Matlab to visualize component selection based on the CN0272 circuit note by Analog Devices

Feedback resistor value effect on bandwidth.
