News Maker Creates DIY Raspberry Pi Pico GPIO Ethernet Connection


Dec 12, 2009
Very interesting article and a clever idea! I like ideas like this that add a twist.

Note that the photo shows a common mode filter and not an isolating pulse transformer. Ethernet cards use a pulse transformer to provide galvanic isolation as well as trying to get minimal parasitic capacitance through the transformer and stopping conducted high frequency noise from circulating around back through the building and through the power supply parasitic capacitance.

The common mode filter in the picture helps with reducing that circulating high frequency current by adding common mode inductance but not adding much differential mode inductance which would screw up the data signal. This is the same as the molded in EMI cores that you see on some HDMI and Display port video cables and the power cables for those same monitors. The HDMI cable core is to block the conducted EMI through the HDMI cable, and the power cable core blocks whatever get into the monitor from the video source and what the monitor creates itself from going into the power plug.

If those core are not there, the circuit path back through the monitor and PC is: (1) PC video out to monitor, (2) monitor power to PC power, and (3) PC PSU out to motherboard. The PSU in the monitor and the PC have galvanic isolation (think 50/60Hz), but often the isolation has very high parasitic capacitance which also high frequencies to easily pass right through. The EMI heartburn is caused by the path into the building power network, since it can flow elsewhere in the building and upset sensitive electronics, especially RF systems (WiFi, cell, Bluetooth, etc.).

A pulse transformer isolates for low frequencies including line frequency and even DC. It is not unusual for large buildings to have both AC and DC components across the building ground structure (really!). (On a side not, high AC noise causes GFCI issues and DC causes corrosion issues on pipes and gas lines). If there is any transient system in the building such as a welder operating or an HVAC system turning on, there will be a fast transient on the building ground as well as the parasitic capacitance in these loads gets quickly charged (like the motor winding capacitances in the HVAC). The pulse transformers help block those from upsetting the data being sent as well as the Ethernet electronics, which is one reason Ethernet has been so successful from a hardware standpoint.

Reactions: CooliPi


Oct 4, 2019
Adding to a great reply from Charles: the main reason why is twisted pair ethernet so ubiquitous and successfull is mainly its galvanic isolation. Even car automakers are pushing it for car cameras as a solution, what's why single-pair ethernet was born. HDMI, for example, doesn't have DC isolation and that's a reason why a TV or a monitor gets desynchronized sometimes - if the grounds of connected electronics aren't coming from the same socket (or a circuit), the DC or large AC component on ground pushes the incoming signal beyond allowed range on a receiver. Most signalling protocols are based on CML logic (DVI, HDMI,...) which has kinda low range of allowed voltages for signal, albeit being differential.

The pulse transformer for 10BaseT ethernet has sharp filter in it at about 17MHz. This helps to filter out EMI even on differential wires - the higher harmonics don't carry any unique information, just the same as the first harmonics (5/10MHz, Manchester II modulation). So, the wires propagate only low frequencies that are near sinusoidal shape.

There are various winding ratio transformers, depends on voltage the source equipment runs on. The original 10BASE-T transmitter sends two differential voltages, +2.5 V or -2.5 V. So, a 3.3V microcontroller may need a different ratio transformer than 1:1 Output impedance should be matched to the transformer differential impedance.

We've used Manchester encoding on one of our DIY free space optic laser links for carrying the other side RSSI in digital form. Very nice, balanced encoding, every Baud has an edge to synchronize with, but you need to oversample at least 2x to sample the right information, not an edge of a signal. Or have a hardware PLL to do it. It either passed ethernet signal through, or flipped a MUX and transmitted our RSSI 4 byte sequence with 2 byte preamble (0xAA55) to sync on, even though at a much lower Baudrate to be receivable by a x51 microcontroller state machine running under interrupt routine. Long enough to pass 10 bits of RSSI signal to the other side.

The former 10Mbit Realtek 8029 ethernet cards had a bad PLL, which was corrupting data. Our LAN party was sometimes interrupted as one of the stations with this bad card by design sent or received something which passed ethernet frame CRC , but the game running over raw ethernet frames couldn't detect it. I've inspected the frames later and found out, that it flips bits so frequently, that on some words a 0 is 1 and some words later on the same bit position (in a word), a 1 is 0.

Back to Pico, to sync on a 10Mbit/s receiving frame, it would need to sample at least at 20MHz frequency. With the state machine IO Pico has, it might form a simple serdes and pass the incoming data to one core for reception. So, it may actually work. Only a decent comparator behind a pulse transformer would be necessary if Pico doesn't have it on any inputs (some microcontrollers do have it).

A caveat might be a link presence pulse, which is unipolar. It might wreak havoc with the receiver state machine if not managed correctly.

Protective TVS diodes may be a welcome upgrade. Nowadays, they're cheap and have low parasitic capacitance.

Correct me if I'm wrong, please.