Skip to content

Latest commit

 

History

History
40 lines (30 loc) · 1.25 KB

README.md

File metadata and controls

40 lines (30 loc) · 1.25 KB

Routercise

Chit-Chat

2019-06-30

I want to make a system for learning routing in PCB designs. The idea is present incrementally harder routing scenarios and then see if you can devise a solution.

Considering that we have:

  • "Layers" (independent layers for routing)
  • "Vias" (inter-layer conductive connections)
  • "Pads" (interconnection points)
  • "Parts" (groups of pads)
  • "Nets" (lists of electrically connected pads)
  • "Wires" or "Traces" (conductive traces added to satisfy the nets)

There are some real-world constraints that are part of this, which can be introduced selectively:

  • Interconnection of nets. Probably uniformly disallowed. No touching traces or pads for other nets.
  • Movement of parts. This includes rotation and translation. Some parts cannot be moved due to mechanical limitations.
  • Number of layers.
  • Trace width.
  • Trace / space constraints.
  • Number of vias.
  • Annular ring size.
  • Drill size.
  • Keepouts.
  • Board shape / drills / cutouts.
  • Pad / trace proximity to board edge / drills / cutouts.

A first set of user operations might be:

  • Draw a wire from here to here
  • Remove this wire
  • Translate this part
  • Rotate this part
  • Undo stack

Units are numbers in mm. Because JavaScript and none of your business how numbers work.