Skip to the content
PCBKitNew board
4 layers116.8 × 121.8 mmSe30, the printed circuit board in 3D

Modern, low-cost 10/100 Ethernet for the Macintosh SE and SE/30

Size
116.8 × 121.8 mm
Copper layers
4
Thickness
1.6 mm
Parts
50
Nets
145
Pads
499
Tracks, vias
1,515, 214
Pours
7
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
13 Nov 2023
Updated
26 Nov 2024

Overview

Se30 is an open-source printed circuit board by rhalkyard, from the rhalkyard/SEthernet repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 116.8 × 121.8 mm with 50 parts on 145 nets, routed with 1,515 tracks and 214 vias.

It is built around the PT61017PEL. Its parts include 22 capacitors, 11 resistors, 4 ICs, 4 connectors and 1 crystal. It belongs with the interfaces and adapters boards and the FPGA and CPLD boards of this library.

Main components

1

README

README.md

SEthernet and SEthernet/30

Modern, low-cost 10/100 Ethernet for the Macintosh SE and SE/30.

Introduction

It's an unfortunate reality of retrocomputing that, as time goes on, original hardware only ever becomes more scarce, and usually more expensive.

While PDS ethernet cards are certainly not scarce yet, the collector appeal of Compact Macs means that cards are in high demand, with consequent high prices. As of this writing (October 2023), the going eBay rate for them seems to be of the order of $US 150-200, which is a bit steep for those of us who remember finding them in electronics-recycler dollar bins.

While other projects have aimed to clone these original cards, such an approach comes with a downside - the ethernet controller chips used in them have been out of production for many years, and the controllers and (even more so) their supporting components, are difficult to find.

While cloned cards trade off parts sourcing difficutly (and cost) for the significant advantage of being able to use existing drivers, this project takes the opposite approach: design an all-new card using a modern, readily-available ethernet controller, and write a new driver for it. How hard can it be? 1

Hardware Overview

Both the SEthernet and SEthernet/30 use the Microchip ENC624J600 all-in-one embedded ethernet controller. It's cheap, readily available, has a straightforward software interface without too many glaring misfeatures (I'm looking at you, RTL8019AS), and amongst its multitude of configurable host-bus modes, it has one that matches the 68k processor bus nicely.

Since the Macintosh SE lacks any real infrastructure for expansion beyond "here's a connector with the CPU bus on it," the SEthernet board is a very dumb device. It simply maps the ENC624J600 into a vacant chunk of memory at 0x80 0000-0x80 ffff and connects it to an interrupt line. Hardware detection, interrupt vector interception, and device configuration are all left to the driver to implement.

The Macintosh SE/30 is a more civilised machine, and the SEthernet/30 provides a declaration ROM and multiple addressing options (configurable by jumper) to take full advantage of the Slot Manager and coexist with multiple PDS cards. Potentially, the driver could even be built into the declaration ROM, allowing for a truly plug-and-play solution. To facilitate driver updates, the declaration ROM is a flash chip, with logic to allow for in-system programming.

Current project status

Hardware

Hardware Revision 1 is largely 'done', and corrects the numerous issues of my initial "Revision 0" boards. A few mechanical tweaks remain to get mounting holes in exactly the right spot, and relocate connectors for easier access.

Software

The core driver is functional and stable enough for everyday use. Real-world performance is marginally better than a comparable vintage card, but there is likely room to improve - especially in the rather convoluted receive routine.

Support for promiscuous mode, and the ERead call are not yet implemented.

The installer has some rough edges (no hardware detection or driver version detection on the SE), but functions as a way to get drivers onto a system.

The SE/30 board's Declaration ROM must be programmed before the card can be recognized. This can be done in-system using the programROM application provided on the installer disk, but right now this is a very ugly and user-unfriendly console application, and really should be turned into a proper GUI app.

Testing has been done on my unmodified SE and SE/30 under Systems 6.0.8, 7.1, and 7.5.5.

A driver for A/UX 2 and 3 can be found at https://github.com/rhalkyard/SEthernet-AUX.

Project files

Schematics: SEthernet - SEthernet/30 - Breakout Board

Glue Logic: SEthernet - SEthernet/30

SEthernet30 Declaration ROM

Driver

Required tools

Schematics, board layout and BOM

KiCad 7

Programmable Logic

WinCUPL and ATMISP (see pld/README.md for notes on WinCUPL)

Declaration ROM, driver and software

Installer

License

The hardware components of this project (board designs and programmable logic) are licensed under the Strongly-Reciprocal CERN Open Hardware License, version 2.

The software components of this project are licensed under the GNU General Public License v3.0.

While my choice to make this project open-source is very much a deliberate one, I have a few further requests, on the basis of "I can't and won't enforce these, but I'd appreciate if you respected them." It's unfortunate that I have to mention this, but given how a few recent projects in the retro-hardware community have splintered, I feel that it's necessary to say:

  • Please don't sell cards commercially/for profit without checking with me first. I have plans for a sales and manufacturing partnership that will sell boards affordably, with full support. I don't mind if you order a batch of boards for yourself and sell the extras on a break-even basis, but please make it clear that these are not 'official' SEthernet products.

  • Please contribute back, rather than simply forking the project. I strongly encourage people to modify the design, adapt it to other systems, integrate it into other devices. But unless what you're working on is a radical departure from the basic SEthernet design, I'd much rather see a unified, collaborative effort that is supported by a single software stack, rather than having it be fragmented.

If you have any questions, feel free to reach out to me, I don't bite!

Useful reference material

Footnotes

  1. [Arrested Development narrator voice]: It was, in fact, quite hard ↩

Parts

50
QtyValueFootprintReferences
81uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C6, C8, C11, C15, C18, C19, C21
50.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C7, C13, C14, C22
449.9Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R4, R5, R7
3100KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R10, R11
20.01uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5, C16
210uFCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC10, C23
218pFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4
26.8nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC9, C12
275Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8, R9
2MountingHoleMountingHole:MountingHole_5mmH1, H2
2SolderJumper_2_OpenConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1, JP2
2TestPointTestPoint:TestPoint_Pad_D1.0mmTP2, TP6
11000pF 2KVCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC20
110R 1/12WResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6
112.4KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
125MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSolderingY1
1ATF1502AS-xAx44Package_QFP:TQFP-44_10x10mm_P0.8mmU4
1Conn_01x07Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ3
1Conn_02x05_Odd_EvenConnector_IDC:IDC-Header_2x04_P2.54mm_HorizontalJ2
1ENC624J600-PTPackage_QFP:TQFP-64_10x10mm_P0.5mmU2
1FerriteBeadInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderFB1
1LD1117S33TR_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U5
1Mac SE/30 PDS InterfacePDS-Ethernet:DIN41612_C_3x40_Male_Horizontal_THTJ1
1Mac SE/30 PDS InterfacePDS-Ethernet:DIN41612_C_3x40_Female_Horizontal_THTJ4
1PT61017PELTransformer_SMD:Transformer_Ethernet_Bourns_PT61017PELTR1
1SST39SF010Package_SO:TSOP-I-32_12.4x8mm_P0.5mmU1

Questions

How big is the Se30 PCB?

It measures 116.8 × 121.8 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Se30 use?

50 parts, built around the PT61017PEL. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Se30 KiCad files?

From the rhalkyard/SEthernet repository on GitHub, at the commit this page was made from: the board is boards/se30/se30.kicad_pcb and its schematic boards/breakout/breakout.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Se30 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from rhalkyard/SEthernet

2
  • 4 layers90 × 99 mmSEthernet, the printed circuit board in 3D

    SEthernet

    rhalkyard/SEthernet

    Modern, low-cost 10/100 Ethernet for the Macintosh SE and SE/30

    41 parts167GPL-3.0
  • 2 layers111.8 × 56 mmBreakout, the printed circuit board in 3D

    Breakout

    rhalkyard/SEthernet

    Modern, low-cost 10/100 Ethernet for the Macintosh SE and SE/30

    12 parts167GPL-3.0

Similar boards

  • 2 layers44.5 × 44.5 mmSwitchBlox, the printed circuit board in 3D

    SwitchBlox

    msadowski/SwitchBlox

    Compact and robust 10/100MB 5 Port Ethernet Switch

    86 parts30
  • 2 layers191.5 × 100 mmHyperNet-2-MainBoard, the printed circuit board in 3D

    HyperNet-2-MainBoard

    TheStaticTurtle/HyperNet

    HyperNet is an 8-in, 8-out open-source audio stagebox based on Ultranet

    232 parts6MIT
  • 4 layers83 × 106 mmAsynthosc, the printed circuit board in 3D

    Asynthosc

    everedero/asynth2osc

    Modular analog synth to OpenOSC bridge

    268 parts4GPL-3.0
  • 2 layers95 × 85 mmNUC980, the printed circuit board in 3D

    NUC980

    TreeNewbeer/Coonix

    Coonix is a funny project about building a application platform in Allwinner-v3s processor.

    172 parts4
  • 6 layers120 × 48 mmSethernet30 Combo, the printed circuit board in 3D

    Sethernet30 Combo

    ZigZagJoe/SEthernet-Combo

    derivative PCB of rhalkyard/SEthernet for use in soldering directly to other PDS cards.

    53 parts4
  • 2 layers60.3 × 52.7 mmChassis, the printed circuit board in 3D

    Chassis

    crawford/PoE

    A base platform for PoE peripherals

    108 parts3GPL-3.0
  • 2 layers18.3 × 43.7 mmHp il, the printed circuit board in 3D

    Hp il

    gIzFer/hpil

    HP-IL to serial/usb translator/bridge

    26 parts1AGPL-3.0
  • 2 layers60 × 46 mmModule, the printed circuit board in 3D

    Module

    vd-rd/hw_cape_poe

    Hardware module for 802.3 PD power

    51 parts1