Skip to content

tscircuit/freerouting

 
 

Repository files navigation

Freerouting

Freerouting

Freerouting is an advanced autorouter for all PCB programs that support the standard Specctra or Electra DSN interface.

Release version Downloads Downloads Downloads License Contributor Covenant


Download installers for Windows, Linux, and macOS here.

Introduction

Freerouting is a powerful PCB autorouter compatible with any PCB design software that supports the standard Specctra or Electra DSN interface. It imports .dsn files generated by the host system's Specctra interface and exports .ses Specctra session files.

Getting started

You can interact with Freerouting using the Graphical User Interface (GUI), the Command Line Interface (CLI), or the Freerouting API. All interfaces support command-line arguments to set input/output files or modify settings.

Integrations are available with:

Click here for more details.

Graphical User Interface (GUI)

  1. Launch Freerouting: Upon launching, you'll see the main interface. image

  2. Open Your Design: Go to File > Open... and select your .dsn input file. image

  3. Start Autorouting: Click the Magic Wand icon to begin the autorouting process. image

  4. Monitor Progress: Watch the routing progress visually in the board editor and numerically in the footer. image

  5. Completion: Wait for the autorouter to finish all passes. This may take from a few minutes to several hours.

  6. Save Your Routed Board: Go to File > Save as... to save your routed board as a .ses file. image

Command Line Interface (CLI)

When using the CLI, you'll work with an input file (e.g., Specctra .dsn) exported from your EDA tool. Freerouting will autoroute unconnected nets and save the results for re-import into your EDA (e.g., as a Specctra .ses file).

Common command-line arguments:

  • -de [design input file]: Load a Specctra design file (.dsn) at startup.
  • -do [design output file]: Save a Specctra session file (.ses) after routing.
  • -l [language]: Set the language (e.g., en for English, de for German).
  • -inc [net class names]: Ignore specified net classes during routing.
  • -help: Display help information.

Example Command:

java -jar freerouting-2.0.0.jar -de MyBoard.dsn -do MyBoard.ses -inc GND,VCC

This command routes MyBoard.dsn, ignores the GND and VCC net classes, and outputs MyBoard.ses.

For more details (including headless mode), see the CLI documentation.

Freerouting API

Freerouting offers public API endpoints for PCB routing. The API root is https://api.freerouting.app/v1. Check the service status at /system/status.

To access full functionality, request access on the Freerouting website.

Please note that the Freerouting API and its documentation are in beta and may change.

Running Freerouting using Java JRE

Installers are available for Windows x64, Linux x64, and macOS. For other systems, you can run the platform-independent .jar file if you have Java JRE installed.

Steps:

  1. Download the JAR File: Get the latest .jar from the Releases page.

  2. Install Java JRE: Download and install Java JRE.

    • Choose your operating system and architecture.
    • Select JRE as the package type.
    • Choose version 21.
  3. Run Freerouting:

    java -jar freerouting-2.0.0.jar

    Note for macOS Users: Launch Freerouting from the Terminal; starting from Finder is not supported.

Contributing

We ❤️ all our contributors; this project wouldn't be possible without you!

🙏 Support the Project

If you'd like to support the project financially, please consider sponsoring me.

Every contribution, no matter how small, is greatly appreciated!

Sponsor

Releases

No releases published

Packages

 
 
 

Languages

  • Java 94.3%
  • HTML 3.7%
  • Python 1.0%
  • Lex 0.6%
  • Shell 0.2%
  • Batchfile 0.1%
  • Other 0.1%