Start here
Cable Tool is a deterministic patch-lead length calculator with a full floor plan editor, rack builder, BOM generator, and patching assigner built in. This page covers every part of the current build.
What the tool does
Models a physical route between two endpoints using cabinet spacing, tray height/routing, and port positions — then outputs a realistic cable length for scheduling.
Major modules
- Patch Panel → Switch (WPT workflow)
- Device → Switch (DC / DCIM workflow)
- Floor Plan editor with tray drawing
- BOM & Materials generator
- Rack Builder
- Patching Assigner with VLAN support
Choose your workflow
Two calculator pages share the same layout engine but differ in their source endpoint.
| Calculator | When to use | Endpoints |
|---|---|---|
| Patch Panel → Switch (WPT) | Traditional structured cabling — patch panels to switches, bulk schedules. | Patch panel port → switch port |
| Device → Switch (DC) | Server / appliance connectivity — device NIC or port to a switch. | Device port → switch port |
| Bulk + Assigner | Large schedules, systematic port-to-port patterns, import from spreadsheets. | Ranges of either endpoint type |
| Floor Plan | Visually position cabinets, draw cable trays, derive accurate cross-cabinet gaps. | Physical layout → drives calculator |
Quickstart
If you only read one section, read this.
1) Set cabinet layout
- Set Rack Height (U) and Number Of Cabinets.
- Set per-cabinet Gap (cm) — or use the Floor Plan to derive gaps automatically.
- Confirm cabinet names match your naming scheme.
2) Configure switches
- Pick Independent or Chassis (blades).
- Set port counts / blades and start U.
- Enable Switch ports start at 0 if your design uses 0-based labels.
3) Patch and export
- Manual for one-offs; Bulk for schedules.
- Patching Assigner for systematic port-to-port patterns.
- Export cable list / schedule; export JSON to version the config.
Core concepts
Endpoints
- Patch panel port — WPT workflow source
- Device port — DC/DCIM workflow source
- Switch port — destination on both workflows
Route composition
- Vertical — U-position travel inside a cabinet
- Horizontal — port offset / entry-side offset
- Cross-cabinet — cabinet gap × number of cabinets crossed
- Tray travel — up to tray height + along tray + back down
- Slack — global extra and per-route additions
Cabinet layout
Shared by all calculators, the Floor Plan, and the Rack Builder.
| Setting | What it controls |
|---|---|
| Rack Height (U) | Default height of newly created cabinets. Individual cabinets can override this in the cabinet table. |
| Number Of Cabinets | Creates (or removes) cabinets from the cabinet table. Increasing this also expands cabinet selectors throughout the UI. |
| Cabinet Name | Each cabinet has an editable name. Used in output schedules and must match Bulk input names exactly. |
| Gap (cm) | Centre-to-centre distance to the next cabinet in the sequence. The last cabinet always shows 0. Populated automatically when you Apply Floor Plan layout. |
| Length Units | Global toggle between cm and inches. Affects all display values including Floor Plan labels. |
| Extra Slack | Additional length added on top of route slack — applied to all outputs globally. |
Trays
Trays are named overhead routes. Add them in the Trays section and they appear as options in "Routing Path" selectors. When using the Floor Plan, tray lengths are measured geometrically and written back to the tray list automatically.
- Each tray has a Name and a Length (derived from the floorplan or entered manually).
- Pick a tray per-run in Manual, per-batch in Bulk, or globally in the Assigner.
- Tray height (floor to tray) is set in Floor Plan settings and drives the "up and back down" component of tray routes.
Switch configuration
Switch config drives port grid creation and validation everywhere in the tool.
Independent switches
Add one or more standalone switches. Each has its own name, port count, start U, and cabinet assignment. Best for fixed 24/48/64-port switches.
- Set Number of Independent Switches
- Name each switch — names appear in Bulk and Assigner selectors
- Set Ports per Switch and Start U
Chassis (blades)
A single chassis chassis containing multiple blades. Blade numbering and port-per-blade direction is controlled in Assigner settings.
- Set Number of Switch Blades and Ports Per Blade
- Assign the chassis to a cabinet and set Start U
- Multiple chassis switches are supported across cabinets
Rack Builder NEW
A physical device inventory for each cabinet. The Rack Builder is the source of truth for what is physically installed — switches, patch panels, cable managers, blanks, and custom devices.
Adding items
For each cabinet, use the Rack Builder to add items at their correct U positions. Each item has:
- Type — switch, patch panel, cable manager, blank, device, or custom
- Start U — the U position it occupies (from top)
- Height (U) — how many rack units it takes up
- Template / preset — select from built-in presets (e.g. 24-port 1U patch panel, 48-port 1U switch) or define custom
- Instance name — the label used in output schedules
- Port count / zeroBased — for switch and patch panel items
Device presets
The tool ships with presets under assets/presets/devices/. These include common 1U patch panels and switches (24-port, GPU servers, etc.). Custom presets can be added to the same folder and become available via the template picker.
Device library
Define reusable device templates for the Device → Switch (DC) workflow. This is separate from the Rack Builder — it's a template catalogue rather than a physical placement.
Template fields
- Template name — used in the DC page source selector
- Total ports — port count used for the port grid
- Device height (U) — used for vertical geometry
Best practice
- Match template names to your BOM line items
- Keep port counts accurate — they gate the port selectors
- Export project JSON before editing large template sets
Project / Config
Name the configuration, manage quick saves, and export/import JSON snapshots.
- Config Name — used in export file names and displayed in the header.
- Quick Saves — store and recall up to several named configurations in the browser. Use before changing counts (cabinets, blades, ports) to avoid losing in-progress work.
- Export JSON — full state snapshot for versioning or sharing with a colleague.
- Import JSON — load a previously exported configuration. Also accessible via the file input at the top of the project panel.
Assumptions & constants
Applied globally to all route calculations. Change these to standardise across a project — not per-job.
| Key | Meaning | Typical impact |
|---|---|---|
| U_CM | Rack unit height (cm per U) | Vertical travel |
| PORT_CM | Port pitch (cm per port column) | Horizontal travel |
| CROSS | Fixed add (cm) when crossing cabinet boundary | Cross-cabinet travel |
| MAX_PP | Default patch panel size (24/48) | Port grid + validation |
| SW_ZERO_BASED | Display switch ports 0..N-1 instead of 1..N | Numbering display only |
| ROUTE_TRAY_SLACK_CM | Extra slack for tray routes (bends, corners) | Tray route totals |
| DEFAULT_GAP_CM | Default gap between cabinets when creating new ones | Cross-cabinet spacing |
Manual Input
Interactive mode for one-offs, spot-checks, and visual route validation.
Connection parameters
| Field | WPT page | DC page |
|---|---|---|
| Source | Patch Panel Cabinet / U / Port | Device template + port label |
| Destination | Switch Name / Entry Side / Blade (if chassis) / Port | |
| Routing | Internal or Via Tray + tray selector | |
Entry-side selector
The switch has a configurable entry side (left / right / centre). This adds an offset to horizontal travel. Pick the side that matches how the switch is physically cabled in your design.
Port selection grids
Clickable grids eliminate manual port entry and drive the visual route instantly.
Patch panel / device ports
On the WPT page: patch panel ports, sized by MAX_PP or the device preset. On the DC page: device ports, sized by the selected template. Clicking a port updates the "From" field.
Switch ports
Generated from switch configuration — one grid per independent switch or blade. Shows 0-based labels when SW_ZERO_BASED is on. Clicking a port updates the switch port field and triggers a recalculate.
Visual route
A live SVG diagram of the calculated cable path. Use it to sense-check routing and explain results to others.
- Immediately updates when any input changes.
- Displays route type (internal vs tray), cabinet crossing points, and the component lengths.
- Catches wrong cabinet selections quickly — the visual makes cross-cabinet routing obvious.
- In the Floor Plan, the last-calculated route is also overlaid on the canvas in colour (green = floor plan route, amber = tray, cyan = centre).
Bulk Input
Paste many runs at once — ideal for schedule generation and importing from spreadsheets.
Bulk workflow
- Select Input Format (see formats below).
- Paste rows into the bulk input textarea.
- Set Routing Path (bulk) and tray (if used).
- Click Generate and review any validation warnings.
- Copy or export the cable list.
Input formats
| Format | Column structure | Use when |
|---|---|---|
| Simple | CabName, U, Port, SwitchName, Port | Independent switches, one connection per row |
| Chassis style | CabName, U, Port, SwitchName, Blade, Port | Chassis switches with blade column |
| DCIM / device style | Device name + port → switch + port | DC page bulk operations |
Excel / patching schedule import NEW
The Excel Import feature in the Assigner section allows you to upload an XLSX file containing an existing switch port map (e.g. an occupied-port schedule from a live site). The importer:
- Reads switch blocks and a legend from the XLSX.
- Identifies occupied ports per switch and blade.
- Computes free ports per VLAN/service and populates the Switch Port Map in the Assigner automatically.
- Shows a summary of imported results and any warnings.
To use: go to the Patching Assigner tab → scroll to the Excel Import section → upload your XLSX → click Import. Review the results table, then use the populated port ranges in the Switch Port Map.
Bulk add-ons (extra calculators)
The Bulk section includes routing-toggle helpers for specific connection types:
| Toggle | Purpose |
|---|---|
| MGMT | Management cabling route mode |
| CONS | Console cabling route mode |
| PDU | Power distribution unit cabling |
| AEC | Active Ethernet copper |
| SM / MM | Single-mode / multi-mode fibre routing |
A rack-count input drives derived cable count tables — useful for modelling a hall before the full assigner is populated.
Patching Assigner
Fast range-to-range assignment with patterns. Use when the schedule is systematic.
Patterns & directions
Port assignment direction
- Low to high — ports assigned ascending (1, 2, 3…)
- High to low — ports assigned descending
Port assignment pattern / mode
- 1:1 (sequential) — port 1 → port 1, port 2 → port 2, etc.
- Center-out — assigns from the physical centre of the switch outward to both sides simultaneously
- Outside-in — assigns from both edges inward; the switch is split at midpoint into left and right halves, each filled toward centre
- Offset — applies a fixed numeric offset to destination ports
- Split — splits source across multiple switches or blades
Chassis-specific rules
Blade number direction
Controls the order blades are filled. Low to high fills blade 1 first; High to low fills the highest blade first.
Port assignment per blade
For center-out and outside-in patterns, the blade midpoint is the physical switch midpoint (e.g. port 24 on a 48-port blade). Left ports = 1–24; right ports = 25–48.
Distribution mode
Controls how ports are spread across multiple switches when more than one switch is assigned to the assigner:
- Fill first — exhausts ports on the first switch before moving to the next
- Round-robin — distributes one port at a time across all configured switches
VLAN port maps NEW
The Patching Assigner supports per-VLAN port allocation. Each switch or blade entry can have a VLAN map — a set of VLANs, each with an explicit port range. The assigner then:
- Builds a VLAN queue per switch/blade: an ordered sequence of {switchName, blade, port} tuples.
- For outside-in mode, splits each VLAN range into left and right halves at the switch midpoint, building separate queues for each side.
- Processes source ports in order, pulling from the VLAN queue that matches the connection's VLAN tag.
Port ranges follow compact notation: 1-4,6,8-10 = ports 1,2,3,4,6,8,9,10.
The Excel Import feature populates these VLAN port ranges automatically from an existing patching schedule.
Floor Plan FLOOR PLAN
An interactive canvas for physically laying out cabinets, drawing cable trays, importing a building plan as a PDF overlay, and deriving accurate cabinet gap distances for the calculator.
Tools & modes FLOOR PLAN
Select tools from the toolbar at the top of the Floor Plan panel:
| Tool | What it does |
|---|---|
| Pan | Click and drag to pan the canvas. Also activated by holding Space. |
| Place Cabinet | Click on the canvas to place a cabinet at that position. Cabinets snap to a configurable grid. |
| Draw Tray | Click to place tray waypoints; double-click or close the loop to finish. Each click creates a polyline segment. Trays snap to cabinet connection points. |
| Connect | Draw a connection between a cabinet and a tray segment (attaches a "drop line" for vertical runs). |
| Measure | Click two points on the canvas to measure the real-world distance between them (uses current scale calibration). |
| Select / Move | Click to select cabinets or trays; drag to reposition. Cabinet names and gap handles update live. |
| Scale Calibrate | Click two known points, then enter the real-world distance to set the scale. Required for accurate measurements when importing a PDF background. |
Zoom & pan
- Scroll wheel to zoom in/out (centred on cursor).
- Click + drag in Pan mode, or hold Space and drag in any mode.
- The grid scales automatically with zoom level.
Placing & configuring cabinets FLOOR PLAN
Cabinets placed in the Floor Plan are linked to the cabinet list in the main configurator by name. The workflow is:
- Ensure the main configurator has the correct number of cabinets defined (and named).
- Switch to Place Cabinet tool and click positions on the canvas. Cabinets appear as labelled rectangles (23.75″ wide, 60 cm deep at default scale).
- Drag cabinets to fine-tune positions. Gap handles appear between adjacent cabinets — drag them to adjust spacing in 5 cm increments.
- Click a cabinet to see its config (name, U height, assigned rack config).
Row detection
The Floor Plan groups cabinets into rows automatically using a Y-position threshold (~0.8 m). Cabinets within 0.8 m of each other vertically are considered the same row, sorted left-to-right within each row. This drives the linear ordering used when syncing gaps back to the calculator.
Gap handles & spacing mode
In Spacing Mode, interactive handles appear between adjacent cabinets. Drag a handle horizontally (or vertically for same-column gaps) to adjust the centre-to-centre gap. The gap label updates in real time. Snap resolution is 5 cm.
Reference walls
A left reference wall (vertical line) and top reference wall (horizontal line) can be placed to measure cabinet-to-wall distances. Gap handles also appear between the wall and the first cabinet in each row/column.
Drawing cable trays FLOOR PLAN
Cable trays are drawn as polylines at a configurable height above the floor (the tray height setting). Each tray segment is labelled with its total length.
- Select Draw Tray tool.
- Click to place waypoints along the tray route. You'll see a preview line tracking the cursor.
- Hover near an existing tray endpoint to snap to it (junction dots indicate connection).
- Double-click or click a snapped close-point to finish the tray. The tray is named automatically and its length is calculated from the polyline.
Tray colours
Each tray path has a configurable colour (defaults to purple). Hidden trays render grey and non-interactive — useful when you need to draw a new tray on top of existing ones. Toggle Hide Trays in settings to enter overlay drawing mode.
Tray height & slack
- Tray height from floor (m) — the physical height of the cable tray. Adds a "rise + return" component to every tray-routed cable.
- Tray slack (cm) — additional allowance for bends, corners, and dressing. Added to tray-routed cable lengths on top of route slack.
Drop lines (cabinet-to-tray connections)
Use the Connect tool to draw a connection from a cabinet attachment point to a tray. This models the vertical drop from tray height down to the cabinet. Drop lines are shown as dashed lines on the canvas.
Scale calibration FLOOR PLAN
Before measurements mean anything, you need to calibrate the scale — especially important when working with a PDF background overlay.
- Select Scale Calibrate tool (or click the calibrate button in settings).
- Click the first known point on the canvas (e.g. one end of a scale bar on your floor plan).
- Click the second known point.
- Enter the real-world distance between those points in the prompt.
- The tool calculates pixelsPerMetre and applies it globally.
The grid display updates to reflect the new scale — each cell shows its real-world size (metres or inches, matching the global unit setting).
PDF background overlay FLOOR PLAN NEW
Import a building floor plan, CAD export, or architect's drawing as a PDF and overlay it on the canvas to trace cabinet positions and tray routes accurately.
Importing a PDF
- In the Floor Plan settings panel, click Choose PDF / Image file.
- Select a PDF or image file from your computer. The file is rendered using PDF.js (up to 2048 px on the longest dimension).
- The overlay appears on the canvas. Use the controls to adjust its position, scale, rotation, and opacity.
Overlay controls
| Control | Function |
|---|---|
| Scale slider | Resize the PDF overlay relative to its base size. Combine with calibration to get an accurate fit. |
| Rotation slider | Rotate the overlay in degrees. Useful when a scanned plan isn't perfectly aligned. |
| Opacity slider | 0–1 opacity control. Reduce opacity so the overlay doesn't obscure your cabinet placements. |
| Edit Mode toggle | When on, the overlay becomes draggable (blue border). Drag to reposition it on the canvas. |
| Visibility toggle | Show or hide the overlay without unloading it. |
Workflow: trace from a floor plan
- Import the PDF and set opacity to ~0.45.
- Use Scale Calibrate against a known dimension on the plan (scale bar, grid, room dimension).
- Resize and position the PDF overlay to match. Enable Edit Mode and drag the overlay to align it.
- Switch to Place Cabinet and click to position cabinets on top of the floor plan room/hall markers.
- Draw trays along the cable tray routes shown on the plan.
- Apply the layout back to the project.
Syncing floor plan to project FLOOR PLAN
The Floor Plan and the main calculator are linked. Sync happens in two directions:
Main → Floor Plan
When you change cabinet count or names in the configurator, the Floor Plan's cabinet list is updated to match. New cabinets appear at a default position; existing ones retain their placed positions.
Floor Plan → Main (Apply Layout)
Clicking Apply Floor Plan Layout writes cabinet gap distances (derived from their world positions) back to the cabinet table in the main configurator. Trays drawn on the floor plan are also synced back as named tray routes with measured lengths.
Row ordering and gap logic
When applying to the project, cabinets are ordered by their floor plan position (top-to-bottom rows, left-to-right within each row). The gap written for each cabinet is the centre-to-centre distance to the next cabinet in this linear sequence. Cross-row transitions use a configurable row gap.
SU Configurator (Scalable Units) FLOOR PLAN NEW
An SU (Scalable Unit) is a predefined cabinet group that repeats as a unit — for example, a standard 4-cabinet compute row with a fixed rack config. SUs let you deploy a repeating layout across multiple rows without re-configuring each row manually.
Creating an SU template
- In the SU Configurator panel, click New SU Template.
- Name the template and define its slots — each slot is a cabinet with an assigned rack config (from the rack configs list).
- Set the rows this SU applies to. Rows can be specified as a list (A, B, C) or a range (A-F).
Deploying an SU
- Select a template and click Deploy.
- The tool checks which target rows already exist in the floor plan.
- For each target row, cabinets are placed (or matched by name) and assigned the rack config from the corresponding SU slot.
- Existing cabinets in the row are overwritten with the SU layout.
Rack configs
Rack configs (used within SU slots) define a named cabinet configuration — switch type, patch panel layout, cable management — that can be applied to any cabinet in the floor plan. Edit rack configs in the Rack Configs section of the Floor Plan settings.
Power Load Letter NEW
A server room capacity planning tool that models device power consumption per rack, calculates IT and facility loads, and exports a professional PDF load letter for client delivery or M&E design.
Access it via the Calculator dropdown at the top of the tool — select Server Room Load Letter.
Projects
Each engagement is a project. A project stores the client name, site name, racks, and all rack items. You can have multiple projects and switch between them. Projects are saved server-side and persist across sessions.
- New project — creates a blank project with a name you choose
- Export project — downloads the full project as a JSON file for backup or sharing
- Import project — restores a previously exported JSON
- Delete project — removes all racks and items permanently
Device library LOAD LETTER
The device library is a shared catalogue of hardware with known power figures. Each device entry contains:
| Field | Meaning |
|---|---|
| Vendor / Model | Make and model string used when searching and displaying in racks |
| Category | Device type (server, switch, storage, PDU, UPS, etc.) |
| RU Height | Rack units the device occupies — used for RU consumption tracking |
| Typical watts | Expected real-world idle/typical draw |
| Max watts | Peak/nameplate draw — used for worst-case load calculations |
| Confidence / Source | Notes on where the power figures came from and how reliable they are |
Search the device library by vendor or model name. Select a device to add it to a rack — quantity and U position can be set at the time of adding.
Building racks LOAD LETTER
Within a project, add as many racks as the design requires. Each rack is named and holds an ordered list of devices.
- Devices are displayed top-to-bottom matching the physical rack layout (highest U at top).
- Each rack shows its typical kW, max kW, and RU used pulled from the report cache.
- Items can be repositioned by U, have their quantity changed, or be deleted individually.
- The rack view updates totals live as items are added or removed.
Summary & report LOAD LETTER
The summary panel shows the rolled-up power and cooling figures for the entire project across all racks:
| Figure | How it's calculated |
|---|---|
| IT Load (kW / W) | Sum of all device watts ÷ 1000 |
| Facility Load (kW) | IT load × facility multiplier (accounts for UPS, PDU, and distribution losses) |
| Cooling (BTU/hr) | Total watts × 3.412 |
| Cooling (tons) | BTU/hr ÷ 12,000 |
Both Typical and Max figures are shown side by side — typical for operational planning, max for circuit sizing and worst-case design. The rack count is also summarised.
PDF export LOAD LETTER
Clicking Generate PDF produces a formatted A4 load letter suitable for client delivery or inclusion in an M&E design pack. The PDF includes:
- Project name, client name, and site name in the header
- Your company logo (upload via the logo uploader in the tool — stored in browser localStorage)
- A summary table of typical vs max IT load, facility load, cooling (BTU/hr and tons)
- A per-rack breakdown showing device list, RU usage, and typical/max kW per rack
- Date stamp
Logo upload
Upload a company logo via the logo uploader in the Load Letter settings. The logo is stored in browser localStorage and applied to all PDFs generated from that browser. To use a default branding logo server-side, place it in assets/branding/ — the tool will fall back to it if no user logo is uploaded.
BOM / Materials Tool NEW
Generate structured bills of materials for cabling projects across floors and infrastructure types. The BOM tool is separate from the cable-length calculator but shares the same project state.
The BOM tool has four tabs:
Cable Count tab
Tracks cable consumption per floor and infrastructure type. You define:
- Floors — add one per project floor or zone
- Infrastructure types — e.g. Cat6A outlets, Cat6A patch panels, fibre backbone
- Cable count per floor × infra combination — enter outlet counts; cable per outlet is calculated from run assumptions
Total cable quantities are summed at the bottom. Results are ready for export or copy-paste into a procurement sheet.
Materials BOM tab
Generates a full bill of materials per floor and infrastructure type using the brand catalog. For each infrastructure entry, the BOM produces:
- Cabling (cable reel quantities, jack quantities)
- Outlets (surface mount boxes, faceplates — 1/2/4/6 port)
- Patch panels (24/48 port, straight or angled, Cat6 or Cat6A)
- Infrastructure items (cable management, racks, fibre enclosures)
- Power items (UPS, PDU, ATS)
Supported brands
| Brand | Coverage |
|---|---|
| Commscope / Systimax | Full catalog: cable, jacks, outlets, patch panels, fibre |
| Netconnect | Cable, jacks, patch panels (Cat6A and Cat6) |
| Panduit | Cable, jacks, outlets, patch panels |
| Generic | Placeholder entries for unbranded items |
Brand can be set per-infrastructure type. Part numbers and descriptions pull from the catalog automatically. Catalog entries with no part number show as blank (editable in the Catalog tab).
Currency
A currency selector at the top of the BOM tool controls the symbol used in any price columns. Currently supports GBP, USD, EUR.
Patch Leads tab
A dedicated section for modelling patch lead quantities — typically the output of the cable length calculator fed back into a BOM context. Enter quantities per length band (0.5m, 1m, 1.5m, 2m, 3m, 5m) and the tool summarises totals by colour/type for ordering.
Catalog tab
View and edit the full product catalog inline. Each row shows:
- Brand, category, part number, and description
- A quick search link (opens manufacturer/distributor search in a new tab)
- Editable fields — changes apply for the current session and are saved to project JSON on export
The catalog also supports plex variants (simplex / duplex for fibre, single/two-gang for outlets) and cat spec variants (Cat6 vs Cat6A per infrastructure type).
Saving & exporting
| Method | What it saves | Use for |
|---|---|---|
| Quick Saves | Full project state in browser localStorage | Iteration — fast, stays in-browser |
| Export JSON | Full state snapshot as a downloadable .json file | Versioning, sharing, backup before big changes |
| Import JSON | Loads a previously exported JSON file | Restoring a config or loading a colleague's setup |
| Copy table | Cable list / schedule to clipboard | Pasting into Excel, Sheets, or a deliverable doc |
| Export CSV | Cable list as CSV download | Importing into DCIM / cable management systems |
Troubleshooting
Nothing generates / blank output
- Check endpoint exists — port count / blade count must cover the selected port number
- Check switch name in Bulk matches the configured switch exactly (case-sensitive)
- Confirm port numbering mode (0-based vs 1-based) matches your input values
Lengths look wrong
- Confirm cabinet gap (cm) is set correctly — it's the biggest variable
- Confirm route type (internal vs tray)
- Check tray height is set to the physical tray height above the floor
- Reset assumptions to defaults and re-test one connection
Bulk results are inconsistent
- Test with 3 rows before pasting 300
- Standardise cabinet and switch names — one typo breaks an entire block
- Try the other input format (simple vs chassis style)
- Check that all source ports exist within the configured port count
Floor Plan gaps not updating
- Confirm cabinet names in the floor plan match the cabinet table names exactly
- Click Apply Floor Plan Layout — sync is not automatic after dragging
- Check that cabinets are placed (not just listed) — an empty floor plan produces no gap data
PDF overlay not showing
- Check browser IndexedDB is not blocked (private/incognito windows may restrict it)
- Toggle visibility on in the PDF overlay panel
- Re-upload if the file was from a previous session on a different device
Assigner output shorter than expected
- Check that VLAN port ranges cover enough ports for the source count
- Verify blade ranges in chassis entries cover the blades you intend to use
- Check distribution mode — Fill First exhausts one switch before moving; Round-Robin spreads evenly
Excel import returns no results
- Confirm the /api/excel/parse endpoint is reachable (self-hosted Docker deployments may need the API container running)
- The XLSX must contain switch port blocks and a legend — check the expected format matches your file layout
- Try uploading a smaller test file (one switch block) to isolate parsing issues
BOM shows missing part numbers
- Blank part numbers are intentional placeholders — edit them in the Catalog tab
- Part numbers marked N/A indicate the selected brand has no product in that category
- Use the quick search link to find the correct part and update the catalog
FAQ
Do I need to use the Floor Plan?
No — you can enter cabinet gaps manually in the cabinet table and skip the floor plan entirely. The Floor Plan is most useful when you have a building plan to work from, or when cabinets are arranged in multiple rows with varying gaps.
Do I need trays?
No — internal routing works without trays. Trays matter when you want the model to include overhead travel: up to the tray, along the tray run, and back down.
Why is there a "ports start at 0" option?
Some designs label switch ports 0–47 instead of 1–48. The toggle makes the UI labels match your real-world port labels to prevent off-by-one mistakes in output schedules.
Is DC the same as DCIM?
DC refers to the Device → Switch calculator page.
What's the difference between Rack Builder and Device Library?
The Rack Builder is a physical placement registry — it records what is installed at which U position in which cabinet. The Device Library is a template catalogue for the DC page — it defines device types (name, port count, U height) that you select when picking a source device on the Device → Switch calculator.
Can I import an existing patching schedule?
Yes — the Excel Import feature in the Patching Assigner reads an XLSX with switch port maps, identifies occupied ports, and populates free port ranges by VLAN/service into the Switch Port Map. This requires the API container to be running if self-hosting.
Can the tool do full rack placement?
The Rack Builder handles physical device placement at U positions. Full "per-port geometry from rack placement" is the direction this is heading — the Device Library + DC workflow and the Rack Builder lay the groundwork.
How do I self-host?
The repo includes Docker files under docker/. The main app is a static site served via nginx. The BOM and Excel features use an optional API container (Node.js) and a PostgreSQL database — see docker/docker-compose.snippet.yml and bom/api/ for configuration. The bom/db/init/ folder contains schema and seed SQL.
What units does the Floor Plan work in?
Internally all floor plan distances use metres. Cabinet gaps and tray slack are kept in centimetres to match the main calculator state. All UI labels follow the global length unit toggle (cm / inches). When you switch units the Floor Plan re-converts all visible inputs automatically without changing the underlying world values.
Contact
For bugs, feature requests, or questions, reach out to my self directly here .