Progress Report May 2024 - May 2025 (What's new in Version 2.7)
At the end of the presentation on Horizon EDA at FOSDEM this year, I mentioned that there’s going to be a release soon. Soon is now!
Even though there are no big new features in this release, enough bugfixes and minor usability enhancements have been accumulating over the last year to warrant a new release.
Simplified project pool update
One of the major Horizon EDA annoyances when working on USBKVM was the workflow of getting pool items like symbols and packages updated in schematic and board editors. This always involved a opening the cache tab in the project pool manager before reloading the pool in the editor.
To combine these two steps into one, the editors now also watch for pool updates and pops up an unobtrusive message if a relevant item has changed:
Clicking on “Update cache” then opens a dialog similar to the cache tab in the project pool manager to update the recently-changed items.
After updating the checked items, the editor automatically reloads the pool so getting the latest state of one more pool items now just requires two clicks rather than a trip to the project pool manager.
Save and load for Pick&Place export
For reusing custom pick&place export settings, the pick&place export dialog now supports saving/loading the export setting to/from a file.
Where to find it: The pick&place export dialog grew a hamburger menu in the top-right corner.
Fixed package parameters (PR #874)
Horizon EDA is different from most other PCB CAD software in the way that there are no builtin pad shapes for packages. Instead, pads are defined by a padstack that can be drawn just like a package. In on itself this would be pretty inconvenient as one would have to manually draw pads of all sizes. To make this more convenient and closer to how other applications work, padstacks have a set of parameters that are evaluated by an embedded program that adjusts the drawn geometry accordingly. Some of these parameters such as pad width/height are set directly at the pad level whereas others like solder mask expansion are set in the board and propagate directly to all pads with no way of overriding them in the package or pad.
With PR #874 it becomes possible to mark parameters at the pad or package level as fixed so that they aren’t overridden by what’s set in the board. This can be useful to accommodate package-specific solder mask or paste requirements.
Caching of project titles
This one’s more of a bug fix than an actual enhancement: When closing projects, I noticed that the pool/project manager became unresponsive for much longer than reasonable. Using the established technique of pressing Ctrl-C in the debugger to see where the application is stuck revealed that it was busy updating the list of recently-used pools and projects. This turned out to be surprisingly expensive since the stored list just contains the filenames and it had to peek into all projects on this list to get their names. To speed this up, the pool/project manager now caches the project titles and modification times and only peeks into projects if they could have been modified.
With this fix in place, the lag spikes are gone.
Version 2.7
Finally, version 2.7 “Mirage” is out! See the changelog for a list of all enhancements and bugfixes included in this release.
Also keep in mind that Horizon EDA is mostly a one-person show that I run in my spare time, so bear with me if things take a little longer.