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

Posts from — May 2009

Improved Comments

Following Tom’s suggestion, I’ve added the Subscribe to Comments plug-in so you can be e-mailed when someone responds to your comments.  If you have problems with this feature, please add a comment here.

I’ve also added a page to provide a central place listing posts with on-going discussions.  I’m considering adding some posts just for discussion; for example, I could add a new post just for discussing air bearings.

In the not too distant future, I will look at further improving feedback options.  I do not like options that require casual visitors to register, either to comment or with a third party site such as Facebook or LinkedIn.

I’m also not a big forum fan — about the only forum software I liked was the old pre-2000 InfoWord Electric forums.  In general, I think most forum software does not promote good discussions.  On the other hand, I’ve seen mailing lists work very well.

I think wikis are excellent for some types of information, such as structured reference content (the air bearing discussion is a good candidate).  That’s why I added a trac server to this site — but it needs upgrading.

As always, I’m open to suggestions.

May 29, 2009   No Comments

Viewing STEP files with CAD Exchanger

CAD Exchanger is a new program written by Roman Lygin designed to ease CAD model interchange by providing file viewing and translation for a variety of 3-D CAD formats.

The beta currently supports importing, viewing, and exporting IGES, STEP, STL, and Open CASCADE BRep files; in the future, more formats will be supported.  It is based on Open CASCADE; it is currently free but not open source.

CAD Exchanger does not currently support measuring.  I prefer that the CAD Exchanger team concentrate on adding and improving its file translation abilities; there are already fine free solutions for measuring STEP files.

I tried CAD Exchanger using the same Norcomp HD26M model I used with other CAD programs.  The user interface does not currently support drag-and-drop.  The HD26M model loaded in a reasonable time; 3D performance (rotate, zoom, pan) is good, even on a laptop with crappy Intel graphics.  CAD Exchanger provides a nice selection of pre-defined views.  I didn’t try exporting.

Here is a picture of CAD Exchanger in action:

HD26M model in CAD Exchanger

HD26M model in CAD Exchanger

May 22, 2009   No Comments

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   2 Comments