[HN Gopher] Show HN: SatCat5, the open-source FPGA Ethernet switch
___________________________________________________________________
Show HN: SatCat5, the open-source FPGA Ethernet switch
We've just launched v2.5 of SatCat5, the open-source FPGA Ethernet
switch [1]. SatCat5 contains various FPGA building blocks that let
you build a custom mixed-media Ethernet switch. It was originally
intended for cubesats [2] but has many other potential
applications. The headline feature for this release is support for
the IEEE-1588 Precision Time Protocol (PTP). SatCat5 has
demonstrated end-to-end synchronization to within 50 ps-rms, which
is approaching the world-leading performance of CERN's White Rabbit
Project [3]. Except we're doing time-transfer over regular, non-
synchronous Ethernet. The key breakthrough is a new technology for
digital timestamps that we've published in IEEE Access [4]. This
project was featured on HN back in 2023 [5]. Since then, we've
changed to the CERN-OHL-W v2.0 license, which has much better legal
clarity for FPGA projects. [1] https://github.com/the-aerospace-
corporation/satcat5 [2]
https://digitalcommons.usu.edu/smallsat/2020/all2020/174/ [3]
https://white-rabbit.web.cern.ch/documents/White_Rabbit-a_PT... [4]
https://ieeexplore.ieee.org/abstract/document/10367970 [5]
https://news.ycombinator.com/item?id=34817550
Author : ooterness
Score : 139 points
Date : 2024-03-16 23:47 UTC (23 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| minetest2048 wrote:
| Hi!
|
| I'm one of the engineers working with cubesat hardware and
| software integration, and I've been following this project since
| 2023 because I agree that standardizing over Ethernet over
| (twisted pair, UART, single pair, etc...) will solve a lot of
| integration pain from all of the DIY protocols that the
| cubesat/smallsat community uses
|
| Some thoughts:
|
| - You actually have a publicly available ICD at
| https://github.com/the-aerospace-corporation/satcat5/tree/ma... ,
| please publicize this more in the readme! You're a very rare
| exception in a world of contact us and sign an NDA first and
| commercial in confidence ICDs, which is great, and leads me to my
| next point:
|
| - Compared to HTTP API documentation, space ICDs sucks. One of
| the ICDs that I have put its protocol documentation as
| screenshots instead of copy pasteable text. Of course ICDs sucks
| because you won't know its quality until you buy it... Anyway
| standardizing on ethernet for transport layer give you all the
| tooling at 99% of the world's computer use, and it might be a
| first step in making a OpenAPI / Swagger type tool but for space
| protocols
|
| - Any plans for 10base-T1S single pair ethernet? Our 6U cubesats
| barely have enough power to run its payload computers, let alone
| a FPGA based switch. But in a way a switched star network can be
| more reliable than a multidrop bus, as you can isolate babbling
| idiot nodes, and filter out accidental/intentional MAC/IP address
| spoofing
| ooterness wrote:
| Thanks for a very thoughtful reply!
|
| Regarding the Slingshot ICD: Noted, I'll make a point to update
| the readme. That document is literally the payload ICD for the
| Slingshot-1 cubesat that launched in July 2022 [1][2]. Future
| missions may take things in a slightly different direction, but
| that ICD is a flight-proven point design that shows what's
| possible. The space industry's NDA-by-default attitude
| definitely creates a lot of unnecessary friction.
|
| I totally agree that off-the-shelf tooling is a huge benefit of
| leaning into Ethernet. In particular, Wireshark has been
| essential in winning over hesitant developers; it's just light-
| years ahead of what you usually get for debugging
| microcontrollers.
|
| I've been watching the various 10BASE-T1S / 100BASE-T1 /
| 1000BASE-T1 standards, but company interest has been limited.
| AFAIK none of them can be attached directly to FPGA
| GPIO/SERDES/etc., so you need a separate PHY chip on both ends
| of the link. For us, the competition is SGMII over coax (for
| FPGA payloads) or SPI/UART over 4 wires (for microcontroller
| payloads). Cubesat cable runs are so short that the ability to
| directly attach to GPIO typically outweighs potential size and
| weight savings in the cable harness, plus it's one less chip
| with unknown radiation tolerance, etc.
|
| That said, the good news is that -T1 PHYs typically have one of
| the usual *MII options (RMII, SGMII, etc.), so many are already
| compatible with SatCat5. The bad news is 10BASE-T1S requires
| CS/MA and PLCA logic that is not yet supported. (But if anyone
| wants to contribute cool features to this open source project,
| please reach out.)
|
| [1]
| https://aerospace.org/sites/default/files/2022-08/Slingshot_...
| [2] https://aerospace.org/article/aerospaces-
| slingshot-1-demonst...
| johnwalkr wrote:
| Great work on this, it looks really promising! The industry
| is really a mess with a mix of interfaces. On one end there
| is stuff like RS422 which is simple but only the hardware
| layer is really standard and normally its not set up or
| tested to more than 1Mbps. On the other end there is stuff
| like spacewire which is a good standard but it's not
| something a university payload team can dive into with COTS
| parts.
|
| Question: what's the power consumption like? When I was an
| aerospace grad student, I tried really hard to use ethernet
| to interface everything for a cubesat-sized spacecraft. But
| it turned out each port consumes about 0.25W at 10Mbps and
| 0.5W at 100Mbps. That's per port, so up to 1W just to connect
| 2 devices. That is a lot when your main cpu consumes 1W, and
| payloads and other devices often use much less. It would have
| almost tripled total power consumption.
|
| I looked into the EEE (energy efficient ethernet) standard
| and it didn't seem workable for using COTS things, it only
| seemed workable if you had design authority over everything.
|
| I kind of knew changing the physical layer was possible but I
| didn't know where to start, and anyway the microcontrollers I
| had picked out at the time because they "had ethernet" turned
| out to be very hard to use with more standard devices,
| defeating the point.
|
| Another couple of questions. I like gecko connectors but why
| not choose the ones with mating screws? Also interested in
| criteria for selecting the Tyco connectors.
|
| By the way, there is a small company that makes very tiny
| ethernet switches[1] for drones. There are 100Mbps and 1Gbps
| versions and they have nice connectors you are probably
| already familiar with. They are very nice for development of
| embedded stuff, even if you don't integrate it in your
| project and just use it for the sake of getting a pile of
| routers off of your desk.
|
| [1] https://gadgetsmyth.com/shop/
|
| Note: My opinions are my own and not those of my employer.
| ooterness wrote:
| Power consumption varies a lot with the number of ports and
| the FPGA platform. The "ac701_proto_v1" example design for
| the Xilinx Artix7-200T has 4 SPI/UART ports and 4 gigabit
| ports (a mix of RGMII and SGMII). That design hits around
| 150-700 mW [1], depending on how many gigabit ports are
| active.
|
| One way we've saved a lot of power is by skipping the
| Ethernet PHY. Last time I looked, a 100BASE-T PHY was about
| 130 mW each and a 1000BASE-T PHY was about 480 mW each.
| Double that because both ends of the link need a PHY, and
| that roughly lines up with your numbers.
|
| The upside of using a PHY is that "real Ethernet" can drive
| hundreds of meters of cable. The PHY chip is effectively a
| converter from the local interface (*MII) to the long-
| distance interface (10/100/1000BASE-T). But on a cubesat or
| a small UAV, cables are short, so you can skip that
| conversion to save power on both ends. The downside is that
| the many *MII flavors are not mutually compatible.
|
| Regarding the Gecko connectors, the very simple reason to
| avoid screws is floorspace. The "Handle" payload interface
| unit [2] has 12 Gecko connectors in a 4x3 grid. The screw
| mounts add enough width that it wouldn't fit in the
| allotted space. The retention clips are quite robust,
| though you do need a small tool to remove them. There's no
| reason you couldn't have screws on one end of the cable and
| clips on the other.
|
| Regarding the Tyco connectors, it's definitely a compromise
| that we might revisit. Size and signal integrity were the
| main concerns. The space industry is quite risk-averse, so
| something with provable signal integrity for 1250 Mbaud
| SGMII signals was a necessity.
|
| The GadgetSmyth product line is quite interesting. I had
| not heard of that company before. I'm surprised that their
| 1000BASE-T pigtails are not using twinax or STP cable, but
| the switch cards are definitely aligned with what we're
| trying to accomplish.
|
| [1]
| https://digitalcommons.usu.edu/smallsat/2020/all2020/174/
| [2] https://github.com/the-aerospace-
| corporation/satcat5/blob/ma...
| johnwalkr wrote:
| Thank you for the replies!
| crote wrote:
| Huh, what a neat project!
|
| Especially the Ethernet-over-UART/SPI/whatever part is quite
| interesting. It's _incredibly_ obvious in hindsight, but it 's of
| course a great way to create affordable wired IoT devices. You
| could just talk Ethernet over RS485, and be able to communicate
| to a bunch of devices with a single $20 translator and a $0.15
| transceiver per device!
| ooterness wrote:
| Yes, that's a great example of the "mixed-media" use case for
| SatCat5. If you have an Ethernet switch where some ports are
| Ethernet-over-RS485, and others are Ethernet-
| over-10/100/1000BASE-T, then the switch doubles as a sort of
| media converter. Using a common transport layer means it's
| easier to link sensors, actuators, and compute resources.
| wrs wrote:
| Maybe I'm just looking in the wrong places, but open hardware at
| this quality level seems to be extremely rare. Does anyone have
| other good examples of complete, professional-quality open source
| HDL projects that aren't CPUs? I'm thinking of the hardware
| equivalent of PostgreSQL, something truly industrial strength
| with readable code you can learn from.
| ooterness wrote:
| The open-source community for gateware is not as large or well-
| developed as the one for software, but there's many good
| projects out there.
|
| OpenCores [1] has been around a long time, and there's many
| high-quality FPGA IP-cores hosted there. The Open Hardware
| Repository [2] is another good resource. Not all OHWR projects
| involve FPGAs, but many have full hardware/gateware/software
| stacks, including the White Rabbit Project [3].
|
| [1] https://opencores.org/ [2]
| https://ohwr.org/explore/projects/starred [3] https://white-
| rabbit.web.cern.ch/
| wrs wrote:
| I know about OpenCores, but it consists of, well, cores. I'm
| looking for fully realized projects, with controller, glue
| logic, external interfaces, test benches, multiple hardware
| realizations, all the tedious stuff you have to do to make a
| working version>1 device. That is, what do you _do_ with the
| cores? To me it seems analogous to the difference between a
| B-tree library and PostgreSQL. White Rabbit looks great,
| thanks for the pointer!
| ooterness wrote:
| Ah, I see. I'm coming from a background where nearly
| everything is a bespoke one-off design. (After all, if
| you're making a million of something, why use an FPGA?) My
| colleagues are usually looking for flexible, multipurpose
| building blocks that they can assemble into something
| unusual. That's the main intent for SatCat5, though we do
| include fully-realized example designs that may be closer
| to what you're looking for.
| shmerl wrote:
| Oh, is there an open source switch that supports 10 Gbps SFP+?
| morphle wrote:
| I make my own open source FPGA switches, 6 and 12 port 10 Gbps
| SFP+ up to 100 Gbps QSFP28. Older model described in [1]. Email
| me if you want one.
|
| I also sell cheap $150 10 Gbps and 25 Gbps QSFP28 switches but
| they are only partially open source.
|
| They still sell some of the NetFPGA models, very pricy [2].
|
| There are a few Chinese and Russian switches but you can't buy
| them anymore because of the war.
|
| [1] https://www.researchgate.net/profile/Merik-
| Voswinkel/publica...
|
| [2] https://netfpga.org
| shmerl wrote:
| _> I make my own open source FPGA switches, 6 and 12 port 10
| Gbps SFP+ up to 100 Gbps QSFP28._
|
| How big is it physically? I don't really get it from the
| link.
| morphle wrote:
| There is a picture of a FPGA switch in the pdf [1]. You
| usually put it in a outdoor or indoor metal case or a PC
| slot.
| ooterness wrote:
| Development of SFP+/XAUI is on our wishlist for SatCat5, but
| not yet supported.
| gigatexal wrote:
| In my next life I will go to college an study computer
| engineering. It never ceases to amaze me the cool stuff you
| hardware hackers can do.
| zokier wrote:
| One of my dream projects would be to grab some off-the-shelf
| switch IC and build OSHW switch around it with fully free
| blobless Linux based software stack. Something like SparX-5 [1]
| could work here, and the vendor software is already Linux based
| (but presumably absolutely horrible). The problem is that you'd
| need fair chunk of cash to get anywhere, so this basically needs
| a kickstarter or something to get going.
|
| [1] https://www.microchip.com/en-us/product/vsc7552
| tonyarkles wrote:
| You might be interested in some of the stuff Andrew Zonenberg
| is working on: https://ioc.exchange/@Azonenberg. I don't have a
| link to a specific post, he usually has a couple of things on
| the go and they all get interleaved. Pretty wild Ethernet stuff
| in there!
___________________________________________________________________
(page generated 2024-03-17 23:01 UTC)