Friday, 30 April 2010

Why are CAD tools so hard to use?

Years ago, when IBM was introducing thousands of its employees to the brave new world of object-oriented software, I found myself co-teaching an OO Analysis and Design course to a group of IBMers.

My co-instructor and I were both independent contractors, but we were supported by an old friend who worked for IBM.

After a particularly frustrating practical one of the students asked "Why are we using Rational Rose to draw our designs? It sucks."

The IBMer replied: "All modelling tools suck. It's just that Rose sucks less."

I've just had a similar experience trying to get started with Schematic Editors. I wanted to draw a schematic for the Veroduino - the low-cost, compact Arduino clone that I built a few days ago.

I'd read that TinyCAD was very intuitive. I got going fairly quickly, but could not find a library with all the parts that I wanted. I tried to add a new library of my own; that process turned out to be so intuitive (not) that it crashed the software.

I took a look at Kicad, but a fair bit of work is required to install under Ubuntu, and the software seems to be the work of a single developer.

Eagle was the next port of call. Eagle has become a de facto standard in hobbyist electronics; lots of open-source hardware designs are available in Eagle format, lots of PCB fab shops accept Eagle files, and there is a free version available for non-commercial use. My friend Geoff Drake has had good results with it.

I know I'm going to have to grips with Eagle at some stage, and I've signed up for an Introduction to Eagle for Advanced Arduino Users run by Tinker London next month. I thought I'd have a dry run, so I tried following SparkFun's Eagle Schematics Tutorial on my own.

I worked through the tutorial without problems, but then tried to create my Veroduino Schematic. After an hour I gave up. There were just too many surprises.

Either I am doing things wrong, or the software is very counter-intuitive. I suspect that all Schematic software sucks, but that Eagle sucks less. I hope the course gets me going, but meanwhile I have a dilemma: how can I produce reasonable schematics for the boards I am working on right now?

I've ended up writing a little DSL in Python for producing schematics. It's been fun, and the results look great. I've nearly finished the Veroduino schematic; your should finally get to see it tomorrow

No comments:

Post a Comment