Homemade 10 Mbit/s Laser / optical Ethernet transceiver

Today’s network backbones don’t use copper wires any more — they use lasers to transmit information. The laser light usually propagates in a fiber, but while convenient, this isn’t strictly necessary; you can also send the laser light through the air in a collimated beam, like an ordinary laser pointer.

Because this sounds cool, I thought I could build something like that. Here’s the prototype:

Laser ethernet transceiver prototype in operation


For simplicity, I decided to limit the scope to 10 MBit/s ethernet. This old standard is both conceptually as well as electrically (lower frequencies) simpler than the more modern 100 MBit/s or 1000 MBit/s standards. After a bit of research, I noticed that it’s not necessary for the transceiver to understand anything about ethernet; it’s sufficient to simply provide optical send and receive channels, and convert the electrical signal to optical intensity and back one-to-one.

The idea is now simply to build two identical boards with an ethernet RJ45 connector on the one side, and a send/receive optical transceiver on the other side. When pointed at each other, the boards mediate the ethernet signal from one RJ45 connector to the other.

Theory of operation

Each board consists of a transmit channel, a receive channel, and some meta components (power supply, fuse …).

Transmit channel

The task of the transmit channel is to take the electrical ethernet signal transmitted by computer A and convert it into an optical signal by varying the brightness of a laser diode. The schematic is shown below. The part with the operational amplifier is simpy a constant current source, which sets an “offset brightness” for the laser diode. The actual TX signal is then added to this offset brightness through AC-coupling (C23, C7 perform the coupling, R24, R6 set the optical amplitude, and L1 and L3 isolate the high-frequency signal from the DC offset current).

The bias current is selected such that in LOW state, the laser diode is still in laser mode (“glowing brightly”). With a modulation amplitude of about 4 mA and a laser threshold of about 12 mA for this type of diode, I set the bias current to 19 mA by tuning potentiometer RV1.

With this, we now have a laser diode changing its brightness in sync with the electrical signal of the ethernet twisted pair cable.

Schematic of transmit channel

Receive channel

The receive channel is slightly more complex. Its purpose is to detect the optical signal generated by its sister board, convert it back into an electrical signal, and drive that electrical signal into the receive (RX) cable pair of the conntected ethernet cable.

It starts with a transimpedance amplifier, which converts the photocurrent of a reverse-biased photodiode (SFH203P) into a power signal, with a gain of 1 kOhm.

The high bias voltage of the photodiode, about 35 V in practice, lowers the intrinsic photodiode capacitance and through that enables it to respond more quickly. This bias voltage is generated by an on-board DC booster (MIC2605).

Schematic of receiver transimpedance amplifier

After this stage, the signal is still quite weak and noisy, as can be seen below:

Received signal after the transimpedance amplifier

To convert this into something which can be driven into the ethernet cable, a comparator (LT1713) is used. Conveniently, it already provides an inverted- and a non-inverted output, which makes it easy to drive a differential cable pair. Unfortunately, it does not support the high output current we need (5 V into 100 Ohms differential), which is why an additional dual operational amplifier is used as a buffer (MAX4392).

After the comparator, the signal looks much nicer:

Inverted output from the comparator.

The full schematic is available here.


Armed with this schematic, I layouted a printed circuit board with SMD components in kicad, and sent it off for manufacturing. In addition to the transmit and receive channels and the DC booster, it contains a 5 V linear regulator, a fuse, and a 9 V DC input jack.

These are the manufactured boards (front and back):

Empty PCBs manufactured by Elecrow, top and bottom side. Size is 5cm x 5cm.

With soldering iron and a bit of help of the trusty chinese 858D+ hot air gun I assembled the first board step by step, testing the parts individually. Apart from one 200ยตm misplaced drill hole and confusing one “output latch” pin with “output enable” on U3 (both errors were easily worked around) everything went smoothly and this is the final board:

Final assembled board. The green LED indicates the presence of the 5 V supply, the yellow one is for the 35 V supply from the DC booster. The parts next to the big yellow tantalum cap are the laser diode (with red and blue wire) and the photodiode.

The laser diode is fixed with a simple cable tie. The screws have springs below them to allow for some tuning.

Insider question: if you look at the schematic, with C3 = 3.3 pF, U1 oscillates at something like 500 MHz. Why? C3 was supposed to highpass-filter the feedback loop and stabilize U1, not the opposite … with C3 not connected it works fine. Any insights welcome. Note that U1 is a current-feedback opamp, i.e. the inverting input is low-impedance. (Update: explanation here: http://www.analog.com/en/analog-dialogue/articles/compensating-current-feedback-amplifiers.html)

The next simple step after assemby of one board is to put a mirror in front of it and look if the transmitted signal is the same as the received one. And indeed, after some tuning, this worked and my notebook got confused by seeing itself in a mirror:

e1000e: eno1 NIC Link is Up 10 Mbps Full Duplex, Flow Control: Rx/Tx
IPv6: eno1: IPv6 duplicate address fe80::d6be:d9ff:fe85:330a detected!

This looks great! Thus I went on and built a second board.


I mounted the two boards on a piece of wood and aligned the laser beams (not simple even for this small distance, unfortunately):

Test transmission section seen from the side. This is just about 10 cm of air between the boards (each board is 5 cm by 5 cm).

I booted up my Raspberry Pi as second computer and connected it with an Ethernet cable to one of the boards, and my notebook to the other one. And surely enough, they established a connection immediately:

e1000e: eno1 NIC Link is Up 10 Mbps Full Duplex, Flow Control: Rx/Tx

Fortunately this works even with auto-negotiation enabled (where the two computers decide on the data rate by themselves). This is not trivial, because both sides in this case think they support 100 MBit/s, but in practice only 10 MBit/s works. But for those two devices, after a few failed connection attempts with 100 Mbit/s, they switch to 10 MBit/s automatically (if this were not the case, it would be easy to force both devices to 10 Mbit/s mode manually).

Front view

I can also ping the Pi from my notebook:

ยป ping -i 0.025
PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=64 time=0.843 ms

Transferring files over ssh works as well, with the expected data rate of about 1.1 MByte/s. If the lasers are aligned properly, there does not seem to be any packet loss, as tested by ping -f:

1799339 packets transmitted, 1799338 received, 0% packet loss, time 1465837ms 
rtt min/avg/max/mdev = 0.597/0.753/11.748/0.049 ms, ipg/ewma 0.814/0.735 ms

Next step is to test this with a bit bigger distances between the boards.

Below are a few more pictures (click for proper quality and size).

Front view

Side view

Categories: Everything

Tags: ,

133 replies

  1. Great Work!

    I have a question though.
    Is there any blocker that makes you not use a pair of normal optical cables as a transfer medium ?

    • Well, the idea was explicitly to build a wireless link, so there’s that ๐Ÿ˜‰

      Otherwise in principle no; though you need a fiber coupling optics and an optical connector. That will make things expensive, larger in size, and reduce efficiency, at least for small distances, because the coupling efficiency into the fiber will be not very good.

  2. Well done! This is a very interesting project.
    I want to try it.
    Can you sell the PCB, or maybe fully assembled boards?

  3. What’s the maximum optical power output in normal operation and under fault conditions? How does that compare with eye safety regulations?

    The last time I investigated laser diode characteristics, they had a very sharp V-vs-I-vs-Pout characteristics. That meant it was easy to overdrive them (until the facets disintegrated!) and they would emit dangerous amounts of light.

    You’ve only got one pair of eyes, and they can be destroyed in an instant.

    As people who work with lasers are repeatedly taught, “do not look into laser with *remaining* eye”.

    • Output power should be something like 5 mW CW, I don’t know exactly, I don’t have the necessary measurement equipment at home. The average electrical power going into the diode in normal operation is something like 7 mW though, so it can’t be much more. AFAIK 5 mW CW red is considered eye-safe even if you look directly into the beam (eyelid closure reflex will save you).

      It’s certainly possible to hurt yourself with this diode though, if you do it sufficiently wrong. The trick with laser safety is not to look into the beam.

      In my feeling, as soon as you have some orderly setup, the risk of hurting yourself even with a bright laser is quite small; you have a well-defined beam path, and you just don’t look into it, and all is fine. Caution is especially required during assembly and while experimenting.

      • So could the laser be replaced with an array of IR LEDs?

        • You can replace it by an IR laser diode, but not by plain IR LEDs, because you cannot collimate the output of a LED into a beam.

          • You can collimate LED outputs. It is a standard technique to increase both range and safety.

            If the output isn’t symmetric then you may benefit from an aspheric lens.

            Immediately after exiting the lens the collimated beam will be wider than the uncollimated beam before it enters the lens. More importantly, at the receiver the collimated beam will probably be narrower than the uncollimated beam, so more energy will be received.

          • Let me correct myself: you cannot losslessly collimate (incoherent) LED outputs. Incoherent LEDs (by that I mean non-lasing, non-superluminescent ones) have a large Etendue (see https://en.wikipedia.org/wiki/Etendue) which you cannot decrease by any means, and thus you cannot form a laser-like beam unless you discard most of the energy by using a slit.

            Quite probably the beam quality of the laser diode could be improved as well by better optics, you’re right there.

          • I’m not sure what you mean by “losslessly”; the same energy exits a lens or reflector in the collimated beam as entered in the uncollimated beam.

            Now, as I stated, the collimated beam is wider when it exits lens or reflector. If the beam area is larger than the receiver at that point then less power will indeed be received at that point.

            However, if the receiver is some distance from the lens it may receive more power from the collimated beam than the uncollimated beam – and that’s what matters from the system point of view. It all depends on the simple geometry of beam width, divergence, and range.

            And that’s why many real world professional commercial systems collimate LED outputs.

          • Do you have an example of a professional system wich collimates LED (non-laser, non-superluminescent) output to increase range? I think that is not possible and violates a fundamental law of thermodynamics, but I’m happy to change my opinion. You can decrease beam divergence for small distances by creating a convergent beam with a second beam waist, but that will make the beam diverge faster beyond that point in return. Maybe you can achieve some small improvement due to some secondary effect I overlooked, but a large improvement is not possible.

            Yes, you can create a beam with a certain width, but the divergence of the beam will be related to the area of the light source you put in front of the lens. The amount of power propagating in the exactly parallel direction (in the differential sense) can only be increased by increasing the source area brightness density.

          • I’m afraid it is >35 years since I worked in the area, so any commercial equipment knowledge is out of date – and the equipment has probably never been described on the web! I do remember considerations similar to those you mention w.r.t. launching power into multi-mode optical fibres, but that’s rather different to free-space optics.

            I’m sure there are rangefinders and free-space comms equipment with collimated outputs, but I’m not going to spend time looking for them.

          • Those use lasing or superluminescent diodes. If you could use simple broadband LEDs for range finders, people would love to do so (because most properties of lasers, such as temporal coherence, are actually undesirable for the application) — but it’s not possible. The exact same argument holds for fiber coupling.

          • Sorry I was thinking of an omni directional system but I had a brain fail and forgot that it would need to be duplex so the two sides would interfear with eachother.

      • So, you don’t know, and faults could cause >>5mW to be output. It could cause “life changing injuries”.

        For starters, look at how little extra voltage/current is required to vastly increase the optical output. Now demonstrate what happens if there is a PSU glitch, or one component fails, or there’s an ESD into the worst possible node.

        You really REALLY should look up and thoroughly understand the eyesafe limits. One point of reference is that in a classroom a laser even a 0.5mW laser is marked “don’t stare into it”.

        Edit: removed part which I think is unsuitable in phrasing and content for this discussion. -Sven

        • I am not selling this device, nor am I using it in public space. I know about laser safety and I think I can realistically estimate the risk for myself.

          This kind of laser is roughly in the 3R safety class. Lid closure reflex will protect you it, and while it’s certainly not safe to stare into it, accidentially inflicting serious harm to anyone with it is very unlikely. While it’s certainly bad to under-estimate dangers from laser radiation, you can also over-estimate it.

          An ESD event will instantly destroy the diode, and a few-microsecond pulse of a higher intensity will not cause any harm because its total energy contents are not sufficient. The diode also dies very quickly if you power it with more than its design current, I tried that out inadvertently more than once ;p

          • Sven, this guy is obviously trolling or has no idea what he is talking about. Although he has added nothing to contribute to the conversation, I feel your responses to him are well thought out and I did learn a few things from them so I will give Tom credit on extracting some extra knowledge from you, albeit in a ridiculous way. I am very interested in this and would also be interested in looking at the board layout as well. I will post my gmail account and would love to learn more about this. Thanks


          • Hey Greg, I published the design files here: http://files.svenbrauch.de/laser-ethernet/
            Have fun with them ๐Ÿ™‚
            License is CC-BY-SA-NC 4.0, ask me if you need something different.

            I try to avoid mud fights with people on the internet, so I attempt to only reply to the factual statements and ignore / delete the rest … not sure what else to do.

  4. Excellent project. I have been looking for a way to extend my network to another building, so this looks promising. What changes would be required to achieve 100MBit/sec?

    • Unless you are interested in tinkering with electronics just for the sake of it (like me), I’d recommend to buy a professional commercial product (i.e. not this) for practical use.

      For 100 MBit/s I think you need quite some changes, I’m not even sure whether the concept of not having an extra MAC can be sensibly carried over to 100 MBit/s. I think if you want this with more than 10 MBit/s, it’s better to start from scratch.

  5. Really excellent job, Sven!

    This idea is something I had the intention to develop a few years ago during my Bachelor’s studies.

    I also thought about using an USB to Ethernet board to make it “portable”, just for experiments and maybe ending with an USB to SFP “converter” (could be used for something like the Koruza project: http://www.koruza.net/).

    Perhaps you have also come across other similar projects in the field of free space optics, for example this one regarding Li-Fi:


    By the way, are there any spare boards left? ๐Ÿ˜‰

    Keep up the great work!

    Kind regards,

    • Thanks! ๐Ÿ™‚

      Yes, I’ve seen a few other projects, mostly after I did this one already though.
      I think the biggest issue with applying this in practice is the alignment, if you want it to be at least somewhat portable you need a concept on how to simplify that.

      I have a few spare boards left (4 or something), I can send you 2 if you like. You need to buy a plethora of components though (costing about $30 per PCB), and you need some soldering equipment and experience to assemble it (the DC booster for example is in a 2mm x 2mm 8-pin QFN package with 0.5mm pin spacing and exposed pad).


  6. Hi,
    Very interesting project, would you mind to share the source off, or more details on the laser diode?
    Best regards

    • Hi, thanks! Source files (kicad) are here: http://files.svenbrauch.de/laser-ethernet/
      There are a few issues on the PCB still, esp. the drill holes of the ethernet connector are off a bit.

      I don’t have any details on the laser diode either, I got them off ebay, and measured the characteristic curve myself. It’s specified for a maximum current of 25 mA apparently, is all I can say.

  7. This is so cool! Question! If you used another laser ( blue laser led for example) and some wavelength filtering in the photodiode side maybe. You think full duplex could be achieved?

  8. Hi Sven,

    great work. About the issue with C3 = 3.3 pF (U1 oscillates): Do you have used the equation(s) of the Analog Devices article linked by you? Bear also in mind that U1 and other parts are not ideal ones, e.g. the 47uF Tantal (C1) does not have 47uF at 10MHz anymore (actually I found a value of only about 3uF in a datasheet). Since the circuit is working well without C3 (doesn’t it?) I wouldn’t bother much about this.


    • Hi Stefan, yes, I used the equations, they come up with an ideal value for the capacitance which is extremely small (order of magnitude of the parasitics I’d say). And indeed, not putting any lumped capacitance makes it work …
      The confusion just originated from the fact that thinking about a voltage-feedback opamp, putting a bigger capacitance makes it more stable. It bothered me that the exact opposite happened without a clear explanation why. It’s certainly fine like this now.

      I’m aware about C1 — the frequency in question is more like 1 MHz though (dc booster switching frequency), and 3 ยตF is probably fine. I used a tantalum because every other option is even worse at 35 V.

  9. Hey Sven,

    On the KiCad schematic, there seems to be an issue with with how the program reads the individual integrated circuits. There is a question mark under each IC so that it cant properly register the U1,U2 etc.

    Do you have an eagle cad file of this or can you repost a proper link?
    Also do you know how to make fiduciary drill holes on the schematic?


    • Works fine here, which kicad version do you use to open it? Have a screenshot?

      I don’t have eagle files, the board is designed with kicad and you cannot easily convert between the two.

      What’s a fiduciary drill hole? Never heard that term.


      • I figured out the problem, there was something on my end.

        Actually I think it is used for a machine to recognize the position. I was trying to add it to your PCB but it isnt so easy.

        From the PCB manufacturer:

        “Fiducials are used by the pick and place machineโ€™s vision system to align the board. Here are โ€˜must-haveโ€™ requirements for fiducials. Fidicuals may be positioned underneath parts.

        There should be 2 at opposing corners of the board
        They should be metal pads, unmasked, at least .5 mm in dia with a 2x unmasked guard area surrounding them
        They should be named FID1, FID2, .. FIDn in your BOM
        Here are some โ€˜desirableโ€™ characteristics of fiducials

        Ideally, there should be 3, one in each corner, Two should share common Y values and Two should share common X values.
        They need to be at least 10mm apart
        If your boards are panelized, the fidicuals can be on the panel frame (but it is safer to put them on both so we can assemble your boards depanelized)
        For more information on fiducials see http://www.ladyada.net/library/pcb/fiducials.html

        • You seem to intend to get this manufactured professionally, i.e. with assembly … sorry, no experience with that. You can just add footprints to the PCB at will, though, in pcbnew; it should be easy to create a footprint which does what you need.

  10. Hey Sven,

    Why is it that I see the TX pins are 1 and 2 and RX are 3 and 6 respectively and they are reversed on the diagram?


    • Well, the TX of one end is the RX of the other, so you can’t really say one of them is TX or RX. The function is re-assigned randomly by the hardware for each connection, actually.

      • Sorry for the questions.

        Shouldnt the tx always be the driver of the laser diode?

        I am in Florida if you have any pcb left could I buy them off of you? I wanted to do this project to show laser communication to new students as a demo.

        • The network card selects which pair is TX and which is RX while establishing the connection these days. As far as I’m aware, it doesn’t matter how you wire it.

        • Hmm, I’m in Europe, and I won’t be where the leftover boards are for 4-5 weeks right now. Also they are all not fitted with components yet, so you’d need to do that anyways. It is probably both faster and cheaper if you just order new ones, sorry …

          • Thanks for the help though!

          • So you are able to solder the surface mounted chips by yourself on the PCB?

          • No problem, you’re welcome. Yes, I do that with an ordinary soldering iron and the occasional help of a $40 hot air gun (Atten 858D+), it’s not very difficult if you know how to do it. The footprints on this PCB are specifically designed to make it easily hand-solderable (esp. they have very long pads). Mind the errata “list” I posted above, the RJ45 footprint is still off by 100ยตm!

          • Last question, in the bill of materials that I have here I highlighted what I don’t know in red, can you resolve that by linking me with their Mouser link or Digikey?


            Also what exactly is the fuse and barrel jack connector?

          • C3 Do Not Connect: just leave this open.
            C14, C15: any SMD 4×5.8 mm 10ยตF 16V electrolytic cap you can come up with
            Fuse: standard 5×20 mm through-hole fuse holder
            Barrel Jack: standard barrel jack connector — I think there’s only one common footprint which looks like this, e.g. http://uk.farnell.com/lumberg/neb-21-r/socket-low-voltage-2-1mm-4a/dp/1217037

            Here’s some more:
            – Ethernet connector: RJHSE-5380
            – Tantalum cap: KEMET T495X476K035ATE230

            I would advise to change the value of R2, and move R1 closer to the DC booster if possible to avoid short-circuits (I destroyed one of mine by shorting it to to the ground pad of U4 with a screwdriver accidentially …).

  11. Could I use any SMD LED indicators? It looks like if I insert the right color, for the most part, they all have the same forward voltage I just need the right color? I am going to use HSMQ-C170’s for each respective color. https://www.digikey.com/product-detail/en/broadcom-limited/HSMQ-C170/516-3071-1-ND/4240315

    Should that be ok?

    • As you say they are just indicators. You can leave them out or use different LEDs with different colors, the worst that can happen is that they are a little brighter. The one you suggest is 0805 though, I used 0603, yours will be a little large for the pads.

  12. Can you email me your file \home\sven\Projekte\kicad_libs\newcomponents for this project at benastuart@gmail.com?

    • Hmm, why do you need that? Isn’t all the stuff in the cache?
      Sorry, I can do in two weeks at the earliest ๐Ÿ˜‰

      • Its okay, I mostly clarified it. The main reason was because of the pin styles for a component.

        I’ve gone ahead and made way to order everything except for D4 and the type of fuse.

        For D4 the model in the KiCad file says Capacitors_SMD:C_0603_HandSoldering except I thought it was a diode, maybe its not connected? If so if its an LED please clarify and if its a capacitor whats the value?

        As you can see there are several fuses in slow or fast acting and different amperages with the same 5x20mm footprint. https://www.vellemanstore.com/en/fuses-73
        Any idea as to which fuse?

        I really appreciate all that you have done, and I believe this can be a really nice inspirational project for others to see.

        • I have LEDs with 0603 footprint, so I just use this to solder them on. It’s connected but it’s just an indicator LED, so if you leave it out it’ll be fine.

          I used a 315 mA quick fuse. Something like a 500 mA quick or really anything in that direction will be just fine too.

  13. hello sven my name is josh,
    I was wondering how does power system work in this design?
    thank you very much

    • You mean, how much electrical power does it use? Something like 200 mA I think, but I never actually checked.

      • hi sven,

        I meant the power supply and fuse.

        can you please explain what is theory behind the power supply?

        thank you


        • The theory is there’s an 7805 on the PCB and if you short it the fuse will blow. ๐Ÿ˜€

          In addition there’s this little boost regulator which generates the HV (well, about 30 V) for the photodiode, but that isn’t really protectable by the fuse.

  14. can you send me the pcb design please!

  15. Todays technology (fiber optic) is basically fiber method. I am try to convert sfp transceiver to perform VLC through Led Bulb. Link 10 gb VLC

  16. Very nice! I’m going to build this as a project for my telecom class in school (you will be duly credited of course)!

    The DC booster (MIC2605) part looks pretty scary to me though, keeping in mind to make sure the thermal pad on it’s belly makes contact without shorting anything out. Any pointers on manually soldering it?

    • I soldered it like this: First, put a small amount of (leaded) solder on the pads, basically the smallest possible amount. Add some flux. Then with a pair of tweezers, put the part in place and hold it there. With the soldering iron, heat up the pads on both sides (that’s why they are so long in the footprint). Then with a hot air gun, heat it up again and tap it a little bit from above with the tweezers. You can probably do it with hot air right away as well, but I like to fix it first for parts this small. Good luck!

      Do you plan to make your own layout or do you want to use this one? I still didn’t fix the positioning of the drill holes for the RJ45 plug, btw, they are off a bit ๐Ÿ˜‰

      • Thanks for your reply! I’ll have to make adjustments so that it will be valid as a project. I’ll be adding an on-board 230 to 9V Coverter circuit to each of the two units as well as a case. I’m thinking it could be useful to make the laser diodes stand out on an adjustable limb (like on those USB keyboard lights).

        I’ll of course be using kicad for the schematic and pcb! ๐Ÿ™‚

        • Oh yes, if you do a new layout, definitely change how the laser diode is mounted, it’s not good like this. I think it would already help a lot if it was standing upright on the PCB, instead of on the side. In that case, with 3 adjustment screws and springs, you can actually align the beam properly (I would still try to use plate springs on the screws).

          In that case you can also replace some of the parts, e.g. the OPA695 is completely over-dimensioned for this application (it has 1.7 GHz GBWP) and you should easily be able to replace it by something cheaper, I just used it because I still have it here from another project. Same goes for the MAX4390 in the constant current source.

          Best of luck and I’d be really happy if you could post your results (layout and photos, maybe) here!

  17. Hi Sven, this is a really cool project, I am just now getting familiar with electrical components such as op amps and the like. I was wondering if you could clarify something, I was looking at the schematic and it seems that when the data signal takes the value of a -1 that the potential difference across the first op amp (V+ – V_) increases? Would that not make the output also increase? And if so how does the laser diode respond, does it glow brighter when the data signal is +1 and even brighter when it is a -1?

    • Hey, which one do you mean by “first opamp”? But it’s quite possible it is inverting, yes … the signal is inverted several times. The transimpedance amplifier is inverting, for example.

      The laser diode is biased to some “base brighthness” and then goes down from there for a -1 and up from there for a +1.

      • The MAX4390, I thought that a -1 would increase the brightness because it is increase the difference between the two inputs of the MAX4390?

        • Oh, that opamp is only a constant current source. It does not see any of the signal at its inputs, the signal is AC-blocked by L1 and L3.

          • Oh yeah that makes sense thank you for that. So one more question to help me understand does the laser diode dim because the -1 v signal decreases the voltage across the laser diode? Sorry for all the questions Iโ€™m trying to make logical sense of the circuit.

        • Yes, exactly, in one case the voltage increases, in the other case it decreases, and that’s why it gets brighter or less bright.

  18. Hey Sven quick question, I made two of these at my house with the intent of connecting one side to the Internet. With each tranceiver I can get my laptop to think its connecting using a mirror so I know each one works. However when I plug one side to my router it wonโ€™t connect any thoughts?

    • Wow, awesome! Have any pictures of the finished boards? ๐Ÿ˜‰

      Well, one issue with this layout is that it only supports 10 MBit/s but the two sides don’t really know that. My devices try to connect at 100 MBit/s and then notice it doesn’t work, and go to 10 MBit/s automatically. Yours might not be capable of doing that. You should be able to set the speed manually to 10 MBit/s on both devices, then I’d think it should work.

  19. Hey Sven, I’m doing a similar project and trying to create to create an SSH GUI over a client-server model. What I want to create is a better link communication and my priority is to check the packets transmitted and received among other statistics such as packets lost, speed and time required to send the data packets, just like you did. would it be possible for you to send you code file to this email: george_45a@hotmail.com? I’d really appreciate it. thanks and great job by the way .

  20. Hi,

    A low noise 10mb optical transceiver can make you earn a lot of money in audiophile world.
    On of the problem with digital auduo is the noise coming from the network. This has a juge impact on dac ships abd sound quality.
    Some people put some linear supplies to thier ntwork equipments to reduce the noise and some others use optical bridge with optical/ethernet converter. Thise brudges perfeclty isolate the audio system from the betwork but the problem it that thise mefia converter are supposed to drive data on km abd the laser power and diods switch made them noisy by itselves (and most if them have switching supplies that ate a nightmare for audio).

    Could you adapt you tranceiver fir such a need ?
    (I would buy one at once)


  21. If i send you a close picture of the pcb of my media converter, would you be able to see if there is something i can do on it to reduce the laser power ?

    Got this one on downstream side symupplied by lifepo4 3,3v batteries (for low noise and ac decoupling)


    I took it because it has no inner switching regulator and i can decrease the power to 3v before it cuts.

  22. Sven, this a fantastic project and one I’ve been looking for, for a long time. You’re a genius! My question is, if you shrank the distance between the two boards could you drive a 100Mbps? And let’s say you shrsnk the distance to 5 to 10 mm. Could you drive 1Gbs Ethernet?

    Many thanks!


    • Thanks! The answer is no, because both the driver and the receiver are too slow for that, because intensity wouldn’t actually increase if you decrease the distance, and most importantly because 100 MBit and 1 Gbit/s ethernet have different interfaces electrically that are not compatible with the approach used here.

      What would be easily achieveable would be a faster receiver if you had more light, then you could just reduce the gain and it would automatically have a higher bandwidth.

      • Roger that, I understand. I guess my next question is could you design a 1gigabit method from scratch? Using whatever methodology would be required?

        • It’s certainly possible but for me would be quite a challenge, and for anyone it would be a major project. Pretty sure I would need more than one attempt to get it working.

          Methodologically, the main difference from this approach here would be that you would almost certainly need to build this as something that actually understands ethernet, i.e. probably has its own MAC, and then uses some suitable modulation on the logical (not physical, like here) signal. On the receiving side you would need a demodulator which produces e.g. RGMII interface signals from the received optical signal, which are then fed into a GBit electrical phy. It would be massively more complex than this simple hack and also require lots of digital electronics.

          Or, if you don’t want to do all the thinking yourself, what you would probably do in practice is using the SFP interface like for existing optical transceivers. Then you can probably use some off-the-shelf switch part which receives the 1 Gbit/s copper signal and translates it to the SFP interface, and only implement the SFP part yourself (ignoring the form factor for simplicity, probably).

          • Makes complete sense. Thank you for your patience and explaination.

            Do you by chance have any schematics for a 1gbs copper to fiber (SFP) media converter. Your schematic we’re awesome. And I’d like to see what the faster componet schematic looks like.

        • No, sorry, don’t have anything at hand — maybe you can find something on the net ๐Ÿ˜‰

  23. help am trying to create a lifi internet receiver
    i already have a transmitting 18 watts LED PANEL BULBS

  24. sir
    kindly help me with detailed steps on how to create an optotransciever on an empty copper substrate board

  25. sir i was looking on the board to find the ADC on the receiver i want to know if an ADC was soldered to your board am asking cos am the verge of doing something like this but on a diffuse mode transceiver
    waiting for your response

  26. if the transmitter side is plugged to a dc for constantly charging electromagnetic field to ensue and the receiver side is connected to a desktop, laptop or phone will an internet connection be established?

  27. my great friend this is a great project kindly send me the design files so I can try one out myself

  28. What a awesome work, beautiful professional like boards!

    I’m currently making a project like this, for my graduation (Eletrical engineering), based on FSO comunitations sistems aplied on ethernet networks, than i saw your project! So, let me make some questions..

    1) what is the purpose of the tantalum cap?

    2) the r15 and c12 in the output of transimpedance amplifier is a kind of filter?

    2) After the transimpedance amplifier, how do you conect the the imputs of the LT1713 comparator ? Seems like you put the signal in the 2 inputs trought R11, mixed with voltage reference part, im kind of confused..

    Otherwise im planing to use LTC6268 for the transimpedance amp, since the datasheet shows a lot of information to this aplication.

    • Hi there, thanks for your interest and kind words!

      1) The tantalum cap smooths the voltage produced by the boost converter. Since it is produced by a dynamic, high-frequency process, it will be very noisy, and that noise will couple into the signal across the photodiode, so we want to keep it as low as possible.

      2) R15/C12 sets the output impedance of the amplifier to something low (50 Ohms). It is supposed to improve stability, but you can probably leave this out.

      3) R9/R8 generate a threshold voltage. C11 stabilizes that. The threshold voltage is fed into the non-inverting input over R16. The signal is fed into the inverting input, after setting its offset voltage with R11. In addition, the threshold voltage is shifted a little bit into the current output state (so a bit towards high or a bit towards low) by connecting it to the output over the (large) resistor R17. This achieves a hysteresis effect, which prevents the comparator from immediately flipping back to its previous state after a state flip unless there is a significant change of the input signal. In other words, it makes the “low going high” and “high going low” thresholds slightly different, which improves noise immunity.

      LTC6268 seems, like the OPA695 used here, at least one order of magnitude too big for this application (i.e. “too good” and thus too expensive). I just used the OPA695 because I had them lying around, I once bought 10 at a discount. ๐Ÿ˜€

      Hope that helps and best of luck,

      • Tanks for the explanation, very intersting circuit, so r11 creates a dc offset to into the the imput alternating signa, right? In your case how much voltage you measure on the output signal of the transimpedance ? Im running some simulations here in LTspice, and got something like 50~100mv. In Analog devices website, i found a very intersting tool for for photodiode receivers, and you can export diret to LTSspice. Im my case im using sfh 213 photodiode.

        • You can see it from the scope screenshot above, yes, about 50-100mV sounds accurate. The DC offset is required because we have no negative voltage supply, and we need to make sure the input to the comparator is always positive. And since we remove the DC offset beforehand with a DC block cap, we need to add it back in. This also makes the assembly somewhat robust to ambient light, which adds a DC offset.

  29. Hello
    I wanted to make something like this can u please send me pcb design file

  30. Hi sven,
    I’m a university student working on a design project and this design is very relevant to my project. I’d really like to learn more about your design, specifically about what limits it from 100 Mbps and from longer distances. Is there a way I can contact you?

    • Some of the other comments already have rather lengthy discussions about both these issues.

      Feel free to contact me by email via mail at svenbrauch dot de.

      • You’ve mentioned that 100 Mbps and 1 Gbps have different ethernet interfaces than 10 Mbps, but from my research I think the 10 and 100 Mbps interfaces are the same (source: https://allpinouts.org/pinouts/connectors/networking/ethernet-10-100-base-t/). It seems to me that you could attain 100 Mbps using your exact design but with a faster laser diode, a higher power (for longer distances), a faster photodiode, and a faster driver circuit. Essentially, were you to have a higher budget and upgrade some of the parts, it would work. Are there major bottlenecks to these speeds I’m missing?

        • I don’t think your research is complete; as far as I know the major differences are a) 100BASE-TX is not DC-free and b) it has 3 signal levels, -1, 0 and +1 instead of just 2. Both goes against basic assumptions made in the design of this circuit.

  31. Dear Sven,

    Nice project, I would like to get information for the same project if possible please send the details at varungsit@gmail.com

  32. Hi Sven, I’m amazed by your good work and I find it very useful.

    I’m trying to do something similar to your project

    I’d like to know which type of laser you used in the transmissor. Do you have the datasheet?

    I want to try using a faster one in order to achieve higher speeds.


    • Thanks! I don’t have a datasheet, it’s just those china laser modules you can buy from ebay or elsewhere.

      The speed is not limited by the laser. This kind of circuit topology will only ever achieve 10 MBits/s, and if it were not for that, the laser driver opamp would be the factor limiting bandwidth.

  33. Hi Sven,
    I think this is very impressive and inspiring. I’m working on a project myself that has similar goals in mind and I’ll definitely draw from your smart design work. I would like to understand the process a little more in-depth. Specifically, would you mind breaking down more specifically how you chose the values of passive elements in your circuitry? Thanks!

    • Hi, can you maybe be more specific about which ones you mean? Explaining each choice of passive element values will fill pages ๐Ÿ˜‰
      The relevant ones in the receiving/sending path are mostly selected considering their characteristic impedance at the relevant frequencies (10 MHz).

      • Thank you for your reply!
        Yes, so I’m mainly curious about C5,C6,C8,L1, and L3 as far as specific function. And then just in general, the values used on decoupling caps, like why that capacitance. Lastly, why is 10 Mhz the relevant frequency?
        Thanks again!

        • C5, C6, C8 are kind of standard values and just serve to stabilize voltages which are meant to be constant. You could use different capacitance values here without changing much.

          L1, L3 are selected such that they block the 10 MHz signal well enough from the DC offset current through the diode (generated by the opamp).

          10 MHz is the relevant frequency since that is the clock speed of the 10 MBit/s link.

  34. I would like to know what color bands are used to connect to Rj45.

  35. Hi! I’ve tried to connect two SFP devices without the optical fiber. I was trying to do something similar to what you did but I only got to achieve a 22 mm distance.

    I’m not sure what could be the range limitating factor..
    The optical power of the device is 1mW
    The sensitivity of the receptor is -32dBm
    Wavelegth: 1310nm

    SFP: TFC-110s15 (https://www.trendnet.com/support/support-detail.asp?prod=375_TFC-1000MGA)
    Transmitter Receiver: https://www.datasheets360.com/pdf/5569523322781363723

    Photos of the experiment: https://imgur.com/gallery/Bz6w3Rl

    Whtat’s the difference with your project? How did you achieve 10cm? More power?


    • Hi there, cool idea!

      I think the problem with your setup is that the angle under which the light is coupled into the fiber is very steep. That means if you leave out the fiber, the light will spread in a cone with maybe 30ยฐ of angle, instead of a proper beam.

      You can in principle add two lenses with the correct focal length for each device.

      • Is something similar happening in your circuit? That’s why you can only put them 10cm apart?

        What could be added to your transceiver in order to increase the range?

        • No, my optical setup has a lens (it’s integrated into the diode) which forms it into an acceptable beam.

          There is no real reason why you could only put them 10 cm apart, it was just sufficient to demonstrate the concept and easy to build. I’m pretty sure it would also work with a few meters distance, but if you actually try to do it, you will find it surprisingly hard to align the beams with sufficient accuracy. ๐Ÿ˜‰

          • How do you know that the diode has a lens?
            Do the lens help to counter the beam divergence?

            I’d like to achieve 15 metres, would i need a diode with a small divergence?


            A diode mount (https://www.edmundoptics.com/f/laser-diode-mounts/12370/) is obligatory for the alignment at long distances?

            Thank you so much for the all the answers!

          • Diodes without lens usually have very large divergence angles of several degrees in one direction, and several tens of degrees in the other. Your module seems to have a collimation optics built in, since it specifies a divergence angle of just 1.6 mrad, or 0.09 degrees. That would be a spot size of about 1.6 cm in 10 meters distance, computed by 10m * tan(0.00016 rad). Or just replace the tan function by its argument, it does nothing for arguments that small anyways: 0.00016 * 10 m = 1.6 cm.

            From the area of this spot, the size of your detector and the total power of the module, you can compute how much power is available to your detector. If your calculations tells that this is not sufficient, you can use a collimation lens at the receiver side. Decreasing beam divergence below the 1.6 mrad specified for this module will be near impossible.

            For alignment, you can buy something or build something yourself. In my experience, the mechanical assemblies from Thorlabs, Newport or similar are high-quality parts which are not that expensive if compared with building something of comparable quality yourself, so they might be a good choice. If you put something together yourself, that’s fine too, but you should aim to use screws for alignment and preferably build the mount of metal. Wood, plastic, paper, glue or tape are not materials that will make you happy in this kind of setup; they will always twist, deform or relax over time and screw up your alignment at the most un-opportune time.

            Good luck!

  36. Hey Sven. great work. I tried to replicate your work but I have ran into some problems.

    1) In your actual pics of the PCB, R14 looks like a cap. Is that right?
    2) Is R2 20k?
    3) R17 is absent on the assembles pcb
    4) You mentioned a misplaced 200um hole. Which hole you are talking about? And i believe on U3, LE should be connected to ground right?

    I highly appreciate if you could reply.


    • 1. I don’t see exactly where you are looking but of C24, R14 one is a cap and one is a resistor. The pads are electrically the same, so it’s possible I swapped them on one of the boards (without effect).

      2. I don’t have the board at hand at the moment, I buried it somewhere, so not 100% sure. 20k sounds ok though, change it for something smaller or bigger if you cannot get the desired base current by tuning RV1.

      3. No, I think it was just removed for the first photo because I was figuring out the LE issue.

      4. One of the mechanical drills of the ethernet jack. Yes, LE should be Gnd.

      • Hey, thanks for a prompt reply.

        I have soldered R14 and R17.
        Without R17, ping works, but a lot of packet loss, 50~75%.
        With R17 soldered, PCs wont connect to ethernet at all.

        Is there anything that i am missing?

        and BTW, i needed crossed ethernet cables for it to work.

        • Ah cool, you built it? Nice! As said, I think there are far better component choices than mine, they were based on stuff I had lying around.

          Check the signal at Pin 6 of U1 with an oscilloscope. Does it have enough amplitude? Try increasing R3, e.g. to 12k or even 47k. Does that help?

          You can also decrease R6 and R24 (both by the same amount), to e.g. 100R, or increase or remove R22. This increases the amplitude of the modulation. IIRC I did that as well, now that I’m talking about it …

          R17 adds hysteresis to the comparator, it seems like it is too large for the signal amplitude you detect. That is not the root cause of your issues, though, I think the hysteresis intoduced by R17=100k is sensible.

          Crossover cables might be needed for very old devices, but modern devices typically do the switching internally automatically ..

  37. Hi Sven,

    Sorry to bother you again, I’m trying to understand everything before I start building the transceiver.

    As I told you before, my main concern is achieving a minimum distance of 10metres.
    You said that aligning the the devices would be a more difficult task as the distance increases.

    I was thinking of another alternative to circumvent the problem, I want to increase the optical power.
    What if I use a Laser diode of a ~80mA or more?

    Moving the potenciometer RV1 I could increase the bias current and then I could use a differential amplifier (https://i.imgur.com/UZkgHap.png) to increase the signal voltage.(would this increase the signal current?)

    With a stronger optical power at the transmitter, I wouldn’t have to worry so much about perfect alignment at ~10metres or more


    • I don’t think the alignment requirements decrease in a significant way if you increase optical power. You have a 2 cm red dot and you need to align it such that it hits the photodiode of the other part, and that dot being ten times as bright doesn’t make the job easier ๐Ÿ˜‰

      Instead of increasing power (and making the device non-eye-safe), I would first start with putting a cheap lens in front of the receiver to collect all of the beam power, if I wanted to increase range. That could also simplify alignment, because you might be able to shift the lens to do the fine adjustment.

  38. I thought I could build something like that


  1. Go Wireless with This DIY Laser Ethernet Link - worldnews

Leave a Reply

Your email address will not be published. Required fields are marked *