This workshop will walk you through creating PCB artwork using Inkscape and KiCad.
There are three workflows:
- Single-layer import style
- Multi-layer footprint style
These instructions trace the detailed procedure for the NYCR logo example. If you get stuck, checkpoint files are provided. That means you can skip steps and practice the techniques one step at a time.
Reproduce the steps with the example described here, then repeat the steps with your own graphics.
Look at these projects to see finished PCB artwork examples with the svg2mod workflow (Workflow 3). See "SVG editing" directories for source files. See ".pretty" directories for footprint files.
Example-ITP-camp-cardExample-NYCR-logo-cardExample-PaletteExample-Zoo
This example will use the NYCR logo. I found it by
- nycresistor.com
- drag-and-drop the logo to desktop
- It is already in SVG format!
You can repeat this process or use the checkpoint file included in the repo:
Use duckduckgo images and filter for Tools > Type > Line drawing. Also try searching for "vector" "graphics" or "clip art".
Or search for "free vector art" and find sites like vecteezy.com
Or create your own SVG by hand.
Or use a bitmap photo (PNG, JPG) and "trace bitmap" in Inkscape.
PCBs will either be purple or green depending on how you order them. FR4 is the base fiberglass material of the PCB. You can choose between 4 different colors to make your art: gold, light (tan or brownish), dark (green or purple), and white.
Layers are named based on side of board and material the shapes represent. So first we name F (for the front of the board) and then the ending is where that area is going (Cu, SilkS, or Mask). B is for Back.
All possible layers:
- F.Cu
- B.Cu
- F.Mask
- B.Mask
- F.SilkS
- B.SilkS
- Edge.Cuts (board cutouts)
There are 3 design layers per side (F.Cu, F.Mask, and F.SilkS). That means 8 possible permutations of them—think of it like 8 corners on a cube.
- 2 of those permutations are invalid because silkscreen needs soldermask to stick
- 2 of those permutations are visually redundant because soldermask hides the copper underneath
That means 4 distinct appearances, covered in this table.
| Appearance on board | Appearance on kicad render | Physical stackup | SVG layers |
|---|---|---|---|
| Tan or brown | Brown | FR4 | F.Mask |
| Green or purple | Green | FR4 + soldermask | None or F.Cu alone |
| Silver or gold | Yellow | FR4 + copper | F.Cu + F.Mask |
| White | White | FR4 + soldermask + silkscreen | F.SilkS |
| Invalid | Invisible | FR4 + silkscreen (silkscreen needs soldermask to stick) | F.SilkS + F.Mask |
Edge.Cuts is a separate mechanical layer for board outlines and cutouts. It doesn't participate in the visual layer permutations but can be used creatively for internal cutouts, slots, and expressive board shapes.
While there are four primary appearances, it is possible to modify them slightly. For example, putting B.Mask and F.Mask together creates a translucent brown effect (light shines through the board); putting B.Cu and F.Mask together creates an opaque brown effect.
Having F.Cu on its own results in copper beneath the soldermask, which is very slightly lighter than having dark soldermask without copper (no layers). The table puts both in the same row.
- In KiCad's
pcbneweditor, create a new board. The file ends with.kicad_pcb. - File > Import > Graphics > Select the SVG file
- Select the layer (F.Cu, F.Mask, etc.) and scale
- Move it around and rescale
Question: What is the difference between NYCR-logo-phase-0-downloaded.svg and NYCR-logo-phase-1.svg?
- Open NYCR logo in Inkscape
- Ungroup elements until letters are separate
- Regroup elements based on which letters go together
- Scale everything to desired size to fit on the board. You will not be abe to rescale after exporting the footprint.
- Create layers (F.Cu, F.Mask, F.SilkS)
Notice it looks the same so far, but now we have layers and more reasonable groupings.
These are specific to the NYCR logo. You will need to adapt them to your own graphics.
Step 1: NYC: Single-layer silk screen
- Move "NYC" to
F.SilkSlayer (Select elements, right click, Move to Layer...) - Color the layer something (I used pink)
Step 2: RESISTOR: Metal multilayer
- Move "RESISTOR" to
F.Masklayer. - Color the layer something (I used brown)
- Then duplicate and move to
F.Culayer (make it orange)
Step 3: Graphic: Putting it together
- Use Stroke to Path for the resistor itself
- Move it to
F.SilkSlayer. - Duplicate and move to
F.Culayer. - Change the color of the duplicate
- With the outer circle, use your imagination. I used subtraction and rescale operations to put annuli on
F.CuandF.Masklayers.
See ITPcamp example for a side-by-side workflow. Instead of multiple files (phase 0, phase 1, etc.), I kept everything in one file and used layers to organize the work.
Original: The PNG I pulled from the internet
Converted: Tracing the PNG based on brightness threshold. It is a single compound path.
Edited: The path was decomposed and then pieces were recomposed to make sense. E.g. the outer ellipse as one path; "ITP" as another path; and "camp" as another path.
Layered: The final design with layers organized on F.Cu, F.Mask, and F.SilkS. While converting, everything else not on these layers will be ignored.
It is recommended to use the GUI version below, but the terminal version is also available.
Install svg2mod
pip install svg2mod
- Create a folder inside your wanted kicad folder called
somename.pretty. It has to be in the kicad folder for kicad to find it - Convert to kicad module
svg2mod -p 1.0 -o nycr-logo.pretty/NYCR-logo.kicad_mod nycr_logo.svg
If precision is too low, it will look jagged. Decrease the precision value (e.g., -p 0.2) to get a smoother curve. The lower this number, the larger the file size.
💾 Checkpoint: NYCR-logo.kicad_mod
Use this web app to run the svg2mod command in your browser: https://taitphotonlab.com/apps/svg2kicad.html
- Drag and drop your SVG file (.svg)
- Adjust precision setting (default is usually fine)
- Convert
- Download the generated KiCad module (.kicad_mod)
Note that svg2mod.com exists to do the same thing, but it sends your file to their server (and is not currently working).
Edit footprint libraries: add nycr-logo.pretty
Confirm that it looks like this:
- Click "Place" button (hotkey:
A) - filter for "nyc"
- your footprint should appear in the list
- put it on the board somewhere
- ! Try flipping the footprint with "F" key. This is not possible with the direct import method.
- In Kicad, select the outline layer (Edge.Cuts)
- Select the rectangle tool
- Pick a size (a credit card is 3.375" x 2.125")
- Right click, select "Fillet" and set the radius (a credit card has radius 0.125", about 3.2mm)
You can pick different dimensions, big or small. You can even use a circle. You can embed Edge.Cuts into the SVG. It's up to you. I recommend staying smaller than a credit card if you want to carry it around.
💾 Checkpoint: NYCresistor-card-example2.kicad_pcb
- Practice moving the camera, play with raytracing, change board soldermask display color, etc.
- To change soldermask display color, go to File > Board Setup... > Physical Stackup
If you want to make changes to your artwork after creating the footprint:
- Make changes in Inkscape
- Save the SVG file
- Run the svg2mod command again using the online converter.
- Move the new .kicad_mod file to the library folder, replacing the old one.
- Quit and reopen
pcbnew.app(KiCad needs to reload the library) - Add component (hotkey:
A), find your library, and place the updated footprint - 3D view (hotkey:
Opt-3) will show you how it looks in real life. - Review the 3D model and make further adjustments in Inkscape
- Go to File > Plot
- Select these options
- Select the output directory "NameOfProject-tapeout"
- Click "Plot"
- Zip the gerber directory
- multiples of 3
- About $7 per board
- Go to https://oshpark.com/
- Drag and drop the gerber zip file into the window
- Enter your email
- Review each layer
- Change options (defaults recommended)
- Checkout (~$20 + free shipping)
- Wait for delivery
- Enjoy your new PCBs!
This is cheaper, faster, with more options (color, thickness, etc.). It also scales better for larger quantities (~70¢ per board @ 50 boards). Most of the cost is in tariffs and shipping, so we are going to prefer OSHPARK for prototyping, depending on class size.
It may have spiky edges or burrs on the board from the machines that cut them out. You can file these off with a metal file but make sure to have the board be wet when you are doing this as the filing will great fiberglass dust and you don't want that to go into your lungs or skin.





















