I am using KiCadRoutingTools on a dense 4-layer ESP32 board and encountered a routing failure due to a current limitation with multi-point nets.
When attempting to route an I2C bus (/I2C_SDA) that connects 5 pads, the router was unable to complete the path. Because the net connects more than 2 points, the plugin disabled layer swapping (vias) for this net, forcing it to try and find a continuous 61mm path entirely on a single layer, which failed after 410,000 iterations.
Relevant Log Snippet:
Using 2 routing layers: ['F.Cu', 'B.Cu']
WARNING: Skipping layer swaps for 1 multi-point net(s) (not yet supported)
- /I2C_SDA
...
[1/1] Routing /I2C_SDA (id=25)
Detected multi-point net with 5 pads (Phase 1: main route only)
Multi-point net Phase 1: routing longest MST edge (pads 1 and 4, length=61.36mm)
No route found after 200000 iterations (forward), trying backward...
Failed to route farthest pair after 410000 iterations
FAILED: Could not find route (0.22s)
Feature Request:
It would be incredibly helpful to have layer swapping (via placement) supported for multi-point nets in a future release. Currently, this limitation requires users to manually route all buses (I2C, SPI, etc.) that connect to more than two components on dense boards.
Thank you for your work on this tool!
I am using KiCadRoutingTools on a dense 4-layer ESP32 board and encountered a routing failure due to a current limitation with multi-point nets.
When attempting to route an I2C bus (/I2C_SDA) that connects 5 pads, the router was unable to complete the path. Because the net connects more than 2 points, the plugin disabled layer swapping (vias) for this net, forcing it to try and find a continuous 61mm path entirely on a single layer, which failed after 410,000 iterations.
Relevant Log Snippet:
Using 2 routing layers: ['F.Cu', 'B.Cu']
WARNING: Skipping layer swaps for 1 multi-point net(s) (not yet supported)
...
[1/1] Routing /I2C_SDA (id=25)
Detected multi-point net with 5 pads (Phase 1: main route only)
Multi-point net Phase 1: routing longest MST edge (pads 1 and 4, length=61.36mm)
No route found after 200000 iterations (forward), trying backward...
Failed to route farthest pair after 410000 iterations
FAILED: Could not find route (0.22s)
Feature Request:
It would be incredibly helpful to have layer swapping (via placement) supported for multi-point nets in a future release. Currently, this limitation requires users to manually route all buses (I2C, SPI, etc.) that connect to more than two components on dense boards.
Thank you for your work on this tool!