Anth's Computer Cave

Introduction to CircuitDraw 0.2

CircuitDraw 0.2 (formerly part of the EstimCad Project) is the latest module from the ControlCadGUI Project, a suite of intelligent, embeddable GUI tools.

CircuitDraw, a program from EstimCad.

About CircuitDraw

CircuitDraw is a Python program for building diagrams for web tutorials and provides an easy way to share accurate details of your designs with others. It also aims to provide a visual system to use for setup wizards and inbuilt user guides for your own programs.

I write many articles for my websites and a lot of them require connection diagrams for various electronic components. CircuitDraw handles that, but I also want it to do more.

Most of the programs I write also involve connecting complex wiring, and I want the ability to import CircuitDraw into those programs to provide real-time representations of these circuits to the user.

As an example, for robotics programs CircuitDraw could provide a step-by-step guide for initial hardware setup, matched to the data from the host program. It could then show visual confirmation for future hardware configuration changes the user makes.

The program is at alpha version 0.2, and these advanced features are not ready, but I have already used its standard drawing features for quite a few articles in the Cave.

I am releasing an alpha versions now so people can try it out, or use this version to create their own program. CircuitDraw is open-source software and you can use it, modify it and distribute copies freely.

Current CircuitDraw features

Version 0.2 adds a larger selection of components, as well as a basic save and restore function. It also features improvements to cable connection methods between primary boards.

Primary components

CircuitDraw can currently work with four different types of primary boards, and several separate power supplies.

The boards CircuitDraw can currently draw.

The program opens on a blank page. From the drop-down menu on the left and you can choose to load a Raspberry Pi, an Arduino Uno, a breadboard, or a 75cm by 50cm PCB board. You can also choose one or two power supplies of your required voltage.

Secondary components

Once you have loaded your main components you can add secondary components from the lower drop-down menu on the left.

The onboard secondary components CircuitDraw can currently draw.

You can add resistors and various types of diodes to the PCB or breadboard. You can create several different IC chips like voltage regulators, MOSFETs and transistors. There are also capacitors, relays and terminal blocks.

The peripheral secondary components CircuitDraw can currently draw.

Peripheral devices include movement and distance sensors, motor controllers and motors.

You can add cables of different widths and colors between all the connection points on the boards and power supplies.

A motor-control circuit.

I am building new components into the programs as I need them.


CircuitDraw currently has a basic save function to allow you to modify your designs later on. This function also allows you to revert to earlier save points if you need to make changes.

Once you finish you can export your diagram to png format using Window's built-in screenshot utility then crop it to suit your needs.

Current limitations

As I mentioned earlier, CircuitDraw is still very much at alpha stage, and there is a lot to do.

No back button

There is no way to go back if you place a component or cable in the wrong place. Make regular saves to fall back to if something goes wrong.


The guided user interface for the program is easy to use for the default settings, but there are a few things you can only do through code modifications. These include changing the default positions for the primary boards or power, and changing component colors.


The program can only draw straight cables at this stage, which can cause layout issues in complex diagrams.

I am working on a routing system for the cables that can automatically turn right-angles where necessary to avoid obscuring other sections of the diagram.

In my diagrams I have been overcoming this by entering all components except the right-angle cables then exporting the diagram and finishing it in Windows Paint.


I have added only a basic breadboard so far. It has no power rails and the labelling is different to most breadboards. I have a better breadboard design coming soon.


So far I have the Raspberry Pi and the Arduino Uno, because these are the boards I use for my projects. I will build more boards in the future.

Computer requirements

Any modern Windows or Linux computer will run CircuitDraw, but you will need Python 3 installed. If you need help installing Python I have a tutorial here.

Series format

In this article I have explained what CircuitDraw is, and what it can - and can't - do.

In the next article I'll show you how to download and run CircuitDraw on your system, and show you the basic controls.

In following articles I'll show you some more advanced configuration options, then cover the basics of creating your own components for the program.

Stay tuned...




Next: Using CircuitDraw to create diagrams



Leave a comment on this article

Leave a comment on this article