Over a million developers have joined DZone.

Make a DIP-8 Footprint in CircuitMaker With 3D STEP Model [Video]

A video tutorial on how to attach a 3D model to a footprint and showing the alignment tools in CircuitMaker.

· IoT Zone

Access the survey results 'State of Industrial Internet Application Development' to learn about latest challenges, trends and opportunities with Industrial IoT, brought to you in partnership with GE Digital.

On Friday in a fit of TGIF inspiration I made a video tutorial on how to make an Op-amp in DIP-8 package in CircuitMaker. The main goal of this tutorial is actually to spend a little time going over the entire process of attaching a proper 3D model to a footprint and showing the alignment tools.

This is a skill everyone doing schematic and PCB design needs to have. This video is only 22minutes or thereabouts, but it's definitely worth the small investment in time to watch it and learn this important skill. Just remember - when you are placing parts that already contain good STEP models for 3D you don't need to do any extra work to make a good 3D output from the entire design.

Here's the transcript for those who want the steps laid out for following after watching:

[00:00:01]

>> Hey, this is Ben. Today, I just wanted to do a real quick video to show some of the tools around placement of 3D bodies, and in particular how to bring in step models and align them correctly to your footprints when you're building a footprint. Because after all, since we're all sharing one community library, we wanna make sure that footprints have a pretty high quality in there and that everybody is able to contribute in a meaningful way.

[00:00:31]

So, there's a part I like to use in some of my audio designs. It's a fairly low cost but really high performance operational amplifier from New Japan Radio. It's NJM2122, and I'm gonna go with the D version that should be found, but let me try again here. NJM2122D, see it does actually come up.

[00:01:02]

There's a few suppliers for this one, Digi-Key have it. I don't know why it's not showing up right now, but I know for a fact that Mouser has it because I purchased them from Mouser. But it is there, it is there, so no one's made a symbol or footprint for this one yet, it's a standard eight-pin dual-op amp.

[00:01:25]

It's the same pin out as most of the dual op-amps out there, so that's a good thing because it means I can re-use footprints and symbols and things. But, for the video, I'm gonna make a new footprint just to basically walk through the whole process as if you have to do it from scratch, so let's go ahead and build that.

[00:01:49]

Click Build, and here we are, I'll just call it NJM2122D, and I'm gonna use an existing symbol, use existing symbol. I'll probably find a TLO72, or something like that, where I know that the symbol will be exactly the same pin out. Let's look at the preview there, make sure I'm happy with the one that we're going to use.

[00:02:28]

There's part A and part B. You can see there they share, eight is VCC and four is ground or minus VCC, so that one'll do. I'm pretty happy with that symbol, so I'll click OK. Now I'm just gonna edit it because this is all prefixed with TI and this and that, so I'm just gonna rename it.

[00:02:54]

So, let's go into the symbol properties, and we're gonna call it dual opamp standard and click OK, and I'm pretty happy with everything else about that. What I might do is on part B just hide the power and ground cuz you don't need to show them on every symbol, so where do I do that?

[00:03:32]

I can actually go in to edit the component and edit pins and for Sort By Owner. Zero means this pin belongs to every sub-part of the component, which makes sense for a dual op amp. And so, we can actually hide or show the pins in here. What I want to do is actually, instead of putting them on every part, I'll just put them on part one.

[00:04:16]

That way Part A has the power & ground, Part B Doesn't, and I'll delete those, so I just prefer the, op-amp to be a bit cleaner like that. So I'll save it, okay, so there's that one, now I need to add a footprint. Now again, I could use an off the shelf, DIP-8 footprint. There's a ton of components in the library already that use DIP-8 footprints, but instead of doing that, like I said, I'm gonna create a new one just to illustrate the process.

[00:04:55]

A DIP is pretty easy to do, you don't really need to, especially an 8-pin DIP, there's really nothing to it. You don't need to use the wizards or anything, you could. What I will do is set the grid to Imperial and set the grid to 100 mils because all of the DIP packages have, generally, unless they're Japanese, all the common DIP packages have their pin spacing at 0.1 of an inch, or 100 mils.

[00:05:32]

I'll place pad, the default pad is probably, could be big enough, but just to be on the safe side I'm gonna make it 80 by 60, and I'll make the hole a little bigger, and being a dual coordinate system I know I can do this, I can get away with this, I'm gonna make it 0.8 millimeter, right.

[00:06:01]

If I do that, and hit Tab again to bring up the properties, you can see it's about 32, so I'll make it just 32 thou. That's a standard hole size in most PCB manufacturers out there, and actually I think it doesn't need to be 80 by 60. I think I'll keep it 60 by 60 and round. Oh, I hit Tab again, this is pin one.

[00:06:29]

Pin one, we'd normally make it rectangle just to indicate. Yeah, and put, for now I'll put pin one on the origin, I'll set the origin later to be the geometric center of the component. Now, two - see it automatically increments the designator? But now I'm gonna make the pads round, so we go 1, 2, 3, 4, and like all DIP packages,

[00:06:58]

we have a one, two, three, 300 mil spacing, pin to pin on the width of the package, and the pin count starts at one in the first pad at the top, it counts down the left side and then up the right side. We've got five, six, seven, eight, so there's the most basic DIP-8 footprint you could make, but there's nothing there yet, no assembly diagram information, no information about 3D models or anything.

[00:07:32]

But this could work, you could make a PCB with this. What I like to do is on the silk screen layer, so it's got a top overlay, which is the silk screen, I'm gonna place a tiny circle, maybe I'll hit g and set the grid to 25 mil for this.

[00:07:56]

Place a tiny circle Next to pin one. And I'll set the radius of the circle to two mil. So, this just puts a dot next to pin one. Some people like dots, others like to put an actual number one there. It's just a matter of personal preference. But since it's a through-hole part and no IPC standard was ever released for through-hole parts, (there was a draft standard IPC7251,

[00:08:35]

as opposed to IPC7351). And I could follow that but that standard was never released anyway, so, why bother? Now I'm gonna go to Assembly Text Top. Now this is the best practice. Whenever you're creating a footprint in CircuitMaker, you should always put on the Assembly Text Top Layer, which is paired with Assembly Text Bottom,

[00:08:57]

So when you flip the component as you're actually placing it on the PCB, whatever text is on the top will flip to assembly text bottom, so don't worry about that: Just put everything on assembly text top for the designator and footprint for making nice assembly drawings. And while I'm placing the text, it's on the cursor there, I hit the Tab key to bring up the properties again and I'm gonna press decimal point,

[00:09:28]

and you'll see that a list of strings appears in this drop-down starting with a dot. These are called "special strings", and there's a special string for comment and designator. I'm gonna start with designator, I'm gonna make this a true-type font, Arial's fine. And instead of 60 mil, I'll make it 120.

[00:09:50]

And I'm hitting space to rotate that, and I'm gonna put the designator near to pin one; in line with that. And then I'm gonna hit Tab again, as I'm still placing the text. Hit dot again, and this time, start typing c for comment. And you'll see it finds the comment special string and I click OK.

[00:10:11]

And the comment basically is the manufacturer part number and it'll put that there on the assembly diagram, on assembly text top. Now we have a separate layer for drawing outlines on assembly top. So I'm gonna actually just draw a box around this part that kind of represents the DIP.

[00:10:34]

The physical DIP package. It doesn't have to be super accurate. It's really for doing Assembly drawings that help people set up, pick and place in insertion machines and the like. So I'm gonna draw a notch by putting this in arc mode. Draw a notch at that end which is the usual DIP package indication of where pin one is.

[00:11:02]

It's on the end that has a notch. So there's my Assembly drawing on assembly top. And now we come to the crux of things which is to put a 3D body on the 3D top layer. So I'll switch to the 3D top layer by clicking on it. And the DIP-8 package is very common.

[00:11:22]

So naturally, if you go to GrabCAD or 3DContentCentral, you'll find plenty of really nice models people have generously donated to the user community in those places for 3D models of the DIP-8 package in step format. So I'm gonna click 3D Body to find one of those. I've already downloaded one from 3D Content Central.

[00:11:45]

Now, instead of doing a generic extruded shape which you could do. I'm gonna say it's a generic step model, and I'll just call it DIP8. It's gonna be on the top side, and make sure you put it on 3D top. Again, 3D top is paired in our PCB editor with 3D bottom.

[00:12:05]

So, when you flip a component in the PCB editor any 3D body that's on the 3D top layer should flip to the 3D bottom layer. So don't worry about that, just leave it set at 3D top and then we click Embed Step Model. And where's my DIP8? There it is, click Open and OK.

[00:12:35]

Now it's attached to the cursor, and I can only have a guess at where the centroid of the 3D body is in 2D mode, I can't really see it. So I'll click to place it and cancel that dialog. Not placing more than one model. And you'll notice in 2D Mode, when you're moving a 3D body, the cursor will snap to the center of any of the edges on the 2D representation.

[00:13:00]

So that can help with lining it up, all the corners. Now, to see where it is, let's hit 3, and you can see it's completely aligned the wrong way. So let's go to Tools. And there's this whole subset of items for 3D body placement. So we're gonna do Align Face with Board.

[00:13:20]

And pick the 3D model by clicking on it with that crosshair. And then, I need to rotate it a bit to get to the bottom surface. So I'm gonna hold down the Shift key, And, I'll just move it with the right mouse button. And then you can see it's highlighting that bottom part of the DIP package.

[00:13:43]

So I click on that. Now it's aligned with the PCB. And holding Shift gives you this item here. If you then right-click on the dot, Shift and right-click on that, you can rotate things in 3D Mode. I'm holding down the right mouse button while I do that. And just while we're there, if I hold down Shift and hover the mouse over the circle and right mouse, it twists it around that circle.

[00:14:14]

There it is there. So it forces it to stay on that plane but just rotate. And similar with the arrows. But when you're on the dot, the cool thing is that it can snap to the flat, or you can hit 0 to go flat. 9 for 90 degrees, 0 for flat.

[00:14:34]

And 8 for an isometric sort of view. Okay, so back in 2D Mode, I can move this over now. I'm using the right mouse button to drag the workspace there. And space bar rotates, just like with any other object in CircuitMaker, and I can sort of eyeball it, line it up that way.

[00:14:54]

That might actually be good enough in this case cuz this is aligned to the grid. But actually, I see there, it isn't quite. It's a bit bigger than the grid. So it isn't good enough. And again, looking at this, you can see it's pretty hard to get it right just by moving it with the mouse.

[00:15:13]

So what we need to do is use a few of the tools on this 3D Body Placement menu. First one is we're gonna set, we've aligned the face with board correctly, but now we're gonna set the height of the body. Cuz if I zoom in there, you can see these pins are actually penetrating the pads deeper than they would in the real deal.

[00:15:35]

So, I'm gonna go to Set Body Height, and again, click on that 3D body to select it, and then I get this blue crosshair. And I'm gonna put the blue crosshair on one of those low vertices on one of those pins. I should be able to get it to one of them.

[00:16:00]

Let's zoom out a little and rotate. Let's see if I can do it on this side. Yep, so there's the vertex where that chamfer on the pin goes down where it can sit in the hole. So click on that, and say that's going to align to the board surface, so this is going to push it up by 14.5 mils.

[00:16:28]

So that's the correct height now. Now the problem is that all these pins are not aligned exactly in the centers of the holes. So, we're going to go add snap points from vertices. And, again click on the 3D model you wanna add the snap points to and then the vertices cross-hair jumps to all of these different points on the 3D model.

[00:16:54]

Well, all we need to do is go to what's gonna be pin one. I'll just zoom in a bit there using control and the mouse wheel. And, instead of putting it on the very edge of the pin, I wanna put it between that vertex and that one, I want it right in the middle.

[00:17:08]

So, I hit space bar that puts it in centroid mode where I can click on that vertex and I click on that vertex, and it puts this, you can see the lines there in 3-space. It puts this snap point right in the very very center of that pin.

[00:17:29]

Now, let's hit zero to get back to zero in this. We're flipped now on the board, so, go to view and unflip the board, and zoom out a little so you can see. Now we go to 2D mode and you can see when I move the 3D body, there's that snap point right there.

[00:17:46]

And now in 2D mode, if I  click and hold the left mouse button down, it snaps to and starts dragging the 3D model in the 2D plane, the XY plane, on that snap point. So I can snap that to the center of pin one. And you can see it's snapping because that little octagon appears in the middle of pin one there.

[00:18:10]

So that's fully aligned now and set to the right height. And I can just check it with my eyes. If I click 3 to go into 3D mode, you can see this is beautifully aligned really nice 3D model for a DIP-8. Now, I don't want the snap points all appearing: These white crosshairs, I don't want those appearing in my actual PCB design.

[00:18:36]

So I'm going to go back to the 3D body placement menu and say remove snap points, so click on that and click on the body and it snaps to the snap point I click and it's gone. There's no more snap points there so we have a really nice looking 3D model.

[00:18:53]

Check it out in 2D mode. Now, you can see the actual bounding rectangle of the physical 3D package of a DIP-8, so you might want to then go ahead and add a courtyard, normally courtyards are not used really by through-hole components but, sometimes people like to add them surface mount components, I should say, but sometimes people like to add courtyards for through holes as well, so put courtyard top layer in focus.

[00:19:20]

And, now I'm just going to draw a line, and I'll change the grid to fit, around that, so let's make it 5mil. A bit of a finer grid. And I'll just draw a courtyard that matches basically. I'll set it to right angle mode. That basically matches the outline of the 3D model that I've put in here.

[00:19:48]

Now the courtyard layer is for making assembly... it's for actually helping to guide pick and place and insertion machines. So it's not something that gets on the actual PCB like a silkscreen or anything like that. So on the courtyard layer you don't have to worry about crossing over copper or pads or anything like that.

[00:20:12]

Now what I wanna do is actually set the origin of the part, instead of being Pin 1, I want it to be the geometric center of the component. So I'm gonna go to references and make it center and it puts the origin right in the middle, smack-bang in the geometric middle of the 2D component.

[00:20:32]

And over the top of that on the courtyard layer I'm also gonna add... a plus sign. So I'm just clicking to start it, click to stop, and right click, or escape, or escape and escape, to finish drawing the line. So there you have it. That's a complete component done to best practices.

[00:20:53]

For a through-hole part, complete with a 3D model you can see its preview there now. I'll save my component and commit it to the library, and now it's available for everybody to use: The MJM2122D. There it goes. Now I can place this in some of my microphone preamps.

[00:21:26]

Now we won't see when you commit a component it says here actually, it's been released, but we won't see it right away in the Octopart search. It takes maybe up to ten minutes for that to cache and appear and get through all the various things that it does. However, it does get added to your Favorites library straight away.

[00:21:47]

So, if you wanna see what it looks like on the Favorites and to search for the part number for the part you just built, and you can see it there. And you see the preview of the symbol. And the footprint. And if I had a schematic open I'd be able to place it directly down in my design.

Originally posted on the CircuitMaker blog.

The IoT Zone is brought to you in partnership with GE Digital.  Discover how IoT developers are using Predix to disrupt traditional industrial development models.

Topics:
iot ,circuitry

Published at DZone with permission of Ben Jordan, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}