How To Design Custom Components for Circuit Canvas

Circuit Canvas is a tool to easily design good-looking schematics and wiring diagrams for breadboard, perfboard, and other prototyping boards. You can design your own custom components by simply creating a vector drawing of your component in SVG. But to make them snap into the grid and automatically recognized connection points, there are a few details that you need to pay attention to.

You can download an example custom part for Circuit Canvas schematics view here: custom-schematic-symbol.svg

Note: We also support importing components made for Fritzing in the Layout canvas. So if you already made a component for fritzing, just drag and drop it into the Layout canvas to import it. Or use our Fritzing Converter Tool to convert it to a Circuit Canvas compatible SVG file that you can make changes to.

Step 1: Setup grids, scale, and units

You need to draw your component as a vector file. We recommend using Inkscape which can be downloaded for free from this link.

To make the component work with the grid in Circuit Canvas, set your document grid to 5px for schematic components, or 2.5px for layout components. And set the scaling to 1. All units must be in pixels.

Inkscape settings for drawing custom symbols with Circuit Canvas

Step 2: Draw your component

Once you've setup the grid, scaling, and units, you can start drawing your component.

Drawing custom schematic symbol with Circuit Canvas

Remember that schematic components use a different grid (5px) than layout components (2.5px). And make sure all units are in pixels to avoid issues.

Step 3: Prepare your document and save it

Once you're happy with your drawing, you need to add connection points. A connection point is a circle with the class "connection_point". For now, just add a circle with a fill color where you want the connection point. All connection points should be placed on a grid-point. And they should be on top of everything else.

Adding connection point circles to custom schematic symbol with Circuit Canvas

Resize your document to the size of the component. The size should be a multiple of the grid size. For example for a schematic component that uses a 5px grid, the width could for exampel be 45px or 50px. But it can't be 43px.

Whitespace on the sides or top/bottom is fine. Try to place your component in the center. Make sure your connection points are on the grid.

Resizing custom schematic symbol with Circuit Canvas

Save your component as Optimized SVG.

You'll find that by choosing "Save As" in Inkscape. In illustrator, I'm not sure, but try to find something that will save in plain svg with all styles as attributes, not css.

Saving custom schematic symbol for use with Circuit Canvas

One small thing to be aware of is the width-to-height ratio: If the width divided by the grid size is an odd number, so must the height divided by the grid size. If it's an even number, same goes for the height. If you don't follow this rule, rotating the component will be off. If you have no idea what I'm trying to say here, here's a simple way around it: Make sure your width and height is 10px, 20px, 30px, 40px, etc (and not 34px, 29px, 46px, or anything that can't be divided by 10).

Step 4: Define your connection points

Now that you've saved your svg file, the last step is to add the "connection_point" class to the circles that represent your connection points. Open your saved svg file in a text editor and locate the circles. Add class="connection_point" to the circle. Example:

<circle class="connection_point" x=5 y=10 r=1.5 fill="000000">

Adding connection point class to custom schematic symbol with Circuit Canvas

Save your file, and you're ready to import the component!

Step 5: Importing the component

To import your custom component into Circuit Canvas, just drag and drop it into the correct canvas!

There's also an "Import Component" item under Project in the top menu that let's you import components. And by the way, our import tool also supports conversion from Fritzing ;)

Importing custom symbol to Circuit Canvas

Questions, feedback, requests?

We want to make this the best tool there is to easily draw beautiful circuits for teaching, sharing, documentation, and whatever else you need it for!

If you have any questions, feedback, or feature requests, you can get in touch by sending an email to info@circuitcanvas.com.