1 of 90

1

10i - Check ODB Files in Viewmate Deluxe with PCB Analyzer

2 of 90

2

1/13/24

Board houses say they make fewer mistakes with ODB files than with Gerbers. Therefore, we send ODB files to our board house.

After designing a board in one CAD tool, you want to use a separate CAD tool for verification.

This is analogous to a chip flow, e.g. where we design with Cadence/Synopsys tools, but check the output files in Siemens Mentor’s Calibre.

3 of 90

3

1/13/24

Why check with a 3rd party tool?

It’s a general tenet of testing, that you check with a different tool than the design tool.

We use Altium to design our boards, but we don’t send native Altium files to a board house. Board houses require standard file formats that drive their lithography machines. ODB/Gerber files for printed circuit boards are analogous to OAS/GDS photomask output files in a chip flow. ODB is more modern than Gerber. The ODB format is an XML-based hierarchical database.

Even though Altium has a built-in ODB/Gerber viewer, we don’t use it. Here, we describe Pentalogix Viewmate Deluxe and its PCB Analyzer plug-in to check our ODB files. Pentalogix originally wrote CAM Master and many of the tools that board house CAM Shops use. PCB Analyzer lets us set up our own rules for checking geometry in ODB output files.

4 of 90

4

12/15/23

Outline

5 of 90

5

1/13/24 Pentalogix Viewmate Deluxe runs in Windows and is installed on the Win10 PCs in the BWRC Lab. Contact the Tzar of the Win10 PCs to get remote access. BWRC has a 5-seat floating license. The images in this doc are from version 11.22.49:

6 of 90

6

1/13/24 Version 11.22.49 has fixes for 4K monitors, but you must select the button size to be larger than 24x24.

The marketing folks at Pentalogix have complicated names for their add-ins. There is a bundle name, EMS Magician, which is a bundle of 3 tools. The 1 tool we care about, for checking ODB files with our own rules, is called PCB Analyzer. PCB Analyzer comes for free with Viewmate Deluxe. Click on this PCB Analyzer icon to open it …

While it’s possible to use Viewmate Deluxe as an editor, we don’t edit geometry in ODB files. We solely want to inspect and check … and if something is incorrect, we go back to Altium and make the fix. At the end of your test board flow, you want your Altium project to contain the same design information as the ODB files sent for fabrication - so that your Altium project is an accurate record of what you got fabricated. (Also, you want to leave your repo so that later students can look through your project and learn).

After opening Viewmate Deluxe, open the PCB Analyzer plug-in.

7 of 90

7

1/13/24 When PCB Analyzer opens, it says EMS Magician, but we only have this 1 tool within EMS Magician. To use PCB Analyzer, place the windows side by side, since the errors which PCB Analyzer finds will be automatically zoomed to in the Viewmate Deluxe window. After generating your ODB files in Altium, you can import them into Viewmate Deluxe. Then you configure PCB Analyzer for your board, and you tell PCB Analyzer to run a set of rule checks which you specify. Viewmate Deluxe zooms to the errors.

…really just PCB Analyzer

Units

8 of 90

8

1/13/24 Before importing your ODB .zip file, take a minute to wrap your head around Viewmate Deluxe’s visual cues for the active layer and the active window. Here, we clicked in row 2. That made the white layer-list window on the left be the active window, and row 2 is shown in the active layer field (blue arrows). Then we moved our mouse to hover over the graphical window without clicking in the graphical window. The crosshair cursor there is a hard-to-see dark red (at the yellow arrow). On the next slide, we’ll click in the graphical window to make it active … and the crosshair will turn white …

9 of 90

9

1/13/24 Like this. You need to click in the graphical window to see the crosshair as white. The graphical window is now the active window. Notice also that row 2’s outline changed from grey in the previous slide to red here (green arrow). The active layer is still row 2 (black arrow), and if we imported our ODB .zip file, the importing would start at row 2. Click on row 1 to make row 1 the active layer. We’ll import all our layers so that they start on row 1.

10 of 90

10

1/13/24 Row 1 is now the active row. Here, we’ve also clicked on “Zoom to Frame”. There is always just one frame. The “Zoom to Frame” command moved the cursor to the center of the frame, which we can see is at (10,8) inches. The frame can be changed. Viewmate Deluxe uses the frame for a variety of functions. You can modify it with Setup -> Frame …

11 of 90

11

1/13/24 Use Setup -> Frame -> Corners to see the present extents of the frame and/or change them. Here we see the frame is 20 inches in X by 16 inches in Y. So it makes sense that when the crosshair was at the center of the frame, the crosshair was at (10,8).

12 of 90

12

1/13/24 You can find controls for zooming and panning in the View menu. However, it can be more convenient to use a 3D Connexion 6-dof joystick as described in the Appendix of this doc.

13 of 90

13

11/13/24 The icon at the red arrow toggles the visibility of all layers. The blue arrow icon makes all layers visible. Alternatively, you can right-click on a layer and select “Only This Visible” in the drop-down:

Units can be changed here.

Zoom and pan icons are in this light green box.

14 of 90

14

1/13/24 Pentalogix has a YouTube channel, with helpful tips on their Viewmate products:

Viewmate Tutorial: Selecting Elements - Pentalogix YouTube video

Viewmate Tutorial: Moving the Origin - Pentalogix YouTube video

PCB Gerber & Gerber X2 Files - Fedevel Academy YouTube video

Separately, here’s a YouTube video which explains the basics of the Gerber and Gerber X2 formats, upon which ODB is built.

15 of 90

15

1/13/24 Set up a default directory for when you open Viewmate Deluxe. Starting with PROPEL-V2 in January 2024, students who have opted to go through the new Design Review process have pushed their Viewmate Deluxe .bin file and their PCB Analyzer rules file to a directory in their repo named Files_for_checking_with_Viewmate. This makes it convenient for later students to play around with these ODB-checking tools. That is, clone down the propel-pcb repo from the “BWRC Boards” group on bwrcrepo.eecs.berkeley.edu and point to the folder in there called Files_for_checking_with_Viewmate.

16 of 90

16

1/13/24

The next section reviews the steps for exporting your own ODB files from Altium, so that you can then import them into Viewmate Deluxe here.

In this doc, we walk through inspecting the final ODB file sent to fab from the PROPEL-V2 board. It’s final ODB file can be found in this directory of its repo:

17 of 90

17

12/15/23

Outline

18 of 90

18

12/15/23

You can skip this section if you already know how to export your ODB files from Altium.

Exporting ODBs was explained in earlier documents in this Test Board Flow.

19 of 90

19

12/15/23 Generate the ODB .zip file using the Altium project’s .OutJob file which opens this OutJob window. We typically don’t have variants, so select the row for ODB++ Files (light green arrow):

20 of 90

20

12/15/23 Right-click on that ODB++ row and select Configure:

21 of 90

21

12/15/23 Configure without any mechanical layers (a board outline layer will be included automatically, assuming you had a layer in your .PcbDoc that was of type Board Outline):

22 of 90

22

12/15/23 After clicking OK to close the previous window, select on Generate Content to export the ODB .zip file to your project’s Project Outputs folder:

23 of 90

23

12/15/23 That path would’ve been set up in your project’s Project Options:

24 of 90

24

12/15/23 The ODB .zip file gets put by Altium into a sub-folder of Project Outputs named “ODB”:

Project Outputs folder

25 of 90

25

12/15/23 You won’t find anything in someone else’s board repo’s Project Outputs folder, since we have a .gitignore that ensures we don’t push all these intermediate files to the git repo. Instead, the board designer would’ve saved a copy of the ODB .zip file to a folder named Files_for_BoardHouse.

26 of 90

26

1/13/24 The final ODB .zip for the PROPEL-V2 board design sent to Sierra’s CAM shop was stored here:

27 of 90

27

12/15/23

Outline

28 of 90

28

1/13/24 Now do Import -> ODB. The next slide shows the result of importing the final propel_v2 ODB file:

29 of 90

29

1/13/24 When this propel-v2 ODB file opens, since it’s 3.4”x4.9”, we don’t see the frame. Click on the “Zoom to Frame” icon …

You might see a different color set for your layers, depending on how you left them when you last closed Viewmate Deluxe.

Zoom to Frame

30 of 90

30

1/13/24 The frame is clearly much larger than the board. Now try clicking on the Show All Data icon …

Show All Data

31 of 90

31

1/13/24 Show All Data, in contrast, puts the crosshair cursor at (0,0) and shows only the portion of the frame to the extents of the data. Notice that our board was imported with its lower left corner offset from (0,0). That’s because in Altium we designed it offset at (1,1)inches. Let’s move the board to (0, 0). To do that, let’s first make only the Profile layer visible …

32 of 90

32

1/13/24 Right-click on the Profile row and select “Only This Visible”. Here, we’ve also clicked on the “Show All Data” icon. The red Profile layer is a bit hard to see. It’s at the light blue arrows. Let’s change the color of the Profile layer to yellow …

33 of 90

33

1/13/24 Okay, now we see the Profile edges of the board outline in yellow. Next, let’s move the board so its lower left corner is at (0,0) …

34 of 90

34

1/13/24 First, let’s bring the frame in a bit closer. Do Setup -> Frame -> Surround All Data and give it a margin of 0.05”:

35 of 90

35

1/13/24 Here we’ve hit the Home key (shortcut for “Show All Data”) where the cursor moves to (0,0):

36 of 90

36

1/13/24 Do Setup -> Absolute Origin

37 of 90

37

1/13/24 Then move the crosshair inside the lower left corner of the board outline. Next, we’ll hit the “A” key to align this crosshair to the closest geometry …

38 of 90

38

1/13/24 The crosshair is now located at the lower left corner of the board, which is presently at (1,1) inches. Now hit Enter to end the Absolute Origin command …

Note that the Absolute Origin command is still in process.

39 of 90

39

1/13/24 Hit OK:

40 of 90

40

1/13/24 Now hit the Home key. We can see that the lower left corner of the board is where the cursor is, i.e. (0,0). Next, make all layers visible by selecting the icon at the blue rectangle …

41 of 90

41

1/13/24 Here, we’ve additionally hit the Home key. All the board data has moved with the board outline:

42 of 90

42

1/13/24 You’ll later want to change the layer colors in Viewmate Deluxe, but we won’t do it just yet because PCB Analyzer is going to reset the color scheme. For now, just cycle through each layer by typing the “+” key (Shift-plus). Here, we’ve gone to the layer L2_GND. Hold the Shift key down and keep clicking on “+” to quickly see subsequent layers.

43 of 90

43

12/15/23

Outline

44 of 90

44

1/13/24

PCB Analyzer needs to be informed about the functionality of each layer. That is, PCB Analyzer needs to understand the type of each layer.

Let’s fix the layer types for the two drill layers (red arrows). They are presently denoted as DRI (drill) layers, but we need to reset them to NTH and PTH …

Lingo:

NTH = Non-Plated Thru Hole

PTH = Plated Thru Hole

45 of 90

45

1/13/24 First though, have a look at the other layer types:

Viewmate Deluxe recognizes some of the layer types (for example, the blue arrows), but not others (red arrows). Here, it doesn’t recognize layers 2-5. Later, when we run PCB Analyzer, we’ll have to help it out. PCB Analyzer will need to understand the function of each layer.

For the layers Viewmate does recognize, it assigns codes such as:

CMU component upper

SPU solder paste upper

SKU silk upper

MSU mask upper

CPU copper upper

CPL copper lower

MSL mask lower

SKL silk lower

SPL solder paste lower

DRI drill

CML component lower

BOL board outline layer

46 of 90

46

1/13/24 We need to adjust the DRI layer types (to PTH and NTH … plated through holes and non-plated through holes, respectively). Do Setup -> Layers (or F10) to open the Layers Table window.

47 of 90

47

1/13/24 The fonts in the drop-downs are screwed up (4K monitor bug). Just type in “NTH” for the non-plated through holes:

48 of 90

48

1/13/24 … and type in “PTH” for the plated through holes:

49 of 90

49

1/13/24 The layer types are now updated in the layer list:

50 of 90

50

12/15/23

Outline

51 of 90

51

1/13/24 There aren’t any YouTube videos on how to use PCB Analyzer, but the Help menu in EMS Magician goes through the same steps shown on the next few slides. PCB Analyzer requires a few configuration steps to understand the meaning of what’s shown on each layer (eg. drill hole layers vs. signal layers). Then you create and run your own rules (green arrow):

52 of 90

52

1/13/24 Click on the PCB Analyzer icon and set the parameters for this board … 6 layers, PTHs, NTHs, both sides mask/silk/paste. Click Next:

53 of 90

53

1/13/24 We can skip this step of setting up blind/buried vias since our board only has thru vias. Click Next.

54 of 90

54

1/13/24 Click on “Auto Identify”. PCB Analyzer needs to understand your board’s layers in the format of the red dashed rectangle. Auto Identify tries (green dashed rectangle). For any layer it didn’t understand, use the drop-down to tell it the corresponding layer (blue arrow).

55 of 90

55

1/13/24 Go to the next step …

56 of 90

56

1/13/24 PCB Analyzer re-orders the layers and gets rid of the component layers (CMU and CML). It also changed the colors of the layers, and it moved the frame to be on top of the board outline layer. Let’s reset the frame to be outside of the board outline again …

Note: 4/5/24 - this was a slight bug in Viewmate Deluxe which was fixed. In version 11.22.53 and later, the frame doesn’t get overwritten, so you don’t need to do the step on the next slide.

57 of 90

57

1/13/24 Here we’ve repeated our earlier steps of making only the BoardOutline layer visible and changing its color to yellow. Then we did Setup -> Frame -> Surround All Data and gave the frame a margin of 0.05”. And then we hit the Home key. Next, make the TopCopper layer visible.

We want to set both the Board Outline and Top Copper as visible …

58 of 90

58

1/13/24 Here, we right-clicked on the row TopCopper and turned on its visibility. We then right-clicked on it again and changed its color to red. So now we see TopCopper in red, the board outline in yellow and the frame in white. (If PCB Analyzer made your Board Outline be a different color, set it to yellow.) Click Next for PCB Analyzer to move to its next step:

59 of 90

59

1/13/24 That stepped verified that PCB Analyzer sees the board outline as correct. Good. Click Next …

60 of 90

60

1/13/24 PCB Analyzer has noticed our Layer Ordering Test Structure which purposefully sticks out over the edge. It wants to clip them. That’s fine. Click Process All (blue arrow):

61 of 90

61

1/13/24 It will find a number of these, one on each layer. It’s fine. Click Yes to each one …

Note: this step seems to also put the frame back on top of the board outline. This was fixed in version 11.22.53.

62 of 90

62

1/13/24 When it finishes, click Next …

63 of 90

63

1/13/24 Now PCB Analyzer is finished understanding the board and brings up a window of rules:

64 of 90

64

1/13/24 Before playing with rule checking, load a color set that we saved previously for these 15 layers …

65 of 90

65

1/13/24 It’s in the propel repo’s folder Files_for_checking_with_Viewmate:

66 of 90

66

1/13/24 The board outline should look yellow, but its color gets messed up when the frame is right on top of it (XOR’d or something …)

67 of 90

67

1/13/24 Yes, we know the board is 3.4” x 4.9” and we can see that the frame is exactly on top of the board outline. Let’s move the frame outside by a margin of 0.05” again …

68 of 90

68

1/13/24 You have to click on a row with data in that layer, and then do Setup -> Frame -> Surround All Data … and use a 0.05” margin …

69 of 90

69

1/13/24 Great, that’s what we expect to see - a yellow board outline and a white frame outside of the board outline:

70 of 90

70

1/13/24 Note that if you select on Setup -> Render Drill Layers as Scratch then you get this:

“Render Drill Layers as Scratch” makes plated thru holes easier to understand (light green arrow) because wherever a drill was, that circular area is now “scratched out” from any visible layers.

On the other hand, non-plated thru holes disappear into the blackness completely. Oh well.

71 of 90

71

1/13/24 Once the colors are setup and you’re familiar with how to pan and zoom, then you can inspect the various layers carefully. For instance, note that in the Setup -> Preferences, you can left-click and drag on the graphical data to pan:

72 of 90

72

1/13/24 You can zoom in wherever your cursor is by simply hitting PgUp:

73 of 90

73

12/15/23

Outline

74 of 90

74

1/13/24 Now it’s time to read the Help for how to set up your own rules in PCB Analyzer.

PCB Analyzer uses a default directory to read in an initial set of default rules, which you can change and save to any directory. When you close and re-open PCB Analyzer, it remembers the directory you last set.

Scroll down to see the buttons (red arrow).

Click on “Change DFM Rule Set Directory” to see where it’s finding the present rule set …

Lingo alert:

DFM = Design for Manufacturing

DFA = Design for Assembly

75 of 90

75

1/13/24 PCB Analyzer ships with one default rule set named “Pentalogix USQT.xml” and it uses this directory in AppData/Local for its initial default rules:

Most likely, when you pull down a previous designer’s repo, they will have reset the directory.

You can always restore default settings from the Setup menu:

76 of 90

76

1/13/24 The first thing to do is either navigate to a desired directory where your rule set of interest is … or Save As the present rule set to some new directory. Then, as you play around with different rule specification values, you can always save the latest. The idea is to store these final files in your board’s bwrcrepo in a folder named Files_for_checking_with_Viewmate … so that your reviewers can access them and run the tool as they like:

77 of 90

77

1/13/24 The Check All and Clear All buttons refer to which geometry rules you want to enable for rule checking. Change any of the Specifications to see what’s in your board. Click Run All. The “Checking DFM Rule” field (blue arrow) will update as the checker runs:

78 of 90

78

1/13/24 You type in whatever numbers you want for the rules … depending on what you want to investigate. That is, you know what rules you used in Altium, so you can check here to make sure the ODB files are what you expected. For instance, if you’re pretty sure you set this particular rule in Altium to be 8 mils, but you find 360 places that are less than 8 mils, that’s worrisome. Click on Show …

79 of 90

79

1/13/24 Oh, it’s just a small rounding error below 8 mils. Notice that there are a number of buttons to zoom in and look at the error. The trick is that before you click on any of those zoom buttons, you must first point PCB Analyzer to the error you want to look at. That is, before you try a zoom button, make sure you click on the button labeled First. You can then get the zoom buttons to work. (The problem arises when you click on some random location in the graphical window and then click on the Zoom In button … the graphical window will zoom to your crosshair.)

80 of 90

80

1/13/24

81 of 90

81

1/13/24 That’s the general idea. Use Viewmate Deluxe and PCB Analyzer to understand what’s in your ODB files and catch any mistakes. Make sure to push these files to your repo in a Files_for_checking_Viewmate folder so that reviewers and later students can have a look and try it out.

This is outdated.

82 of 90

82

12/15/23

Outline

83 of 90

83

1/14/23 On the Managing Complexity page for the Test Board Flow, you can find getting started information for the dozen Space Mice we keep in the BWRC Lab. Make sure you read this doc and understand how to direct the Space Mouse Properties to point to Viewmate Deluxe and not some other Windows application …

The next few slides show useful settings specifically for Viewmate Deluxe …

84 of 90

84

1/14/24 The directions here are as if you’re right-handed, and therefore using the Space Mouse with your left hand. In Viewmate Deluxe, panning is normally accomplished by holding down a conventional mouse’s left mouse button and dragging. This is a carpal-tunnel-inducing procedure. Here, we use the Space Mouse to prevent this. Keep this setting of “Drag View in Real Time”, but map the Space Mouse’s right button (for your left thumb) to be a conventional mouse’s left click as shown at the blue arrow:

85 of 90

85

1/14/24 Also, map the Space Mouse’s left button to bring up the Space Mouse Properties window (red arrow):

86 of 90

86

1/14/24 Now you can easily open the Properties window. Then select Advanced Settings. Note: there is only one setting that works for Viewmate Deluxe … specifically Rotation about the x-axis. Here, we’ve just clicked on Restore Defaults (blue dashed rectangle.) Basically, Viewmate Deluxe can respond to the Space Mouse being rotated about its x-axis. Specifically, Viewmate Deluxe will zoom the image in/out (i.e. towards/away from you). Uncheck the checked box in the Reverse column (at the green arrow) …

87 of 90

87

1/14/24 Now close both dialogs. This setting will tell Viewmate that when you rotate the Space Mouse forward about its x-axis, the image will get pushed away from you …

88 of 90

88

1/14/24 Like so:

89 of 90

89

1/14/24 While it’s not possible for Viewmate Deluxe to understand how to pan directly from the Space Mouse, you can achieve nearly the same thing by setting this preference: Setup -> Preferences -> Center on Wheel Zoom. I use my right hand’s index finger on my laptop’s trackpad to move the crosshair to a location on the board when it is zoomed out like this (say, where the red arrow is pointing) and then use my left hand on the Space Mouse to zoom. When the speed is set to fairly fast, the zoom is snappy and it instantly centers the image where your cursor was ….

90 of 90

90

1/14/24 It’s quite slick. It becomes completely intuitive. It’s very fast to pan and zoom in this way, and you won’t get carpal tunnel like you do with most CAD tools which make you hold and drag while your index finger is in tension.