Mega‑CAN — OA·Tech
OA·Tech Work 02 · Mega‑CAN

2025–present · UMass Robotics · Board design / Firmware

Mega‑CAN
Gig‑E ↔ CAN

The gateway at the center of the quadruped. Gigabit Ethernet carries a firehose from the Jetson; CAN carries short, hard-deadline frames to the actuators. I co‑designed the 6‑layer board and now own its Zephyr firmware, its integration into the robot, and its move to CAN 2.0B.

ControllerPIC32CZ (U23)
UplinkKSZ9031 PHY · RJ45
Bus6 × CAN 2.0B
Stack‑up6‑layer · JLC 3313
Impedance90 / 100 / 120 Ω
Rails5V / 3V3 / 1V8
Bodies243
Fabricated · bring‑up in progress
Fig. GE‑03 · The board, turned and taken apartScroll
I — TiltII — Turn 360°III — Separate
Loading geometry
A — Top side
Six CAN headers along the top edge, the RJ45 magjack, two USB‑C ports and the U23 controller.
B — Inner layers
Where the differential pairs live: 90 Ω USB, 100 Ω Ethernet, 120 Ω CAN, length‑matched between the PHY and the MCU. Impedance control is the reason gigabit works at all here.
C — Bottom side
U9 and the boxed regulator islands — 1V8 and 3V3 drawn as their own fenced blocks on the silkscreen.
D — Stack‑up
Two populated faces around a quiet core. Every part on this drawing is a part that exists.

Why a bridge at all

The robotics stack wants one cable to the compute box and a deterministic bus out to the actuators. Gigabit Ethernet gives bandwidth and no timing guarantees; CAN gives timing guarantees and almost no bandwidth. The board sits between them and decides what deserves to cross.

Where the documentation runs out

Zephyr has no Ethernet driver for this microcontroller, so I ported Microchip’s GMAC driver to the PIC32CZ and wrote the bring‑up apps: a PHY probe first, then ping and UDP echo. Frame boundaries, priority, what to drop when the firehose outruns the bus — those are decisions, not defaults, and this project is a record of making them.

Preparing the geometry
Fig. GE‑04 · InspectDrag to orbit

Inspect

Take it apart yourself

The same export as the study above, but yours to turn. Drag to orbit, pull the slider, snap to a standard view.

GeometryGIGE.glb
BodiesLoading
SourceSTEP → glTF

Every designator is its own body, so separation lifts each component off the board along its own axis. The board itself is the fixed datum.

Mega-CAN board, top side
Fig. GE‑01 · TopHeaders, magjack, U23
Mega-CAN board, bottom side
Fig. GE‑02 · BottomU9, regulator islands
A gateway is only as good as the robot around it. Here is where it sits. UMass Robotics →