Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Layers designated as 'Power' should be allowed to have vias, even though they are generally disabled #269

Open
lucasdietrich opened this issue Feb 19, 2024 · 11 comments
Assignees
Labels
Milestone

Comments

@lucasdietrich
Copy link

I'm experiencing an issue where freerouting doesn't use the bottom layer of my board. When running the program it seems to only route the top layer without using any via, even if components are present on both sides. As my board is not trivial, it fails to route the board. Moreover, all options related to the bottom layer are disabled.

I'm new to Kicad and freerouting, there is a chance I misconfigured my Kicad project.
Thank you for your help

  • What version of freerouting are you using?
    Freerouting version 1.19

  • On what platform did you run it? Windows, Linux, MacOS? 32-bit or 64-bit?
    Windows 11

  • What EDA do you use? KiCad, KiCad with freerouting plugin, EAGLE, EasyEDA, other? What is its exact version?
    Kicad 7.0.10

  • What types of files are you working with? Can you attach the project files (.pro, .kicad_pcb, etc) or the exported DSN file?
    freerouting.dsn.zip

  • Did you use any command line arguments?
    No

  • Can you post a screenshot of the problem?
    image
    image

  • Can you include the latest, related log entries from the .log file?
    Can't find this file.

  • Please list the detailed steps to reproduce the problem
    Created the project under Kicad

  • What would you expect freerouting to do in this situation?
    Top and bottom layers are routed

  • Is fixing this issue critical for your work?
    Yes

@lucasdietrich lucasdietrich changed the title Cannot route auto route bottom layer Cannot route using bottom layer Feb 19, 2024
@iveyj1
Copy link

iveyj1 commented Feb 28, 2024

I am having a similar problem - no vias, no traces added to backplane, no power plane use, incomplete routing on a small board that should route completely. On the smaller board there is no back plane trace use, but on a larger board, back traces are used, but there are still no connections to the ground or power plane, and many ground and power plane connections are not made. Some signals other than ground and power are also not routed.

Windows 10, freerouting version 1.9.0 There was no improvement when I tried exporting dsn and running freerouting from the command line. Dsn available on request. Thank you.

@andrasfuchs andrasfuchs self-assigned this Mar 4, 2024
@andrasfuchs andrasfuchs added this to To do in Freerouting Project Board via automation Mar 4, 2024
@andrasfuchs andrasfuchs added this to the 2.0 milestone Mar 4, 2024
@andrasfuchs
Copy link
Collaborator

andrasfuchs commented Mar 4, 2024

I quickly looked into your DSN file and I think the reason is that your B.Cu layer is defined as "power" type.
Freerouting allows routing only on "signal" types.

Would you expect another behavior? If yes, could you help me find the definition for the signal and power layer types and explain the difference between the two? Should the routing algorithm act differently on these layers?

@andrasfuchs andrasfuchs changed the title Cannot route using bottom layer "Power" typed layers are ignored by the auto-router Mar 4, 2024
@iveyj1
Copy link

iveyj1 commented Mar 4, 2024

I was mistaken about my symptoms, there is not a problem with the bottom layer, it is with the power planes. I confirmed that the middle two layers of the board are marked for power.

Using Kicad 8 integration.

I hacked in version 1.7.0 by copying to the plugins directory. It routes as expected - only a few missing traces:

freerouting 1 7

With the identical project, using version 1.9.0 most or all plane connections are missed:

freerouting 1 9 route and DRC window

I couldn't find the .ses and .dsn used by the integration, but I attached a separately-exported .dsn file. If you let me know the location of the files used by the integration I can pass them on.

example dsn.zip

@iveyj1
Copy link

iveyj1 commented Mar 4, 2024

To answer your question, There should not be traces on a power plane (as they disrupt current flow through the plane), but there should be via connections. See for example U302 (the topmost 4-pin component on the board) The center two pins are ground and +3.3V.
Here is the way it should be (1.7.0 behavior), with +3.3 and ground connected through vias to the center planes.
image
And here with those connections left as airwires (1.9.0 behavior).
image

By the way, the only routing parameter I changed was to reduce the via cost from 50 to 5.

@andrasfuchs andrasfuchs added bug and removed question labels Mar 4, 2024
@lucasdietrich
Copy link
Author

I quickly looked into your DSN file and I think the reason is that your B.Cu layer is defined as "power" type.
Freerouting allows routing only on "signal" types.

@andrasfuchs You are correct, I mistakenly misconfigured by bottom layer as a power plane. After changing it to "signal", I was able to auto route both sides as expected.

This addresses my initial question, however @iveyj1 seems to have pointed out another issue. Should I keep the issue open ?

@iveyj1
Copy link

iveyj1 commented Mar 7, 2024 via email

@andrasfuchs
Copy link
Collaborator

@lucasdietrich It's no wonder you didn't realize that that's the reason why the layers are disabled, our UI isn't obvious at all. Sorry about that, I have just added a tooltip for the disabled layers, explaining that power layers are disabled for routing.

@iveyj1 Thank you, but no need, I will rename this issue now and will investigate it in the next few weeks.

@andrasfuchs andrasfuchs changed the title "Power" typed layers are ignored by the auto-router Layers designated as 'Power' should be allowed to have vias, even though they are generally disabled Mar 7, 2024
@andrasfuchs
Copy link
Collaborator

@iveyj1 I tried to open the file you provided, and I got an error regarding ascii characters. I dig deeper, and it looks like KiCad 8 exported the DSN with an error at line 1844.

(class kicad_default "" +5V +Vin_prot "/0-10_interface/0-10V_PWM_OUT_#1"

The double-quotes at the beginning of the net class definition is incorrectly would mean that there is a net with the name of "". There isn't in the DSN and reading the list of nets fail.

When I remove the "" from before the +5V, it loads correctly, and I think Freerouting can also wire the board as it should.

Could you test it yourself as well to make sure?

@iveyj1
Copy link

iveyj1 commented Apr 18, 2024

It seems to load, route, and complete, however the connections to the planes are still not made.

By the way, it appears I inadvertently attached a DSN file that had already been correctly routed (presumably by an earlier version of freerouting). That one already has the correct connections to the plane. Sorry for the confusion.

I'm not 100% sure I'm invoking freerouting correctly. What I did to test was:
In Kicad 8 PCB, delete traces and vias
Export DSN file
Delete the "" in line 1844 of the DSN
In the plugin directory run:
C:\Users\ivey\Documents\KiCad\8.0\3rdparty\plugins\app_freerouting_kicad-plugin\jar>java -jar freerouting-1.9.0.jar
Then in freerouting, open the modified DSN file and start routing (I'm not sure how to properly invoke to open the file directly).
image
The +3.3 and ground traces are not connected.

@iveyj1
Copy link

iveyj1 commented Apr 18, 2024

I made a much smaller example from scratch using default settings and get the same results. The extra quotes are present, however removing them does not cause correct routing.

This is the result from 1.8.0 and is routed correctly:
min_fr_test_1 8 0_routed

This is the result from 1.9.0 with the quotes removed - ground not routed even though ground plane is available.
min_fr_test_1 9 0_no_quotes_routed

I attached the relevant files, thanks for your help with this.
min_fr_test.zip

andrasfuchs added a commit that referenced this issue May 23, 2024
@pi1541
Copy link

pi1541 commented May 29, 2024

I also have this problem, only when updating to freerouting-1.9.0-windows-x64.msi
It will never drop a via into an internal power plane.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

No branches or pull requests

4 participants