Onedrive Problem and Wishlist

Hi all,

after working with LibrePCB on real production projects for several days, I’m really excited about it! It’s a pleasure to use and, for me, it’s the most intuitive PCB design tool I’ve ever worked with.

A few weeks ago, our company decided to switch from Eagle to KiCad. However, our first experience with KiCad was quite frustrating as long-time Eagle users. Fortunately, we discovered LibrePCB, and so far we’re very happy with it.

Of course, we have also found a few (mostly small) things that could improve the daily workflow. Here they are, ordered from highest to lowest priority:

1. Performance

I’m not using a high-end workstation, but my hardware is definitely not low-end either. Especially on larger projects, LibrePCB sometimes feels a bit sluggish. Even with copper areas hidden, routing and editing are not as responsive as I would expect. Hiding copper areas was the only setting I found that noticeably improved performance.

2. Clearance assistance while routing

When routing traces, there is currently no visual assistance to help maintain the required clearance to existing tracks. You only notice violations after running the DRC.

Push-and-shove routing would certainly be the ideal solution, but I don’t think it’s absolutely necessary. A simpler solution would already be very helpful, for example:

  • letting the cursor “glide” along the clearance boundary of existing tracks,
  • highlighting areas where routing would violate the clearance,
  • or simply showing a circle around the cursor representing the current clearance distance (or multiple circles if different net classes are involved).

Any kind of visual feedback during routing would make it much easier to avoid DRC violations in the first place.

3. Rounded traces

I really like rounded trace corners. Besides looking great, they also give the PCB a much more polished appearance.

4. STEP export with vias

Sometimes we use vias as mounting holes, but via holes are currently not included in the exported STEP model.

Even better would be the possibility to choose which PCB elements should be included in the STEP export, for example:

  • vias,
  • copper,
  • silkscreen,
  • solder mask,
  • and other layers.

5. OneDrive issues

We store our projects in Microsoft OneDrive. After working for a while and saving a project, we occasionally receive the following error:

I manually delete the .autosave and .backup folders, and then the project saves without any errors. However, a few seconds later, OneDrive asks me:

“Do you really want to remove 3,256 files?”

As far as I understand, these folders are only needed in case LibrePCB or the PC crashes. If that’s correct, would it be possible to store them in a local workspace instead of inside the project directory? That would probably avoid unnecessary OneDrive synchronization conflicts.

If there is anything I can do to help, please let me know!

Best regards,

Bernhard

Hi @Berni4

Thanks a lot for your feedback! Let me give some thoughts to these topics.

I am aware that depending on hardware, software, and project complexity, performance may noticeably slow down. Especially on Windows I can feel it too sometimes, on Linux it seems to be better. Anyway, one of the reason is for sure that our 2D rendering engine is not hardware accelerated (in contrast to our 3D viewer, which is using OpenGL and thus performs better). For long term we should move to a more performant technology, but this is gonna be a ton of work and will therefore take time.

As a workaround in the mean time, check out those tips which may help to improve performance: Troubleshooting | LibrePCB Documentation. Especially HiDPI screens can heavily impact rendering performance, compared to just native FullHD.

I agree, but this is very non-trivial to implement. I think the push-and-shove router is still the preferred solution for this, and is therefore still on the ToDo list.

Hmm yeah honestly this is something with very low priority (not many users are asking for this), but I agree there are cases where it would be nice to have.

For mounting holes, I highly recommend to use THT pads instead of vias (right-click on the “Add Via” tool button). In contrast to vias, those pad holes will be exported to STEP files. Also you may want to check out the mounting holes from the base library which are ready-to-use mounting holes including silkscreen drawing etc (to be added to the schematics, since it’s a device).

Regarding exporting more details to STEP files, this is something I do have in my mind. I just first want to figure out what is the impact of such details on STEP file size since I know the problem of ridiculously large STEP files from other EDA tools, which then take several minutes to open in a MCAD - a problem that I want to avoid in LibrePCB. If the details are not exploding the file size, I do want to extend the STEP export with more details.

Hmm that seems to be a tricky one. Generally I would recommend not to sync .autosave and .backup folders, i.e. excluding them from the sync. But after a quick search in the internet, I believe OneDrive doesn’t support to exclude specific files/folders?! Maybe you should move to a proper cloud solution then :sweat_smile: :see_no_evil_monkey:

At least I don’t want to move those folders to a different location. There are good (technical) reasons for keeping them inside the project directory, and moving them somewhere else will introduce new problems.

Anyway, honestly I would be scared about storing a LibrePCB project (or any other “atomic set of files”) in such a cloud storage. A cloud storage does not support committing the complete set of files in an atomic way, and does not prevent multiple people from working at the same project at the same time, which could lead to serious problems. My recommendation would be to put the projects under version control, e.g. with Git or Subversion. Those systems allow to checkout/commit the project atomically, without storing all the backup/autosave files, and still allow to share the project with other people. But if you are not familiar with VCS yet, of course it would take some time to learn it…

Hi ubruhin,

Thank you very much for your quick response!

  1. On my Mac, LibrePCB is also faster than on my Windows PC. I’ll try the other suggestions as well. Thank you!
  2. What do you think about my idea with the circle? There is already a switch from the mouse pointer to a crosshair when the routing tool is selected. Drawing an additional circle with the configured clearance around the cursor doesn’t sound too complicated to implement, and it could help all users until a more advanced routing feature is available.
  3. I understand that this is not a high priority. I also know the method of creating rounded corners for polygons and board outlines by changing the segment angle, but I find this workflow rather inconvenient. Especially with complex shapes, it can be difficult to find the correct segment afterward to modify its angle. A keyboard shortcut to change the segment angle while drawing would also be very useful and would make this workflow much faster. I also assume that polygons and board outlines are handled differently internally than traces. Otherwise, I would imagine that reusing the existing “angle” functionality for traces might not be too difficult. Of course, I may be overlooking technical challenges that aren’t obvious from the outside.
  4. That works for me. Thank you!
  5. I totally agree with you! Unfortunately, OneDrive tends to cause problems with many tools (also with itself :wink:), not just LibrePCB.

Best regards,

Bernhard

Hi Bernhard,

  1. Yeah, a circle may indeed be a good temporary solution until we have a push-and-shove router. I opened issue Board editor: Display clearance circle while drawing traces · Issue #1869 · LibrePCB/LibrePCB · GitHub to keep this in mind for a future release.

  2. Polygons and traces are using different data structures, while only polygons support arcs. For traces one possible drawback is that planes may end up with much more vertices if there are curved traces, thus possibly causing additional performance issues. Though this needs to be investigated - maybe it’s not a real problem. Anyway, we already have issue Curve Trace Option · Issue #1710 · LibrePCB/LibrePCB · GitHub to keep this feature request in mind.

Regards,
Urban

By the way, since you mentioned commercial usage of LibrePCB, I just want to mention that generally we also offer paid feature development, as long as it follows the vision of LibrePCB :wink: In case you are interested in specific features to be implemented sooner, just contact me directly.