I believe creating custom break out PCBs for automated equipment is often a very good idea. In fact, I’m getting ready to design several new ones that will replace a lot of laborious hand wiring.
However, if you have never created a PCB before, it can be pretty scary, with complex design software (that has to handle fine pitch surface mount packages at high speed), design rules, different Gerber formats, all kinds of questions from the PCB fab house (1 oz copper? 2 oz copper? HASL?) and all that.
Designing a typical automation break out PCB shouldn’t be that hard, since the requirements aren’t complex: through hole parts, low speeds, large traces, etc. (OK, if you need to handle a lot of current, you have to start calculating and think about fancier boards). The problem is finding a tool that can handle these simple requirements with simplicity.
I don’t know which software is best; I’d like to hear about any real world experiences. If I had time, I’d like evaluate different PCB software from an automation OEM’s perspective, but that’s not going to happen for a while.
My suggestions right now are:
- Look at popular hobby-oriented software; it’s likely to be simpler or have more support. For example, although both Eagle PCB and KiCad are still pretty complex, there is a lot of support available on-line, and a substantial number of board houses will accept Eagle board files (so you don’t have to deal with Gerbers and such).
- On-line (“cloud”) software such as 123D Circuits or Fritzing might be a viable option: I’m pretty sure they’re a lot simpler than Eagle and KiCad, but I haven’t done enough research to know if they can create good break out PCBs.
- Consider an integrated solution, using software provided by a PCB board house (such as PCB123 from Sunstone). You might pay more and loose some flexibility, but gain simplicity.
February 7, 2014 5 Comments
Before starting to put all the pieces together, spend some time planning. Things to think about include:
- What is your naming convention? A good naming convention for parts and assemblies really helps you remember what is what. Which is a more useful name for a connector model, Part_21 or AMP 5499206-IDC-26?
- How are you going to assemble the part? Are you going to use any sub-assemblies? Good use of sub-assemblies makes assembling the model easier and more logical.
- Do you have all your part models? I like to have all my models ready before assembly, but you could start with what you have, and download or create as you go.
- Do you need to modify any manufacturer provided models? For example, your part might be slightly different from the closest manufacturer model, or you may need to modify the part (e.g. by adding reference geometry) so you can easily add constraints.
- I’ve come across both these cases, and will discuss them more in the future.
- Are you going to directly import your manufacturer models into your assembly, or convert them into Alibre parts first? Alibre Design 2011 can directly import STEP, SAT, and IGES parts into assemblies.
- IIRC, previous Alibre versions couldn’t directly import into assemblies, which is why my current designs convert all imported parts into Alibre parts.
Here are my tips on adding constraints:
- Come up with a naming convention for constraints: J1_Align_Pin1 provides much more information than align22.
- Position the parts so you can see all the features you plan on using to mate the parts together. I really like using the triad tool, with minimum motion mode off.
- I’ve had much better results using the manual constraints dialog than trying to use quick constraints. Sometime I’ll give quick constraints a try again.
- I’ve found it’s always necessary to move and zoom all around, and every time I use the icons, my constraints dialog goes away, so shortcuts are the way to go:
- Pan: press and hold middle mouse button, then move mouse pointer
- Rotate: position the mouse pointer where you want to rotate, then press and hold right and left mouse buttons, then move mouse pointer.
- Zoom in: press Page Up
- Zoom out: press Page Down
- Be careful where you click; it’s easy to select a feature you don’t want.
- I like anchoring one part (for example, the PCB) so I know which part will be moving when I add constraints
- Check the defaults. Often, the mate constraint will show the current distance between parts, so I have to change it to zero.
- Use your PCB layout as a guide. OK, if I could get Alibre to handle the silkscreen layer this wouldn’t be necessary, but it’s handy when I have a PCB full of holes and no silkscreen information on the PCB model.
January 13, 2011 2 Comments
The final step in creating a 3D PCB model is to assemble all the pieces together. Normally Alibre assemblies are created by constraining the parts.
A constraint limits how two parts can be located relative to each other. Three constraints fully constrain a part. For example, think of mating a through hole connector with 10 pins in one row to a PCB. You could add three constraints like this:
- Use an Align constraint to align the axis of the connector’s pin 1 with the PCB hole for pin 1. Now the connector is limited to two degrees of freedom: it can move close and farther from the PCB and it can rotate 360 degrees around the pin-1/hole-1 axis.
- Use another Align constraint to align the axis of the connector’s pin 10 with the PCB hole for pin 10. Now the connector cannot rotate: it can only move close or father from the PCB.
- Finally, use a Mate constraint with a zero offset to mate the bottom of the connector with the top of the PCB. Now the connector cannot move at all; it is attached the the PCB just like you had perfectly soldered a perfect connector to a perfect PCB (pins centered in the holes, connector just touching the PCB, etc).
That sounds pretty easy, right? Well, the reality is often different. Extruding a PCB is straightforward. Mating parts together is not; there are many possible ways of mating the parts together, and the best approach depends on the specific parts and PCB. I think MCAD assemblies are complex enough that an expert could write a book just about assemblies (and I’m definitely not an expert).
I haven’t found a lot of practical information on Alibre assemblies. My findings so far:
- You should definitely read the Alibre Design User Guide chapter on assemblies. It covers what’s available, including about 20 pages on constraints, but is brief and descriptive. It does not give any examples or practical advance.
- Based on the table of contents, the
Learn 3D CAD bookalso only covers constraints briefly (about 20 pages), but still looks like it’s worth the price, since it has a real world example, and advice on overall design (top down vs bottom up). I’m planning on getting the PDF version when the 2011 update is available. Note 10/5/2011: the Learn3DCAD website is no longer active, so this is no longer an option.
- The Alibre forums look useful if you have a specific question, but aren’t a tutorial. Also, if you’re on maintenance, there’s always tech support for specific questions.
- I’m not sure how useful Alibre’s paid training materials (DVD, exercise book, online seminars) since they don’t provide detailed information on the contents. I suspect they wouldn’t cover some of the problems I’ve had.
Next up in this series: some specific tips from my experience.
January 11, 2011 No Comments
In this post, I have a few final notes about extruding Eagle PCB DXFs.
All the files I mention are available in a ZIP file here Extrude Alibre.zip
The basic idea is simple: I have a sketch with an outline (the PCB borders) with holes in it (pads and vias) that I want to extrude. The picture below shows a simple case. On the left, there is a rectangle with a circle inside it (Extrude-DoubleCAD.dxf, which I created in DoubleCAD, and then imported into Alibre). On the right I extruded it (Extrude-DoubleCAD.ad_part).
So what can go wrong? Here are some situation where Alibre Design will not extrude your sketch:
- Overlapping objects
- For example, when two lines on the same layer both cover the same area. The picture below shows two thick lines (outlined so it’s clear) overlapping at an intersection.
- A thick rectangle will extrude OK, but you can’t make one in Eagle PCB (Eagle will only create filled rectangles).
- If the lines have zero width, they do not overlap. So it’s best to make sure your board’s borders in Eagle PCB have zero width.
- But even if you use thick borders, if you export (using my modified DXF ULP) with the Use Wire Width option off you will have a usable DXF, because in this case the ULP resets all wire widths to 0. Since you should always export with Use Wire Width off, it’s probably OK to use thick borders, but I always still set my borders to zero width.
- Overlapping lines on different layers
- This is the same as #1, except the lines cross each other on different layers. For example, if you have a border on more than one layer in Eagle PCB, and export both those layers to the DXF, then Alibre will not extrude that DXF file.
- The Extrude-Different Layers.DXF file shows this scenario; below is the error message when I import and try to extrude it.
- Extruding PCB traces or silkscreen text.
- It’s possible to create traces or text that Alibre will extrude, but the standard DXF ULP’s output is useless. You would have to create a very different DXF ULP.
- Below is an example of a DXF (Traces+Text-Extruded.dxf) and extruded part (Traces+Text-Extruded.AD_PRT) that gives an idea of what DXF exported from Eagle PCB would have to look like.
- Instead, below are some screen captures of actual Eagle PCB DXF ULP output showing the results (for no wire width, wire width, and filled wire width). Alibre will not extrude any of these, and I haven’t found a way to overlay a sketch or bitmap on top of a surface.
September 1, 2010 1 Comment
I mentioned in the previous post in this series that you cannot use the standard Eagle DXF ULP to generate DXF files that Alibre can use. Now I will go into a little more detail.
All the files DXF files I mention are available in a ZIP file here Extrude Alibre.zip
What are the problems with the normal DXF ULP?
- It creates the pads, not the drill holes. The picture below shows, in green, the pads created by the normal DXF ULP. I added the drill diameters in white using DoubleCAD.
- Notice the green squares (which I use for pin 1). I haven’t seen a square drill bit yet…
- Notice the the green square and green circle are much larger than the white circle. This is because the DXF ULP is creating the pad outline; for each pad, Eagle adds some copper area around the drill diameter (how much depends on the active design rules). But we want to extrude the actual hole size through the PCB, not the pad (drill area + copper area).
- You can get around this by creating a special set of design rules that does things like set all pad shapes to circular, pad size to the drill size, etc. And you’d better remember to re-apply your normal design rules (or you’ll end up with a worthless board). This approach will work OK for SolidWorks (I’ve tried it), but still doesn’t work with Alibre, because of other problems listed below.
- The DXF ULP creates the pads using object blocks (with different blocks for the different pad shapes).
- The ULP creates two identical blocks right on top of each other on the same layer (17, Pads). Alibre will not extrude sketches with overlapping objects.
- For some reason, Alibre does not copy the blocks correctly. When I imported the DXF into Alibre, they appeared at the right location, but when I copied the sketch to the new Alibre part, they moved to a totally wrong location. The picture below shows this with the DXF (Extrude-Different Layers.DXF) on the left and the part (Extrude-Different Layers.AD_PART) on the right — the pads have moved far to the right.
So what did I do? Well, I didn’t have a lot of time, and I’m not a DXF expert, so I made the minimum changed required for Alibre to work:
- I changed the Via function to always create a circle with the drill diameter on the dimension layer (layer 20).
- I changed the Pad function to always create a circle with the drill diameter on the dimension layer.
So far these changes have worked for me, but I should note that AutoCAD 2000 doesn’t like my changes (I haven’t tried newer versions).
The final topic: a bit on the DXF ULP options.
- Output file is the name of the DXF file that will be created.
- Always vector font should force a vector font to be used, but I haven’t test this feature.
- Unit selects whether to use inches or millimeters. Always remember the units you choose, because when you import a DXF into Alibre Design, Alibre needs to what units you used.
- Below I show the same simple board creating DXFs using 1) no wire wire or fill areas, 2) using the wire width option only, and 3) using the wire width and fill areas options. For extruding PCBs, you should never select the Use wire width or Fill areas options.
September 1, 2010 4 Comments
Extruding the PCB – Overview
The first step to a complete 3D PCB model is to create the PCB. The basic approach is to export a DXF outline of the PCB and its holes from Eagle PCB, import it into Alibre, and then extrude it. It’s not as easy as it sounds.
Alibre Design refuses to extrude sketches with any overlap. AD V11 did not show where the errors are, but V12 does (this feature alone makes V12 worth the upgrade).
If your PCB border has a non-zero width, Alibre will not extrude the PCB because the four corners overlap. For some reason, Alibre Design does not accept the way the standard Eagle DXF script creates holes.
I did not have any success getting Alibre Design to extrude the silkscreen or trace layers, nor was I able to overlay the silkscreen or traces as a visible sketch on top the extruded PCB (maybe because Alibre Design does not support surfacing).
When extruding, CoCreate PE is about as picky as Alibre, but (like AD V12) it highlights what it doesn’t like. SolidWorks doesn’t have problems extruding the standard Eagle DXF output. VX Innovator is also less picky; I have successfully extruded the silkscreen layer.
I made a couple quick and dirty changes to the standard Eagle DXF creation ULP to fix the holes; the result is dxf-fsw.ulp.
Creating the PCB — Step By Step
- Open your project in Eagle, then open the Eagle Board editor with your PCB layout. I used the FP-SMC-1 project as an example; you can download the files here.
- Make sure your borders have a width of 0.
- In the Eagle PCB board editor, turn on only the dimension, via, and pad layers (layers 17, 18, and 20).
- In the Eagle PCB Board editor, run the dxf-fsw.ulp ULP.
- Select a file name for Output file; I used FP-SMC-1.dxf with the appropriate path for my Eagle PCB setup.
- The Always vector font, Use wire widths, and Fill areas setting should not matter.
- The units do matter: you need to know them when you import the DXF. I used inches.
- Then run the script by pressing OK.
- You can download my resulting file here FP-SMC-1.dxf
- Close Eagle PCB.
- Start Alibre Design.
- Select the File->Import menu, select AutoCAD DXF files for the file type, select the file (in my case, FP-SMC-1.dxf), and press Open.
- File Units need to match the units you used when creating the DXF in Eagle (I used inches).
- I don’t think Maintain Projection matters.
- Importing Only Visible Layers makes sense.
- Start importing by pressing OK.
- Select the Sketch->Activate 2D Sketch menu (or press Ctrl+K).
- Select the Edit->Select All menu (or press Ctrl+A)
- Select the Edit->Copy menu (or press Ctrl+C)
- In the Alibre Home window select the File->New->Part (or press Ctrl+Shift+T)
- Select the Sketch->Activate Sketch menu (or press Ctrl+K)
- Select the plane to use for your new sketch.
- You can name the sketch. It’s not a big deal in a simple part, but I would recommend named sketches in a complex part.
- I used the XY plane. You can select the plane by either clicking on the plan in the work area, or clicking on the list of planes in the tree on the left (e.g. Planes->XY Plane).
- Select the Edit->Paste menu (or press Ctrl+V) to paste the DXF drawing into the sketch.
- You could select and move the sketch around if desired.
- Select the Sketch->Activate Sketch menu (or press Ctrl+K) to deactivate the sketch mode.
- Select Extrude Boss by menu (Feature->Boss->Extrude) or icon (typically the top right icon).
- Verify the correct sketch is selected.
- Use To Depth for Type.
- Use your PCB thickness for depth (0.062″ or 1/16″ for me).
- I reversed the extrude so the sketch is on top (probably doesn’t matter a lot).
- Leave everything else with the default settings, except you may want to name the extrusion.
- Start the extrusion by pressing OK.
- Save the PCB using the File->Save As menu (Ctrl+Shift+S); mine is available as FP-SMC-1 PCB.AD_PRT
- We are done creating the PCB itself. Now we have to assemble the board inside of Alibre, so stay tuned.
Here is the FP-SMC-1 PCB as an Acrobat 3D PDF; if a correct version of Acrobat is installed, you can click on the PCB, and then rotate it and more.
June 29, 2010 3 Comments
What Is This New Series About?
I will create a 3D PCB model using Alibre Design Standard V12 from an Eagle PCB project (I will be using the FP-SMC-1 an an example). I will not cover every single little step in detail, but I plan on being complete and fairly detailed.
The same basic approach will also work with other MCAD programs; along the way I will include some notes about other design software.
Why Create A 3D Model?
After all, the PCB fab houses want Gerbers, not STEP files.
A mechanical model can be used many ways, including:
- Checking your PCB footprints (especially if you use STEP or IGES models from the manufacturer)
- Check the mechanical layout of the PCB and the fit of the PCB into a larger mechanical system.
- As an input to simulation software, including thermal modeling.
- To create a beautiful, accurate rendering of your PCB.
- I will not be covering this. In fact, Alibre Design Standard does not include photo-realistic renderings; you have to have Design Professional or Expert.
Why Not Create a 3D Model?
Creating a model can take a lot of time, although once you’re experienced and have models for all your common parts, the time should be reasonable.
If you want to be able to share your results widely (e.g. export to STEP files), it will cost some money for the necessary MCAD software.
Spending more money can save a lot of time; for example, if you create your parts correctly, you can use the Eagle 3D ULP to create IDF files representing your board and its components. Then using even more expensive MCAD software (such as SolidWorks + CircuitWorks), the MCAD software will use the information in the IDF files to automatically create a board model.
Since life isn’t perfect, the board might need some tweaking. Also, I’ve read that Eagle’s IDF output sometimes needs some tweaking before the MCAD program likes it.
There are at least two programs for creating PCBs in Alibre using IDF files:
If you are creating a lot of PCBs at work, I would highly recommend looking at these programs.
What If I Just Want A Pretty Picture?
There are at least two free options for photo-realistic renderings with Eagle PCB:
- The original Eagle 3D project which uses POV-Ray.
- The new Eagle’up project which uses Google Sketchup.
There are some disadvantages to these programs:
- They are not useful for mechanical engineering (using the board as part of a larger MCAD model)
- They do not have large part libraries, and the companies that do provide 3D models typically use STEP, IGES, or Acrobat 3D.
- However, some file translation could help. For example, if you can convert a STEP file into STL (which CoCreate PE can do for free IIRC), you can try using the STL to POV conversion utility for Eagle 3D. You should be able to do something similar with Sketchup.
Why Alibre Design and Eagle PCB?
The short answer: because I have them and like them. Both programs are reasonably affordable, and fairly popular. I’d be happy to write about all the other options if I was well paid to do it!
What Are Some Alibre/Eagle Limitations?
So far I have found a few:
- Alibre Design Standard does not do photo-realistic renderings
- I have not been able to get Alibre Design to handle PCB traces so far; I can’t extrude them (as produced by the current DXF exporter) and I can’t overlay them.
- This could make it harder to model SMT PCBs; on through hole PCBs, it’s obvious where the parts go.
- Alibre Design Personal Edition (PE) is not usable, since it cannot import STEP files; the cheapest options are either Alibre Design Professional (about $500) or trying to see if you can still grab a copy of Alibre Design Standard (e.g. Novedge still lists it for $185)
Are There Other Affordable Options?
If you want to create a solid model that you can export in STEP format, only other MCAD choice I know of that’s under $1000 and might work well is VariCAD. The other choices have various limitations, which I might discuss in another blog post.
Or you could use different PCB design software; some programs will do at least some 3D modeling. For example, there is Altium at the higher end (about $4,000) and Target 3001 at the lower end. KiCAD (open source) has some sort of 3D capability.
Target 3001 does look interesting, since prices range from free to about 3,000 euros, and it can export to STEP files. Sometime in the not too distant future I hope to take a look at it.
June 5, 2010 6 Comments
Premier Farnell, a major electronics distributor (subsidiaries include Newark and Farnell), has purchased Cadsoft Computer, developer of Eagle PCB.
If you’re interested in the financial details, go to the press release. Since I use Eagle as my primary PCB design program, I’m interested in what might happen to Eagle.
Companies in another business that buy a company for “synergy” often destroy the business; examples include Exxon buying Zilog. It looks like Premier Farnell is buying Cadsoft to increase their business, by increasing the integration between Eagle PCB and their distributor companies (e.g. so it’s very easy to specify and order parts from Newark in an Eagle design), similar to what Sunstone, Digikey, and NXP are doing with PCB123.
I am curious to see what changes the new owners will make. Will they continue to invest in Eagle PCB to make it better? Will they change the current pricing?
September 29, 2009 2 Comments
It’s designed! After taking way too much time, I have finally finished the layout for my FP-SMC-1 board. Here’s the proof: above is a 3-D model of the board; below are pictures of the layout and the board model from the bottom.
The board hasn’t been built yet, because I wanted to model it first, and I haven’t found a good place to get one-off prototype PCBs made.
Creating the board model was challenging, but worth it, because it gives me more confidence that my board layout is correct. I use the 3-D model to check:
- That my PCB footprints are correct. Look at the picture of the board bottom, and notice how all the pins line up with the holes. (This check relies on correct 3-D models from the manufacturer. If you create 3-D models yourself, it’s possible for you to make a mistake in the model, but the manufacturer’s models should be correct).
- That my board dimensions are correct and the PCB will fit into the holder.
- That my component layout makes sense. Look at the far left of the board top view picture, and notice that there is clearance between the connectors and the little plastic tabs on the PCB holder that stick out into the board area.
I will go over making the model in detail later, but what I did was roughly:
- In Eagle PCB board layout, turn on only the dimension, via, and pad layers (layers 17, 18, and 20)
- In Eagle PCB board layout, use a ULP to create DXF of the pads, vias, and dimensions.
- Eagle includes DXF.ULP to create DXFs. However, this file does not produce DXFs that can be used to extrude a through-hole board. To get DXFs that CoCreate can extrude, I had to modify DXF.ULP and then delete and re-create the board outline using DoubleCAD.
- Import the DXF file into CoCreate and extrude it to 0.062″.
- Import models of all the components (fortuneately, all the parts have STEP models available from the manufacturer).
- Assemble (using mates) all the components onto the PCB
- Assemble the PCB holder
- Mate the PCB to the PCB holder.
It sounds so easy, but mechanical CAD software has a high learning curve, just like PCB software. However, if you’re a software guy, don’t be scared — I’m primarily a software guy, and if I can figure out how to make a PCB and then model it, then you can too.
I was originally planning on doing a series of blog posts on the FP-SMC-1 PCB covering just the automation-related aspects of the project, and not covering the details of using the tools (such as Eagle PCB). However, after I looked at various Eagle PCB tutorials, I decided that none of them explained Eagle the way I think it should be explained. I did not find any tutorials on making mechanical 3-D models.
So I have decided to write up a lengthy tutorial on how to design and make the FP-SMC-1 board. The tutorial will be on my Trac site, since I think Trac is better suited for a lengthy tutorial, but I will blog here about my progess (hint: don’t expect the tutorial to be done quickly).
March 18, 2009 3 Comments
In the past, Printed Circuit Boards were not a good choice for small volume machines because you had to pay significant Non-Recurring Expenses (say $500), and then buy 100 boards or so. If your design changed, well, all the boards in stock are now useless. If you make a mistake (somehow very easy to do with connectors), well, you either have to fix it (if possible) on all those 100 boards or throw them out. I’ve seen both problems first hand.
I still use break out boards and DIN-rail mounted terminal blocks for prototypes. Now with all the PCB prototype houses available, you can buy PCB’s in very small volumes with no NRE, so it makes sense to look at making PCBs even for very low volume designs. For example, with a credit card, for $96 plus shipping I can get, in four days, from Sierra Proto Express three double layer boards of the same design up to 60 sq in each (update 9/27/07 – well, Sierra’s changed their No Touch a bit; they claim the new pricing is even less expensive).
The idea is to design custom circuit boards to interface between my components (sensors, pneumatics, etc) and my I/O to reduce assembly time, improve reliability, and reduce troubleshooting. The PCB’s are mounted in DIN Rail holders.
Designing a simple 2 layer interface PCB is not that hard. For the first time through, you will need some help learning how to set everything up for the board house.
DIN-rail mount PCB holders are available from a number of sources. Two companies with a good selection of products are Phoenix Contact (especially UMK and UM series) and Weidmuller. I’ve used Phoenix Contact’s UMK series.
Phoenix, Weidmuller, Wago, and others make a wide variety of PCB mount terminal blocks including screw, clamp, and IDC. IDC terminals are very nice if the wire size is in the right range. Good sources for small volume electronics parts include Digikey, Mouser, and Jameco. Mouser typically has Phoenix products available in smaller quantities than Digikey.
June 10, 2007 No Comments