``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.