Skip to content

vygr/Go-PCB

Repository files navigation

Go-PCB
======

Go PCB router and solver.

Example command lines would be:

go run pcb.go --v 1 netlist.pcb | go run view.go --o 1 --s 7
go run dsn2pcb.go test1.dsn | go run pcb.go --v 1 --z 8 --q 10 --r 2 | go run view.go

You can drop the output to a file and view it as an animation with:

go run pcb.go --v 1 netlist.pcb 1 > anim
go run view.go anim

-h or --help for help on either app.

Format of .pcb input file or stdin is:

[width, height, depth]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]

You can stop a netlist early by just putting:

[]

For example:

[width, height, depth]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
[]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]

Format of the viewer input is similar but has the track paths appended and the gaps removed:

[width, height, depth]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...], [(x, y, z), ...]]

About

Go PCB autorouter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages