Comparing Altium PCBs - Page 1
Forum section: electronics / general

author: Faringdon
author_rank: Super Contributor
timestamp: June 08, 2024, 06:42:02 pm
content: Supposing you have two PCB projects in Altium. They are from a long time ago, and you want to check if they are exactly the same (ie, that they would both give the exact same gerber files)Is there a way of comparing them in Altium?Eg layer by layer...is top layer of project 1 equal to top layer of project 2?....etc etc

author: plazma
author_rank: Frequent Contributor
timestamp: June 08, 2024, 07:49:03 pm
content: I use ViewMate for gerber comparisons and review.

author: ajb
author_rank: Super Contributor
timestamp: June 08, 2024, 07:53:43 pm
content: Assuming you’ve at least checked that the files aren’t exactly the same first? There are definitely changes that could be made in a file that wouldn’t affect the project outputs (parameters are frequently rearranged within the prjpcb file for no apparent reason, for example, but this would at least confirm if they aren’t literally the same files.If you add the projects to a git repository there are some comparison tools built in that might be helpful. I haven’t looked at those tools in a while, but I remember them being clunky and not as useful as I’d’ve liked. You’d basically need to create a repository for the project, copy one version of the files into the repo, commit, then overwrite those files with the other version, and commit again. This would immediately tell you if there are any differences at the files level, since git won’t let you commit if the files are the same.You could also just generate gerbers from them and then load all of the files into the CAM viewer. Then visually check each layer from one project against the corresponding layer from the other. You might need to play with the display settings or layer order to ensure that one layer doesn’t obscure changes in the other. BOM could be checked similarly by generating from both files and comparing in excel. In both cases, you’ll want to use the same our job to generate the outputs to avoid introducing differences in the output it generation.

author: Faringdon
author_rank: Super Contributor
timestamp: June 08, 2024, 08:08:10 pm
content: Thanks, its a 4 layer board....and i wonder if i do "EXPORT DXF" for ech project, and do this with only the 4 copper layers selected, then it will give me a dxf file which corresponds exactly to the exact copper shapes of layers 1,2,3,4...then i can convert the dxf to a txt file.....then do the same as this for the other project.......then use NOTEPAD++ to compare those 2 text files....if they are the same, then i can be garanteed that the copper shapes on all layers are the same for each project.Also, doing the same thing with the PCB netlist file, and the schem netlist file...and comparing across.......if these TXT files are all the same between the projects, then surely those 2 pcbs are pretty darn sure to be the same?

author: ajb
author_rank: Super Contributor
timestamp: June 08, 2024, 10:53:24 pm
content: The main limitation of those methods is that they can't distinguish between differences in the information and differences in how that information is represented. For example, the two netlist files might be completely different, but is that because the connectivity is different, or because the nets are listed in different orders? Or maybe the project settings were changed, and now the nets are all different names, but have the same connectivity. Same with gerbers: there are an infinite(ish) number of different ways to represent the same geometry, whether you're looking at the gerber itself or a dxf conversion. Two identical representations must provide the same information, but the two identical sets of information may have completely different representations.

author: Faringdon
author_rank: Super Contributor
timestamp: June 09, 2024, 09:25:09 am
content: Thanks, also ive noticed that in one PCB, there is a short......and this showed up as a difference in the PCB netlist file......the short was from moving a resistor and the copper pour didnt auto-pour to break the short. Hope they didnt re-gerber and make boards from this file.Also, Notepad++ will open all the output files that you get when you export gerbers and NC drill files (it opens them as text files) .....this appears to give a way to compare the files.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: June 09, 2024, 12:49:06 pm
content: I have seen some variations of this used for KiCad. The idea is to create bitmaps form either the PCB or Gerber files (so it could be adapted to any PCB program) and then XOR-ing layers.Another option is to switch continuously between the "A" and "B" variants. Differences will show up as blinking areas. This method has been used in astronomy for 100+ years.

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2024, 08:13:07 pm
content: Quote from: Faringdon on June 09, 2024, 09:25:09 amHow about running a design-rules check before generating Gerbers? Any PCB designer should take a look at DRC violations before sending a board design out for production. Or put differently, not checking the DRC violations will result in receiving faulty PCBs 100%. PCB design 101.