MUREX Ethernet Switch V1_
MUREX Robotics is Phillips Exeter Academy’s High School Underwater Robotics Team competing in the MATE Underwater ROV Competition.
We have a grand vision: to democratize technology for all. Despite being just a high school robotics team, MUREX strives to uphold that standard in every way possible. We’ve yet again made a stride towards out ambitious dream in a recent project regarding the networking system of out underwater ROV.
While designing the new electrical system for the MUREX ROV, we realized the need for an embedded (and small) Ethernet switch. We needed something to connect our custom CM4-based control board, PLC module, and vision system –– consisting of multiple IP cameras. Instinctively, we turned towards the internet in search of a performant and affordable solution.
Unfortunately, that search was to no avail. The 5-port Ethernet switch by Blue Robotics — a major sponsor of the MATE ROV Competition — costs a whopping $175 per unit! The SwitchBlox by BotBlox — a company specializing in Ethernet solutions — doesn’t do much better at $72. Finally, we found Allbord, a company offering cheap but robust switches. Sadly, they are based in Shenzhen, China.
So, we decided to take matters into our own hands (as usual)…
After extensive summer research and intermittent work by our budding electrical team throughout the fall, we present the MUREX Ethernet Switch: a 5-port unmanaged Fast Ethernet (100BASE-TX) switch compliant with the IEEE 802.3u standard, matching commercial solutions in size and performance. Additionally, the BOM costs just under $15 per unit! Most importantly, it is fully open-source, so anyone can follow and improve upon our solution.
>>> Testing Conditions
Two Gigabit enabled computers
running iperf 2.1.9
one serving as local network DHCP host
MUREX Ethernet Switch
// TCP window size: 162 KByte (default)
Bandwidth (host): 94.1 Mbits/sec
Bandwidth (client): 94.4 Mbits/sec
Total Transfer: 113 MBytes
In this brief post we hope to share our design process, as well as note the various insights and mistakes we made along the way. We are no experts, however, we hope that our readers (yes, you!) will also embrace the open-source spirit and comment any ideas or feedback down below. Let’s get started.
The IC of choice must be robust, easy to use, and widely available. Of course, a low price tag is also very beneficial. MUREX selected the IP175G due to its availability and commonality in embedded applications, although similar ICs like the RTL8305NB-CG could also be used. The pin-compatible IP175GHI can be used in harsh conditions with wider temperature ranges than the IP175G – perhaps a new version down the road?
The datasheet of the IP175G was very difficult to read, in part due to misspellings and very graphical diagrams. Worst of all, there was no sample implementation schematic. Although we pieced together most of the chip’s required passives and design considerations, a reference schematic helped cement it. After much searching with DuckDuckGo (Google didn’t index this website), we found this.
To make this a truly “embedded” ethernet switch, MUREX opted for external magnetics to a connector for smaller sizing. The board-to-wire connector from the ethernet switch should be compact, locking and directional. We went with the simple and obvious choice, the Molex PicoBlade connector. Since this is a “Fast” (100BASE-TX) ethernet switch and not a Gigabit (1000BASE-TX) ethernet switch, there are only two differential pairs.
Great, we now know what we’re doing! Let’s make the schematic in KiCAD Nightly.
A day or two later, we spun up a design in KiCAD, largely following the standard implementation with a few features and modifications, namely:
- We scoured JLCPCB’s SMT parts library for the most fitting external magnetics, ultimately settling on the QT24A23 and BT16A07. Note: when it came time to order, the BT16A07 was out of stock so it was replaced with the HY601680.
- We implemented a constant 3.3V output LDO with a maximum voltage input of 15V (12V nominal).
- Configuration jumpers
- For quicker configuration, all the initial setting pins have solder jumpers located on the back.
- Bob Smith Style Termination
- After a lot of research and discussion, we settled on a variation of the standard Ethernet grounding strategy: the large MLCC capacitor terminates to nothing. This means that there is no copper other than the differential pairs in the region between the magnetics and the connectors. (On our PCB, we have ground planes around the differential pairs as our impedance calculations were coplanar)
- There isn’t really a “right” method for Ethernet grounding. Some application notes recommend grounding everything between the magnetics to the connector to CGND, while others tie CGND to DGND with a capacitor.
- Each method provides different benefits in terms of isolation and noise isolation, but we ultimately chose to terminate to nothing due to its simplicity and reliability.
- This method is recommended by the Renesas industrial Ethernet application notes as well as 10/100 Ethernet ICs like the LAN8742.
- This video (also by Zach Peterson) covers all types of Ethernet grounding in a nutshell.
To be frank, Fast Ethernet is quite lenient with design choices, but it is still good practice to follow application notes from various companies. Here are the key pointers:
- Differential pairs, RX+/RX- and TX+/TX-, should be impedance matched and short (100Ω differential controlled)
- No copper on any layer under discrete magnetics to minimize coupling
Additionally, if chosen as the voltage regulator, a cheap LDO should be cooled with thermal vias and/or a heatsink.
Here are some sources we referenced when designing the board:
As with all things, there are many flaws with this board. Although none fatal, these flaws limit the board to what it could be. Here are a few that we thought of while testing the board. (hey, 20/20 hindsight, am I right?)
- Make it smaller!!
- The layout of the board and component choices limited how small we could make this board. Let’s see how small we can make the board next time!
- LDO Inefficiencies
- The LDO dissipates a lot of heat, despite adequate thermal cooling. Next time, high frequency DC-DC converter or, if we’re lazy, heatsink.
- EEPROM implementation
- Although an EEPROM is not necessary for the functionality of the IP175G, we decided to implement it for two reasons.
- More configurations for future expandability with queues, CoS, VLAN and so much more.
- Breaks out the serial pins for the IP175G, allowing it to be connected to a larger system for more fine-grade control.
- Serial control of IP175G
- We don’t use it, but maybe someone else will…
…or maybe someone else will improve upon this design, integrate it into a robot of some sort (we certainly will!), or learn from it. We don’t have high frequency oscilloscopes or VNAs, nor the know-how to run large-scale simulations and optimize. There are definitely even more flaws with our design that we never even knew about! Feel free to reference and improve upon our design, for that is the beauty of open source. We look forward to seeing what you can learn and create with the MUREX Ethernet Switch. Wrapping up Thanksgiving break, we’ve attempted the impossible, and somehow pulled it off (flaws and all).
> Technology. For. All