After a long period of silence I am back writing. It has been a hectic year, but it seams I will have some more time with writing these small stories and observations. It will still be on the passionate, or as some what have it "nerdy side". I have also together with the others at Additude been involve in building our new lab. That is something we will get back on though.
Anyway ... this time about the agony of upgrading software.
A few weeks ago Altium released version 20 of their software for PCB design. Although I am a closed beta tester there is always something you miss. Since version 18 Altium has made changes to the UI of the tool. In addition to going "dark theme", which seams to be something you must do. They have changed quite a lot of the basic UI and how you work with it.
I will already here say that this is quite welcome and for most parts they do a good job. Slowly, they have have been removing old and confusing methods of work. Sometimes they mess up, sometimes it seams that they messed up until later revisions, and sometimes they get it right from the start.
This time they have ...
When you do all these changes things are broken. To be honest often you just need time to adjust.
In the vacation around Christmas (which never ends up as vacation of course) I installed version 20. I run it in a virtual environment with VM Ware Workstation 15. The host computer is a DELL XPS 15 with Core i9, 32G RAM and 1T SSD. It was the ordinary next-next-(next)-finish ordeal. I did some quick run through and tested that everything worked OK. Run post processing on my test boards and compared Gerbers.
Wednesday I woke a bit early after the festivities and though I would test it out on a not-so-critical board. Concept electronics in a DIN module. I spent the better half of that day designing, doing components, schematics and layout. In the evening I sent it to a Chinese supplier for manufacturing. A manufacturer that charges me 2 USD for 5 boards (An insanely low price) and delivers back to Sweden in 4 days. So If I submit on Saturday, I have the boards on Wednesday. For two-point-zero-zero-dollars.
However. The next morning I was got with this mail.
What! ... No solder mask openings on any of the pads. That was an error I had not experienced since "The big Gerber Crash" in 1997 at Ericsson. What was this?
Another board I sent of the same day had passed with flying colors, as it use to be.
However, first a bit background reading ...
When doing a PCB design you can either have the vias tented or not. In Altium this is its own parameter. Most other design tools either have it in the stack or don't care at all.
A via is either covered by solder mask (tented) or open. The coverage with solder mask can be complete or partial. This depends on manufacturer, material and geometries.
Tented vias will be more resistant to physical damage and electrical shorts.
If you use vias close to/or in pads, you will hinder solder from flowing through to the back side and form a ball. This firstly drains the pad from solder, but also the ball could interfere with a second side re-flow. The stencil for the second side could ride on the solder balls. This is often the case with BGA dogbones for instance.
Also, in prototypes they make fine testpoints and start/end of patching.
The small hole can provide a way for corrosive flux, moisture, and other chemicals to enter the via being trapped. This can enable the possibility of a failure of the via due to corrosion eating the copper via. This is less of an issue due to the popularity of no clean flux for SMT assembly but corrosive water clean flux is still prevalent in through hole assembly.
So how does this tented vias has anything to do with no solder mask on soldering pads. Good question!
In version 19.x the tenting of vias was done as a parameter to the via. The expansion, i.e. how much larger the solder mask opening was compared to the copper of the via, is done in two ways. A) Manually for each via or B) by a global rule. However, the tenting is done via by via. In reality you select all vias and tick the boxes for tenting of both outer layers.
However. In the version 20. The tenting is part of the solder mask expansion rule.
So here if we choose rule-based for this via, we can not change the tenting. That is done in the solder mask expansion rule. This looks like ...
Now. The day after new years eve you might be fooled to think that the above tick boxes for "Tented" applies to vias. After all the figurative picture is clearly a via. After all why would you tent pads?
Note: Nevermind the "Query IsPad". That is my fix for the problem.
But you would be mistaken. This is a generic rule that applies to ALL solder mask expansions. You could, rightfully ask, again, why in the world would you tent a thru hole pad or SMD pad. It makes no sense ... but apparently Altium thinks it is needed.
So. When I thought I tented all vias by this new and handy rule based tenting, I tented all pads and vias. Thankfully the Chinese manufacturer noticed and sent me a note. I uploaded, free of charge, replacement files.
I have now changed my solder mask expansion rules to have two entries. One for vias and one for pads.
If this really is needed, or you want a generic handling of things, there is a solution. You could think that Altium would re-use the code they did for how planes are connected to pads, SMD pads or vias. They simply have the three choices. Actually it is quite mind-boggling that they didn't ...