In the decade and a half between giving away my old SE/30 while moving house, and acquiring another one, I seem to have misplaced the ethernet card that I used to have for it. Having gotten a pretty severe case of sticker shock looking at what they go for on eBay these days, I have embarked on a foolish course of action. While a normal, reasonable person would buy something like a PiSCSI (hot damn, BlueSCSI does WiFi now??!) or @Bolle's extremely neat PDS combo card, I have gotten it in my head to design an all-new card based on a modern embedded ethernet controller. Mostly just to see if I can actually do it.
I've come up with a design using the Microchip ENC624J600 (try saying that quickly), a basic all-in-one 10/100 ethernet controller that's targeted at the embedded market. Its smaller, more popular cousin, the ENC424J600, supports SPI and a multiplexed 8-bit bus, but the '624 adds a non-multiplexed 16-bit bus mode that looks like it'll play nicely with the 68k with only minimal glue logic. I'm targeting the SE/30 and SE, just because they're the machines that I happen to own, but if this works it should also be easily adaptable to other 68k PDS slots, and (not so easily) to NuBus.
I noticed that a similar project from a few years ago to build a card based on the LAN9218 seems to have stalled at the stage of writing a driver, but working in my favour is the fact that since then, permissively-licensed source code for a Classic Mac OS ethernet driver has been published, which should hopefully make driver development a bit less of a challenge. Incidentally, I came across that project while considering the LAN9218 for my own, but the ENC624J600 is substantially cheaper.
At this point, I've got "Revision 0" schematics and boards done, with the glue logic and declaration ROM in sockets to ease the inevitable bodge-and-bugfix process. While I'm waiting for the boards to arrive, I've got the glue logic and what should be a mostly-functional driver bashed out. The plan is that I'll try to bring the SE card up first, since the 68000 requires basically no glue logic to talk to the chip. Once that's functional, I'll move on to the somewhat more complicated SE/30 card.
My current work-in-progress is at https://github.com/rhalkyard/SEthernet, though in its current state you'll probably have to be fairly in tune with my thought patterns to follow along. While eagle-eyed observers will note that I have a VGA socket on my breakout board, my plans to build a PDS-passthrough version of the SE/30 card are on hold until I either rethink my entire routing and layout strategy and/or move to a 4-layer board.
I should caveat all this by saying: I'm a software developer by trade (albeit one who works on Ethernet drivers), and my electrical engineering skills are very much in the "enthusiastic amateur" category, so I'm sure I'm committing all kinds of board-layout sins and violating the Ethernet standard in many exciting ways. My main criteria for success here is "sends and receives packets and doesn't catch fire," but if there are ways I can achieve that while also following better practices and potentially not radiating egregious amounts of EMI, I'm all ears.
Once I get the project to a state I'm happy with, I'd be open to the idea of a small production run if folks are interested, but that will probably be a ways off yet, and I imagine that with devices like PiSCSI and BlueSCSI v2 emulating SCSI ethernet adapters, this probably has an even more niche appeal than most retro hardware. As far as cost goes, I'm shooting for "significantly less than a real vintage SE/30 card" and the BOM cost definitely makes that feasible, but I haven't thought much farther than that at this point. Anyway, if anyone has any comments, criticisms, encouragement, etc. I'd love to hear it!
I've come up with a design using the Microchip ENC624J600 (try saying that quickly), a basic all-in-one 10/100 ethernet controller that's targeted at the embedded market. Its smaller, more popular cousin, the ENC424J600, supports SPI and a multiplexed 8-bit bus, but the '624 adds a non-multiplexed 16-bit bus mode that looks like it'll play nicely with the 68k with only minimal glue logic. I'm targeting the SE/30 and SE, just because they're the machines that I happen to own, but if this works it should also be easily adaptable to other 68k PDS slots, and (not so easily) to NuBus.
I noticed that a similar project from a few years ago to build a card based on the LAN9218 seems to have stalled at the stage of writing a driver, but working in my favour is the fact that since then, permissively-licensed source code for a Classic Mac OS ethernet driver has been published, which should hopefully make driver development a bit less of a challenge. Incidentally, I came across that project while considering the LAN9218 for my own, but the ENC624J600 is substantially cheaper.
At this point, I've got "Revision 0" schematics and boards done, with the glue logic and declaration ROM in sockets to ease the inevitable bodge-and-bugfix process. While I'm waiting for the boards to arrive, I've got the glue logic and what should be a mostly-functional driver bashed out. The plan is that I'll try to bring the SE card up first, since the 68000 requires basically no glue logic to talk to the chip. Once that's functional, I'll move on to the somewhat more complicated SE/30 card.
My current work-in-progress is at https://github.com/rhalkyard/SEthernet, though in its current state you'll probably have to be fairly in tune with my thought patterns to follow along. While eagle-eyed observers will note that I have a VGA socket on my breakout board, my plans to build a PDS-passthrough version of the SE/30 card are on hold until I either rethink my entire routing and layout strategy and/or move to a 4-layer board.
I should caveat all this by saying: I'm a software developer by trade (albeit one who works on Ethernet drivers), and my electrical engineering skills are very much in the "enthusiastic amateur" category, so I'm sure I'm committing all kinds of board-layout sins and violating the Ethernet standard in many exciting ways. My main criteria for success here is "sends and receives packets and doesn't catch fire," but if there are ways I can achieve that while also following better practices and potentially not radiating egregious amounts of EMI, I'm all ears.
Once I get the project to a state I'm happy with, I'd be open to the idea of a small production run if folks are interested, but that will probably be a ways off yet, and I imagine that with devices like PiSCSI and BlueSCSI v2 emulating SCSI ethernet adapters, this probably has an even more niche appeal than most retro hardware. As far as cost goes, I'm shooting for "significantly less than a real vintage SE/30 card" and the BOM cost definitely makes that feasible, but I haven't thought much farther than that at this point. Anyway, if anyone has any comments, criticisms, encouragement, etc. I'd love to hear it!