April–May 2024 Development Update

Specctra DSN import, ratsnest generation, egui/eframe GUI, website move and CI.

It has been two months since the Topola PCB router’s website was created. We will continue to post updates with this frequency, as we are obligated by our agreement with NLnet to keep the user and developer communities up to date with our progress at least every two months.

We have made considerable progress since the last update: we implemented Specctra DSN import, generation of the ratsnest, and a graphical user interface (GUI). We also moved our website to Codeberg Pages and set up continuous integration (CI) for it.

Specctra DSN import

Implemented by Tomasz Cichoń (tomec) starting in commit 3f6bad2ed6.

Topola can now load layouts from Specctra DSN files. DSN is the de facto standard EDA format for importing PCB layouts with DRC rules into standalone autorouters.

For example, the following KiCad layout:

The layout to be imported via DSN as displayed inKiCad.

Can now be loaded in Topola and will look like this:

The same layout imported inTopola.

Ratsnest generation

Implemented by Mikołaj Wielgus (mikolaj) starting in commit 8d59242f3f.

Topola now generates and displays line segments that show which pairs of pads should be connected. This set of line segments, known as the ratsnest, aids both the designer and the autorouter in figuring out where to start and stop routing.

Ratsnests’ ratlines drawn overlaid on alayout.

Egui graphical user interface

Implemented by Mikołaj Wielgus (mikolaj) starting in commit f2c2dca4be.

Topola now has a basic graphical user interface (GUI) written using the egui library and its paired eframe framework.

Animation showing two pads being selected with cursor. Then the cursorclicks on a button labeled “Autoroute”, and a straight trace appearsconnecting both pads.

Website move and continuous integration

Work done by Panagiotis “Ivory” Vasilopoulos (n0toose) in repository topola/pages.

Our website’s hosting was moved from Hetzner to Codeberg Pages. Codeberg’s continuous integration (CI) (an instance of Woodpecker CI) was set up to automatically build the website when committing to its repository.

Last modified November 20, 2024: Increase nesting level of all headings (b5fc0bb)