Merging modern software development with electrons and metal
Random header image... Refresh for more!

Category — Series

Eagle 3D PCBs with Alibre: Extrusion Notes

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).

Simple Extrusion

Simple Extrusion

So what can go wrong?  Here are some situation where Alibre Design will not extrude your sketch:

  1. Overlapping objects
    1. 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.

      Overlapping Lines

      Overlapping Lines

    2. A thick rectangle will extrude OK, but you can’t make one in Eagle PCB (Eagle will only create filled rectangles).
    3. 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.
    4. 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.
  2. Overlapping lines on different layers
    1. 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.
    2. The Extrude-Different Layers.DXF file shows this scenario; below is the error message when I import and try to extrude it.

      Errors Extruding Duplicate Lines

      Errors Extruding Duplicate Lines

  3. Extruding PCB traces or silkscreen text.
    1. 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.
    2. 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.

      Extruding Text & Traces

      Extruding Text & Traces

    3. 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.
      Text & Traces - outline

      Text & Traces - outline

      Text & Traces - Wire Width

      Text & Traces - Wire Width

      Text & Traces - Filled Wire Width

      Text & Traces - Filled Wire Width

September 1, 2010   1 Comment

Eagle 3D PCBs with Alibre: More on Creating DXFs

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?

  1. 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.
    Pads created by Eagle DXF ULP

    Pads created by Eagle DXF ULP

    1. Notice the green  squares (which I use for pin 1).  I haven’t seen a square drill bit yet…
    2. 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).
    3. 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.
  2. The DXF ULP creates the pads using object blocks (with different blocks for the different pad shapes).
    1. 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.
    2. 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.

      Problem Copying Blocks

      Problem Copying Blocks

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:

  1. I changed the Via function to always create a circle with the drill diameter on the dimension layer (layer 20).
  2. 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.

DXF ULP Options

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.
    DXF no Wire Width and no Fill Areas

    DXF no Wire Width and no Fill Areas

    DXF using Wire Width, not using Fill Areas

    DXF using Wire Width, not using Fill Areas

    DXF using Wire Width and Fill Areas options

    DXF using Wire Width and Fill Areas options

September 1, 2010   2 Comments

Eagle 3D PCBs with Alibre: Extruding the PCB

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

  1. 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.
  2. Make sure your borders have a width of 0.
  3. In the Eagle PCB board editor, turn on only the dimension, via, and pad layers (layers 17, 18, and 20).
    Layers for DXF creation in Eagle

    Layers for DXF creation in Eagle

    FP-SMC-1 in Eagle set for DXF creation

    FP-SMC-1 in Eagle set for DXF creation

  4. In the Eagle PCB Board editor, run the dxf-fsw.ulp ULP.
    1. Select a file name for Output file; I used FP-SMC-1.dxf with the appropriate path for my Eagle PCB setup.
    2. The Always vector font, Use wire widths, and Fill areas setting should not matter.
    3. The units do matter: you need to know them when you import the DXF.  I used inches.
    4. Then run the script by pressing OK.
    5. You can download my resulting file here FP-SMC-1.dxf

      Running the dxf-fsw ULP

      Running the dxf-fsw ULP

  5. Close Eagle PCB.
  6. Start Alibre Design.
  7. 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.
    1. File Units need to match the units you used when creating the DXF in Eagle (I used inches).
    2. I don’t think Maintain Projection matters.
    3. Importing Only Visible Layers makes sense.
    4. Start importing by pressing OK.

      Importing DXF into Alibre

      Importing DXF into Alibre

  8. Select the Sketch->Activate 2D Sketch menu  (or press Ctrl+K).
  9. Select the Edit->Select All menu (or press Ctrl+A)
  10. Select the Edit->Copy menu (or press Ctrl+C)
  11. In the Alibre Home window select the File->New->Part (or press Ctrl+Shift+T)
  12. Select the Sketch->Activate Sketch menu (or press Ctrl+K)
  13. Select the plane to use for your new sketch.
    1. 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.
    2. 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).
  14. Select the Edit->Paste menu (or press Ctrl+V) to paste the DXF drawing into the sketch.
    1. You could select and move the sketch around if desired.

      FP-SMC-1 DXF pasted onto the sketch

      FP-SMC-1 DXF pasted onto the sketch

  15. Select the Sketch->Activate Sketch menu (or press Ctrl+K) to deactivate the sketch mode.
  16. Select Extrude Boss by menu (Feature->Boss->Extrude) or icon (typically the top right icon).
    1. Verify the correct sketch is selected.
    2. Use To Depth for Type.
    3. Use your PCB thickness for depth (0.062″ or 1/16″ for me).
    4. I reversed the extrude so the sketch is on top (probably doesn’t matter a lot).
    5. Leave everything else with the default settings, except you may want to name the extrusion.
    6. Start the extrusion by pressing OK.

      FP-SMC-1 ready for extrusion

      FP-SMC-1 ready for extrusion

  17. Save the PCB using the File->Save As menu (Ctrl+Shift+S); mine is available as FP-SMC-1 PCB.AD_PRT

    The extruded FP-SMC-1 PCB

    The extruded FP-SMC-1 PCB

  18. 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

Eagle 3D PCBs with Alibre: Overview and Alternatives

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:

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:

  1. Alibre Design Standard does not do photo-realistic renderings
  2. 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.
    1. This could make it harder to model SMT PCBs; on through hole PCBs, it’s obvious where the parts go.
  3. 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   3 Comments

A Bunch of Boards

First Batch of PCBs (assembled)

First Batch of PCBs (assembled)

I’ve been slowly working on a bunch of PCBs, and the first batch is finally here.

In the coming weeks, I will discuss each board in more detail, fill in the trac pages, and add the Eagle PCB files to my subversion repository.  I will also cover any mistakes I find, and possible improvements.

The initial lineup consists of the:

  • FP-SMC-1, which is finally here!  It’s a demo board designed to show how to design a custom PCB to replace typical control cabinet wiring.  It connects a Panasonic FP series PLC to a SMC pneumatic manifold.
  • CO-DB9-RJ45-2, designed to convert a CANOpen DB9 connector to dual RJ45 connectors.
  • CO-HDR-RJ45, designed to convert a CANOpen terminal block header to dual RJ45 connectors.
  • CO-M12-RJ45, designed to convert a CANOpen M12 connector to dual RJ45 connectors.
  • CO-TB-RJ45, designed to convert a CANOpen terminal block to dual RJ45 connectors.

November 5, 2009   3 Comments

Cool Components III: Liquid Lens 2D Barcode Readers

I’ve used industrial barcode scanners a number of times, and they work well, especially the raster models.  The laser barcode scanners have a wide scan range and can handle a substantial amount of variation in label position.

My favorite  brand  is Microscan; I’ve also used other brands with good results.  The Microscan QX-870 is a typical  barcode scanner: it has 10 scan lines, can do 300 to 1400 scan/sec, has  a read range of 1″ to 30″, can read all the normal 1D barcodes (UPC, Codabar, Code 39, Code 128, etc)  as well as the PDF417 and Micro PDF417 2D barcodes.

However, most 2D barcodes (such as the popular Datamatrix) need an area sensor.  In other words, you can’t use a laser scanner, you have to use a camera.  Now finding a lens that has a 29″ depth of field (from 1″ to 30″) is challenging.  Of course, the barcode reader could use autofocus, but with a normal lens, that adds a lot of complexity, cost, and still isn’t perfect.  One Microscan 2D barcode reader had a halfway solution: the reader could cycle through a preset set of focus positions until it found a good read.  I wasn’t impressed (although to be fair, I never tried that model).

To make matters worse, Datamatrix codes are often used in direct marked applications; for example, using a laser or ball-peen to create a barcode directly on a metal aircraft part.  Creating lighting that is affordable, compact, and can work on anything from a shipping box to a reflective metal part is hard.

I’ve thought for a long time that liquid lenses (now available from optical suppliers such as Linos) could solve the depth of field problem by allowing affordable and rapid autofocus.  Well, they’re here (and both claim to be “the first”): Cognex has the Dataman 200 series, and Microscan has the QX Hawk with liquid lens and modular zoom.

I think this is a big deal; for example, the QX Hawk claims a read range of 1″ to infinity.  Unfortunately I don’t have any personal experience with either reader, but if I need to read 2D barcodes in the future, I will definitely check both out.

October 28, 2009   No Comments

Cool Components II: IDEC Flush Push Buttons

IDEC LW7L Push Buttons

IDEC LW7L Push Buttons

Industrial style does matter.   That’s one reason I like IDEC’s LW7L flush mount pushbuttons.  Recently I was looking at some of our old equipment with Telemecanique pushbuttons that stick out over 5/8″ — those buttons are functional, but look dated.

The LW family of buttons is extensive (well over 10,000 combinations are available), but the models I like are the  LW7L-M1C64MG and similar.  What is good about them?

  • They only need a light touch to operate (lighter than some other IDEC push buttons such as the HW2L series)
  • High quality
  • Long life LED lights available in amber, green, red, blue, white, and yellow.
  • Powered directly by 24V (no resistors to worry about — I’ve destroyed LED lights from other companies).  6V, 12V, 120V, and 240V models are available, but I always use 24VDC.
  • They are easy to install.
  • The price is reasonable (around $30).  The Telemecanique buttons were much more expensive.   They aren’t the cheapest (e.g. the HW2L buttons are about $20), but I think the difference is well worth it because of the next point.
  • They look great, with the square shape and flush mounting.  The traditional round, stick out 22mm push button makes equipment look like a retro-encabulator from the 1950′s.  I consider the extra cost over the HW2L buttons a marketing expense.

I also really like IDEC’s XW series of E-STOP switches — especially the models with a LED light.

July 10, 2009   No Comments

Cool Components I: Industrial Piezo Motors

I’ve discovered a lot of neat automation components over my decade plus doing system integration.  Unfortunately, I haven’t been able to use most of these products, but I’m starting a new series to highlight the most interesting ones.

Today’s focus is piezoelectric motors.

A piezoelectric material generates an electrical potential when stress is applied.  The reverse piezoelectric effect is when applying an electrical potential creates a stress in the material, changing its size slightly (typically by 0.1% or less).  This change in shape can be used in several different ways to create motion.

I first heard about piezoelectric motors back in the 1980′s when Canon introduced the traveling wave ultrasonic motors with their EOS autofocus camera system.

The first industrial piezo motors I heard about where piezo actuators, which just use the change of size in the piezo material to create movement.  This motor type is highly accurate (<1.0 nm), but the maximum move size is very small (typically <100 micron, although I’ve seen up to 500 microns).   For longer moves, you have to combine a traditional stage with the piezo actuator.  A variety of companies make this motor type; the ones I think of first are PI (Karlsruhe, Germany) and Mad City Labs (Madison, WI, USA).

Then I heard about the Nanomotion (Yokneam, Israel).  Nanomotion motors work by driving a piezo leg against a ceramic plate in an ellipse at high frequency.  Their industrial motor capabilities include:

  • The same motor can be used for linear or rotary motion (with circular drive strip).
  • When power is off, the motor holds the current position.
  • Travel up to 2000 mm, speeds of over 200mm/sec
  • Force up to 3.2 kg-f
  • Motor can be operated in DC (actuator) mode to provide nanometer level precision.
  • Good for some specialized applications, since the motors are non-magnetic, and vacuum-compatible versions are available.

You must use a Nanomotion amplifier; analog input is standard,  but  a CANOpen interface is available (it’s more expensive, since it uses the same analog amplifiers internally).  The amplifiers generate the high voltages (around 300V IIRC) required to drive the motors.

Nanomotion also sells high precision linear and rotary stages.  The rotary stages start around US$5000; just a motor and drive combo is around $1000 (but as always, check with Nanomotion for exact pricing).  Allmotion is now selling drives (controller and amp) for the Nanomotion HR series; pricing starts at $395.

A few years ago Nanomotion was acquired by Johnson Electric, a large Hong Kong-based manufacturer of motors and such, since Johnson Electric wanted to use their technology for cell phone camera modules.  Now Nanomotion produces small motors, zoom lenses modules, zoom camera modules, and custom driver ASICs, although you might need to be a high volume OEM to buy some of those products.

Next I heard about Piezo Motor AB (Uppsala, Sweden) which makes the Piezo LEGS and PiezoWave motors, which are also sold by Faulhaber (MicroMo in the US).  This Faulhaber link gives a nice summary of the standard PiezoWave linear motor and Piezo Legs linear and rotary motors.

At Photonics West a few years ago, I discovered DTI Piezotech (Sarasota, FL, USA) and New Scale Technology’s (Victor, NY, USA) Squiggle motor.

The Squiggle motor works by creating ultrasonic vibrations that cause a nut to travel in or out.  They are oriented towards small, large volume applications.  New Scale’s standard motors range from 6mm travel and 0.3N force to 50mm travel and 5N force.

New Scale has an extensive product line, including standard motors, custom motors, driver ASICs, driver boards, development kits, USB control and driver,  standard stages, and magnetic position sensors.

New Scale has a web store that sells a variety of their products — I like it!

DTI Piezotech is part of Discovery Technology International which makes bioinstrumentation.  Their initial product was a rotary motor (the first I heard about); IIRC, initially they only sold the motor as part of a complete, high precision stage.  Now they have really broadened their product line, with a variety of sizes  of both linear and rotary motors.

Standard rotary motors range from 2 mM-m to 6 N-m force; linear motors go up to 50N-m and 1,000 mm/sec.  Like Nanomotion, DTI linear motors can also operate in actuator mode for ultra precise positioning.   I couldn’t find much information on their drivers, but they do have development kits, with controller boards, available.

One of my readers (thanks, Bob!) mentions yet another company, Elliptec (Dortmund, Germany), with yet another approach (piezo controlled lever moving a gear seems like a decent description).

I took a quick look at PI’s web site; they now sell a broad range of piezo motors, including actuators, rotary motors, and linear motors.

Finally, while doing research for this post, I came across PCB Motor (Hillerod, Denmark) which makes parts that can assembled on PCBs to create motors on printed circuit board.  They have on-line ordering of their development kits.

BTW, the wikipedia piezoelectric motor page is pretty weak – it doesn’t cover most of the companies or approaches I cover.

I learned a lot writing this blog post – I hope you enjoy it!

Update Feb 2011: Another company making piezo motors is CEDRAT of France.  They make short range piezo actuators with their own technology, such as the APA (amplified piezo actuators).

PI’s products are definitely not inexpensive, typically at least several thousand dollars for motor and controller (that’s not to say they aren’t worth it, but I like to have an idea of costs).

June 5, 2009   1 Comment

Book Review: A Comprehensive Guide to Controller Area Network

A Comprehensive Guide to Controller Area Network by Wilfried Voss, Copperhill Media, 2008.

Summary: 8.0/10,  recommended reading if you are developing systems using CAN or higher level protocols such as CANOpen.

The Guide is an affordable (<$15) book on the low level details of the CAN protocol.  It covers in detail the different frame types (data, remote, error, and overload), network arbitration, error detection and recovery, and data transfer synchronization.

The Guide points out undefined or ambiguous areas in the official specifications (Bosch, ISO, CiA), including updates based on experience (such as the CiA’s recommendation not to use remote frames).   The book concentrates on the base CAN protocol; it does not cover higher level protocols (such as CANOpen) in any detail, nor does it describe the specifics of CAN controllers or transceivers.

The book is well written; I’m an automation software developer, not a low level embedded developer, but I was able to follow the explanations without any major problems — I’d say it was easier to read than many software development books.

If all you want to do is get a basic CANOpen control system running, then you can skip this book.  But if you to truly understand CAN and what it can do, then I highly recommend reading both this book and Embedded Networking with CAN and CANOpen. Here are some things I learned from the Guide:

  • How fast CAN really is  (data throughput, error recovery time, etc), including protocol overhead, for both standard and extended addressing.  Serial network protocols have a substantial overhead.
  • Termination resistors have be able to dissipate at least 220 mW.
  • Terminators should be at the network ends, not inside the CAN device.
  • The details of error counting and error frames.  I had been wondering what the Copley CMO library’s ErrorFrameCounter property really meant; now I know.
  • The meaning of the bit time segments  and how bit resynchronization works.  The Grid Connect (aka Acacetus) CAN-USB Light manual refers to the bit segments (sync_seg, prop_seg, phase_seg1, phase_seg2, SJW, etc) but didn’t explain them.  Now I understand bit segments.

The Guide‘s network topology recommendation (straight line topology with minimal stub lines with terminators at the ends) match what I already do.  I was happy to see the correct recommendation for shielded cables (connect the shield at one end only).

I do have some small nitpicks and suggestions for improvement:

  • The book is repetitive; the exact same explanations with the same diagrams appear multiple times, as do various notes and warnings.  I find this annoying when reading the book straight through; however, overall, it’s probably good — when using the book as a reference, I want relevant warnings in the section I’m using, not just in one place in the book.
  • The diagrams could be better explained; there is no key to explain the dark black lines (high line only means that field is always recessive; low line only means the field is always dominant; both high and low lines means field can be either depending on the message — maybe that’s obvious to hardware guys).
  • The diagrams could be clearer: a bit larger with more contrast.
  • OK, the book isn’t a comprehensive guide to CAN transceivers.  But I would have appreciated some warnings about common physical layer gotchas.

May 6, 2009   No Comments

CANOpen Adapters

I am working on a series of CANOpen cable adapters.  For example, here is a model of a DB9 to dual RJ45  adapter:

CANOpen DB9/dual RJ45 adapter

CANOpen DB9/dual RJ45 adapter

I made sure it will work well with AMC DX15C08 Digiflex drives to convert the DX15C’s DB9M to two RJ45s.  The Phoenix header (in green) is for supplying power to the DX15C’s isolators.  Since I will probably make some more changes (for one, I don’t think there is room to screw the adapter’s DB9F to a DB9M), I am not posting the design files yet.

April 30, 2009   No Comments