SparkFun will be closed on Tuesday, November 5th to support our team in being able to go out and vote! Orders placed after 2 pm MT Monday, November 4th will ship on Wednesday, November 6th. Thanks for your patience and understanding.
Replacement: None. We do not have a replacement for this part. This page is for reference only.
Here is a simple fiber optic transmitter. Use it to transmit data or audio across fiber optic cables. We also have the matching receiver listed in the related products below. Fiber optics are beneficial when you need isolation from either a noisy environment, underwater, or where a direct electrical connection is not desirable.
Check the provided example code below. It is just a simple example showing how these can work. The code works by sending and receiving a single character. Remember the minimum rate data rate for these is 0.1Mbps
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
No reviews yet.
The minimum 0.1 megabit is based on the receiver. Worth mentioning here, but should be attributed to the receiver circuitry.
Conflicting information on the minimum data rate. The data sheet says DC to 15 megabits. Why the comment "Remember the minimum rate data rate for these is 0.1Mbps"?
Is there a limit on range?
What may the maximum cable length?
I was thinking along the same lines... Is it possible to wire these to the serial port of an Arduino?
The example code uses biphase coding to work across the asynchronous link. Is there any reason a standard UART could not be used to accomplish the same thing? It would need to be e.g. 115k baud to get above the receiver minimum freq spec. I see the receiver has an adaptive threshold mechanism - is it the purpose of the example code's preamble to allow time for the threshold to adapt?
You should be able to use the USART so long as you run the USART at a few MHZ and send a few bytes of preamble (0xAA) before you send data and half your data-rate by sending the byte's inverse after the byte so if you wanted to send
0xDE 0xAD 0xBE 0xEF
you'd send
0xAA 0xAA 0xDE 0x21 0xAD 0x52 0xBE 0x41 0xEF 0x01
This gets you a DC-level before actual data and maintains zero DC component for all your data.
Yup, that is the purpose of the preamble. <br />
<br />
When I hooked the receiver directly up to the Arduino's Tx and Rx it did not work. This is due to the fact that although the bit rate was 115k the actual changes in the signal are not necessarily meeting the 0.1Mbps limit (This limit refers to the receiver seeing changes in the line not bits, notice the NRZ note on the RX datasheet). For example if you tried to send 11110000 at 115k the change in levels would only be 1/4 as fast(~28k) ie not fast enough.<br />
<br />
Here is the source that helped me understand how to use these better: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=63221&start=0
Is this part going to make it to the eagle library?
Anything we could use as a breakout board for these? I wouldn't mind experimenting with these as a communications backbone for one of my robots but don't want to bother having special greenies built for them.
They have 0.1" spacing and fit on our mini breadboards with the pegs hanging off the edges.
What about the fiber optic cabling?
Please don't tell me I have to buy a whole spool somewhere else. =P
We have them on order and will get them really soon. However, they are available pretty much anywhere. It's a standard TOSLINK connector.
"the minimum rate data rate for these is 0.1Mbps"
That sounds like a challenge.
Page 2 of the datasheet :-)