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

Posts from — April 2009

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

Version Control for Automation Developers

I highly recommend good version control software for all automation developers, even for companies with just one developer.  I think for most automation companies the requirements are similar to these:

  • Runs well on Windows (most automation vendors use only Windows)
  • Easy to install
  • Good documentation
  • Easy to learn, including easy to learn concepts and how to handle typical version control situations
  • Good tools support such as GUI clients, support for Visual Studio and/or Eclipse, web interfaces, and links to bug tracking systems
  • Software is mature and reliable
  • Available support
  • Distributed team support is not needed

I recommend looking at Subversion first.  It meets all the requirements.  It runs well on Windows, is easy to install, has excellent documentation, and is widely used.  Tool support is excellent; highlights include the famous TortoiseSvn GUI client and the Trac light weight project management and bug tracking software.  Best of all, Subversion (like all the other projects mentioned in this post) is open source, so there are no license hassles, no limitations on named users, and no yearly maintenance fees.

Trac, on the other hand, isn’t so easy to install.  I’ve covered easier ways to install Subversion and Trac before .  Another approach I am looking at is running Subversion and Trac under XAMPP, the portable Apache/MySQL stack.  If it’s easy to do, this might be the best approach.

Distributed version control systems are definitely taking off.  Git seems to be in the lead, with Mercurial second.  They do have some major advantages over Subversion (which I hope to cover in detail sometime this year).  You should more concerned with which system works best for you, not what other developers (who probably have very different needs) are using.

Git normally isn’t the best choice for automation developers.  It doesn’t run well on Windows (you have to use cygwin (which is like running Linux) or msysgit (which is incomplete and poorly documented)), is still lacking in tool support, and appears to be harder to learn than Mercurial or Subversion.

Git does have some advantages; for example, it can reliably track CVS or Subversion repositories, and make a Subversion repository track a git one.  I will be using git for a project that requires creating a Subversion repository that tracks a CVS repository (and having a git repository that tracks the CVS repository is a nice extra).

Fossil is an interesting new distributed version control system with integrated bug tracking and wiki (similar to combining Mercurial with Trac).  It doesn’t have the tool support, documentation,  and widespread use of git, Mercurial, or Subversion, but it is much smaller (a single small executable), runs well under Windows, and has a GUI available via the browser (Web 2.0!).

I’d love to try out and do a detailed comparison of Subversion, git, Mercurial, and Fossil, but my realistic plan is:

  1. Get Subversion and Trac running under XAMPP
  2. Get git running for the CVS repository tracking project

and then, of course, write some posts about my experiences.

April 2, 2009   No Comments