spinner-wiring-list
¶
Textually enumerates every connection required in a machine.
$ spinner-wiring-list -h
usage: spinner-wiring-list [-h]
[--sort-by {installation-order,board,wire-length}]
[--version] (--num-boards N | --triads W H)
[--transformation {shear,slice}]
[--uncrinkle-direction {columns,rows}]
[--folds X Y] [--board-dimensions W H D]
[--board-wire-offset-south-west X Y Z]
[--board-wire-offset-north-east X Y Z]
[--board-wire-offset-east X Y Z]
[--board-wire-offset-west X Y Z]
[--board-wire-offset-north X Y Z]
[--board-wire-offset-south X Y Z]
[--inter-board-spacing S]
[--boards-per-frame BOARDS_PER_FRAME]
[--frame-dimensions W H D]
[--frame-board-offset X Y Z]
[--inter-frame-spacing S]
[--frames-per-cabinet FRAMES_PER_CABINET]
[--cabinet-dimensions W H D]
[--cabinet-frame-offset X Y Z]
[--inter-cabinet-spacing S] [--num-cabinets N]
[--num-frames N] [--wire-length L [L ...]]
[--minimum-slack H]
Textually enumerate every connection required in a machine.
optional arguments:
-h, --help show this help message and exit
--sort-by {installation-order,board,wire-length}, -s {installation-order,board,wire-length}
Specifies the order the connections should be listed
in the file: installation-order sorts in the most
sensible order for installation, board lists wires on
a board-by-board basis, wire-length lists in order of
wire length.
--version, -V show program's version number and exit
machine topology dimensions:
--num-boards N, -n N build the 'squarest' system with this many boards
--triads W H, -t W H build a system with the specified number of triads of
boards in each dimension (yielding 3*W*H boards)
topology folding options:
--transformation {shear,slice}, -T {shear,slice}
the transformation function to use from hexagonal
torus to rectangular Cartesian grid (selected
automatically if omitted)
--uncrinkle-direction {columns,rows}
direction in which to uncrinkle the hexagonal mesh to
form a regular grid (default: rows)
--folds X Y, -F X Y the number of pieces to fold into in each dimension
(default: (2, 2)) ignored if --transformation is not
given
board physical dimensions:
--board-dimensions W H D
physical board dimensions in meters (default: (0.014,
0.233, 0.24))
--board-wire-offset-south-west X Y Z
physical offset of the south-west connector from board
left-top-front corner in meters (default: (0.008,
0.013, 0.0))
--board-wire-offset-north-east X Y Z
physical offset of the north-east connector from board
left-top-front corner in meters (default: (0.008,
0.031, 0.0))
--board-wire-offset-east X Y Z
physical offset of the east connector from board left-
top-front corner in meters (default: (0.008, 0.049,
0.0))
--board-wire-offset-west X Y Z
physical offset of the west connector from board left-
top-front corner in meters (default: (0.008, 0.067,
0.0))
--board-wire-offset-north X Y Z
physical offset of the north connector from board
left-top-front corner in meters (default: (0.008,
0.085, 0.0))
--board-wire-offset-south X Y Z
physical offset of the south connector from board
left-top-front corner in meters (default: (0.008,
0.103, 0.0))
--inter-board-spacing S
physical spacing between each board in a frame in
meters (default: 0.00124)
frame physical dimensions:
--boards-per-frame BOARDS_PER_FRAME
number of boards per frame (default: 24)
--frame-dimensions W H D
frame physical dimensions in meters (default: (0.43,
0.266, 0.25))
--frame-board-offset X Y Z
physical offset of the left-top-front corner of the
left-most board from the left-top-front corner of a
frame in meters (default: (0.06, 0.017, 0.0))
--inter-frame-spacing S
physical spacing between frames in a cabinet in meters
(default: 0.133)
cabinet physical dimensions:
--frames-per-cabinet FRAMES_PER_CABINET
number of frames per cabinet (default: 5)
--cabinet-dimensions W H D
cabinet physical dimensions in meters (default: (0.6,
2.0, 0.25))
--cabinet-frame-offset X Y Z
physical offset of the left-top-front corner of the
top frame from the left-top-front corner of a cabinet
in meters (default: (0.085, 0.047, 0.0))
--inter-cabinet-spacing S
physical spacing between each cabinet in meters
(default: 0.0)
--num-cabinets N, -c N
specify how many cabinets to spread the system over
(default: the minimum possible)
--num-frames N, -f N when only one cabinet is required, specifies how many
frames within that cabinet the system should be spread
across (default: the minimum possible)
available wire lengths:
--wire-length L [L ...], -l L [L ...]
specify one or more available wire lengths in meters
--minimum-slack H the minimum slack to allow in a wire connecting two
boards in meters
Enumerating required wires¶
To get a list of all connections required when assembling a given machine
simply run spinner-wiring-list
specifying a number of boards and available
wire lengths:
$ spinner-wiring-list -n 24 -l 0.15 0.3 0.5
C F B Socket C F B Socket Length
-- -- -- ---------- -- -- -- ---------- ------
0 0 0 east 0 0 5 west 0.15
0 0 0 north 0 0 4 south 0.15
0 0 0 south west 0 0 7 north east 0.30
0 0 1 east 0 0 4 west 0.15
0 0 1 north 0 0 5 south 0.15
0 0 1 south west 0 0 6 north east 0.15
0 0 2 east 0 0 0 west 0.15
0 0 2 north 0 0 1 south 0.15
[...snip...]
Each connection is listed with its Cabinet, Frame and Board (C, F and B) number and the socket to use. The suggested wire length to use is also given.
By default the list is ordered by board position (top-right to bottom-left) but
this can be changed to either installation-order or ordered by wire length
using the --sort-by
arguments.