Introduction: How to Make Custom PCB Shapes (with Inkscape and Fritzing)

About: I like to build stuff (specially Arduino robots) with simple materials using DIY techniques and simple tools.

If you are a beginner and need a PCB with custom shape... and need it in the shortest time as possible... OR if you don't want to spent a lot of time learning how to work with advanced softwares, because you make eventually a board or other... this tutorial is for you!

We will use two very friendly softwares:

1. Inkscape: is a free and open-source vector graphics editor. We will use it to make the PCB shape, which will later be used in Fritzing to design the PCB.

2. Fritzing: also free and open-source, is the tool we will use to design the PCB (arrange the parts, do the routing, export the files to produce the PCB).

A few notes before starting...

1. For this tutorial, I created PCBrain, which is a brain-shaped PCB, based on my YouTube channel logo.

2. The focus of this tutorial is to show you how custom shapes can be made easily... so, forget the simplicity of the PCB itself... it's more artistic and just an example of a shape.

3. Despite being easy to use software, Fritzing is not limited to simple designs ... you can also create more complex PCBs.

Here we go!

Step 1: Creating a Custom Shape With Inkscape

Inkscape has many tools for creating shapes, for example: ellipses, arcs, polygons, stars, spirals, freehand lines.

You can also import any image and use it as a "base" for your drawing (as I did in PCBrain).

After completing the drawing, follow the steps below to get a file with the required attributes.

1.1. Edit > Preferences > Behavior > Simplification threshold > 0,0001

1.2. Path > Simplify

(Note that nothing has changed in the drawing. But if you do not, the shape will be distorted and the manufacturer will not be able to produce the PCB. Therefore, do not skip this step.)

1.3. Add a sublayer named as "board" with a copy of the drawing/shape.

1.4. Add a sublayer named as "silkscreen" also with a copy of the drawing/shape.

(The "silkscreen" sublayer should stay above "board" sublayer. Delete the drawing in the "main" layer - for "main" layer I mean the "Layer 1", that inkscape had already in a new document.)

1.5. Fill and Stroke for "silkscreen": no fill, white stroke, width of the stroke 0,008 inch.

1.6. Fill and Stroke for "board": green fill, no stroke.

1.7. Select both drawings and go to "Align and Distribute", and "Center on vertical axis", then "Center on horizontal axis".

1.8. File > Document Properties > Resize page to content > Resize page to drawing or selection

1.9. With the XML Editor, change the ID of the "board" layer naming it as "board".

1.10. Change the ID of the "silkscreen" layer naming it as "silkscreen".

1.11. Change the ID of the path in the "board" layer, naming it as "boardoutline".

1.12. Save the file as Plain SVG (File > Save As...).

Step 2: Designing the PCB With Fritzing

As I said before, Fritzing is very easy to use even for beginners... but of course minimal knowledge of electronics is required.

Fritzing has several parts that you can drag and drop into the PCB. You also have access for many Sparkfun product layouts, Arduino boards and shields layouts.

After your Fritzing project is completed, follow the steps below.

2.1. Routing > Design Rules Check (DRC)

2.2. File > Export > for Production > Extended Gerber (RS-274X)

Step 3: Turn the Project Into an Actual PCB (Assembly and Soldering)

You can etch the PCB yourself at home. But I ordered the PCB with a professional manufacturer (JLCPCB -, which offer affordable prices and high quality manufacturing. Therefore, there is no reason to do so at home. Plus you will have a professional looking PCB created by you!

After receiving the plates in my workshop, I just needed some materials and tools listed below to assemble them.

Electronic parts:

  • 8x 3mm LED;
  • 8x 270 ohm 1/4W resistor;
  • pin headers.


  • soldering wire;
  • soldering flux paste;
  • tape.


  • soldering iron;
  • cutting pliers.

The assembly and soldering of this project is quite simple.

Started by placing and soldering the LEDs, then the resistors and the pin headers. I use a bit of solder flux paste to make the work easier. Solder paste makes the PCB dirty. To clean it, I use a cotton swab with acetone.

Step 4: Arduino Code

PCBrain has a pin layout to connect to an Arduino UNO board.

To complete this project, I created a simple code to blink the board LEDs, simulating brain synapses.

Simply connect the Arduino to a PC, open the Arduino IDE with the supplied code, and send it to the board.

Hope this can be helpful for someone.

You can use all the files shared here and have a go yourself.

Although now the steps are simple, it took a while for everything to work ... so I tried to compile all the tips here to make it very simple for those looking for an easy method of creating custom formats.

Please also watch the video... it should clarify even more the steps. And if you enjoyed it, consider subscribing to my YouTube channel:

Thank you!