1ae49dc1bb
- Update PCB to 8HP format (40x100mm) with v2 component placement - Add automated routing scripts (autoroute.py runs full pipeline headlessly) - Update panel spec and SVG for 8HP dimensions - Board routes in <1 second with 0 unconnected pads Scripts: - autoroute.py: Full CLI pipeline (place → export → route → import → DRC) - autoroute_full.py: Same pipeline for KiCad scripting console - place_8hp.py: Component placement only - route.sh/freeroute.sh: Routing helpers
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Freerouting automation script
|
|
# Usage: ./scripts/freeroute.sh
|
|
#
|
|
# Prerequisites: Export DSN from KiCad first (File → Export → Specctra DSN)
|
|
|
|
set -e
|
|
cd "$(dirname "$0")/.."
|
|
|
|
DSN_FILE="SN-L00.dsn"
|
|
SES_FILE="SN-L00.ses"
|
|
FREEROUTING_JAR="/tmp/freerouting.jar"
|
|
FREEROUTING_URL="https://github.com/freerouting/freerouting/releases/download/v2.0.1/freerouting-2.0.1.jar"
|
|
|
|
echo "=================================="
|
|
echo "SN-L00 Freerouting Automation"
|
|
echo "=================================="
|
|
|
|
# Check DSN exists
|
|
if [ ! -f "$DSN_FILE" ]; then
|
|
echo "ERROR: $DSN_FILE not found"
|
|
echo "Export from KiCad: File → Export → Specctra DSN"
|
|
exit 1
|
|
fi
|
|
|
|
# Download Freerouting if needed
|
|
if [ ! -f "$FREEROUTING_JAR" ]; then
|
|
echo "Downloading Freerouting..."
|
|
curl -L -o "$FREEROUTING_JAR" "$FREEROUTING_URL"
|
|
fi
|
|
|
|
# Run Freerouting
|
|
echo "Running Freerouting..."
|
|
java -jar "$FREEROUTING_JAR" \
|
|
-de "$DSN_FILE" \
|
|
-do "$SES_FILE" \
|
|
-mp 200 \
|
|
-mt 1 \
|
|
-oit
|
|
|
|
echo ""
|
|
echo "=================================="
|
|
echo "DONE! Import in KiCad:"
|
|
echo " File → Import → Specctra Session"
|
|
echo " Select: $SES_FILE"
|
|
echo "=================================="
|