Overview
The eagle2fritzing tool helps to streamline converting your PCBs designed in Eagle to Fritzing parts for folks to create circuit diagrams. But what if you use KiCad? The kicad2fritzing tool is based on the eagle2fritzing workflow:
- Target a PCB file
- Run the script
- Edit the parameters file, rerun the script (if needed)
- Check the SVG file outputs
- Check the part in Fritzing
- Ship your new Fritzing part!
The biggest difference is that kicad2fritzing is Python only, meaning no executables to compile. Everything can run from the cloned repository from the command line.
Page last edited July 07, 2026
Text editor powered by tinymce.
Software Dependencies
You'll need some software setup on your computer and, if you're reading this guide, chances are you already have them installed. All of these can run on Windows, macOS or Linux:
Go to each application website, download and install per the instructions for each application.
Page last edited July 07, 2026
Text editor powered by tinymce.
Git Clone
First, you'll clone the kicad2fritzing repository to your computer. The repo is set up so that all of the files and folders are in the expected locations for the Python script.
In a terminal window or the GitHub desktop app, navigate to the main folder where you want kicad2fritzing to live. Then clone the repository either through the GitHub desktop app or terminal:
git clone https://github.com/adafruit/kicad2fritzing.git
After cloning, navigate to the folder on the computer. You'll see the repository folder structure with all of the files.
Install Dependencies
kicad2fritzing does have one Python dependency, svgelements. To install it, run this command in a terminal:
pip install -r requirements.txt
Page last edited July 07, 2026
Text editor powered by tinymce.
Run kicad2fritzing
Now that kicad2fritzing has been cloned and the Python dependencies have been installed, you can try running kicad2fritzing. First, you'll take your KiCad PCB (.kicad_pcb) file and copy it to the /Fritzing_Test folder.
The Adafruit VCNL4030 STEMMA QT breakout file will be used for testing. This file was originally created in Eagle and was opened and converted in KiCad. You can download the file below to follow along:
cd /path/to/kicad2fritzing
Then, run the script:
python -m kicad2fritzing.convert
After the script runs, you'll see a list of matched subparts and the location of the generated SVG files print out.
Page last edited July 07, 2026
Text editor powered by tinymce.
The Params File
Now that you've run the script, you can update the XML parameters (.params) file to ensure that all of the signal connections are included when the script runs and they are in the correct location for the Fritzing schematic view.Â
Navigate to the parameters file. It is located in /Fritzing_Test/params. You can open the file in a text editor.
The file defaults to having the PCB solder mask for the breadboard view SVG be black (#000000). You can edit that value to be any HEX color:
<breadboard breadboard-color='#000000'>
Then, you can edit the location for the signals. Here is how the VCNL4030 signals are generated by default:
<power> <!-- left to right --> <connector signal='VCC' id='6' package='JST_SH4' element='CONN3' name='2' type='smd'/> <connector signal='VCC' id='21' package='1X06_ROUND_70' element='JP1' name='1' type='pad'/> <connector signal='3.3V' id='22' package='1X06_ROUND_70' element='JP1' name='2' type='pad'/> <connector signal='VCC' id='65' package='JST_SH4' element='CONN4' name='2' type='smd'/> </power> <ground> <!-- left to right --> <connector signal='GND' id='5' package='JST_SH4' element='CONN3' name='1' type='smd'/> <connector signal='GND' id='9' package='JST_SH4' element='CONN3' name='MT1' type='smd'/> <connector signal='GND' id='10' package='JST_SH4' element='CONN3' name='MT2' type='smd'/> <connector signal='GND' id='23' package='1X06_ROUND_70' element='JP1' name='3' type='pad'/> <connector signal='GND' id='64' package='JST_SH4' element='CONN4' name='1' type='smd'/> <connector signal='GND' id='68' package='JST_SH4' element='CONN4' name='MT1' type='smd'/> <connector signal='GND' id='69' package='JST_SH4' element='CONN4' name='MT2' type='smd'/> </ground> <left> <!-- top to bottom --> <connector signal='INT' id='26' package='1X06_ROUND_70' element='JP1' name='6' type='pad'/> <connector signal='SCL' id='8' package='JST_SH4' element='CONN3' name='4' type='smd'/> <connector signal='SCL' id='24' package='1X06_ROUND_70' element='JP1' name='4' type='pad'/> </left> <right> <!-- top to bottom --> <connector signal='SDA' id='66' package='JST_SH4' element='CONN4' name='3' type='smd'/> <connector signal='SDA' id='25' package='1X06_ROUND_70' element='JP1' name='5' type='pad'/> <connector signal='SDA' id='7' package='JST_SH4' element='CONN3' name='3' type='smd'/> <connector signal='SCL' id='67' package='JST_SH4' element='CONN4' name='4' type='smd'/> </right>
The power, ground, left and right categories correspond to how the signals will be shown in the schematic view in Fritzing. You'll notice that in the case of the VCNL4030, two of the three SCL signals are located on the left instead of the right. You can cut those two lines from the left section and paste them into the right section.
<left> <!-- top to bottom --> <connector signal='INT' id='26' package='1X06_ROUND_70' element='JP1' name='6' type='pad'/> </left> <right> <!-- top to bottom --> <connector signal='SDA' id='66' package='JST_SH4' element='CONN4' name='3' type='smd'/> <connector signal='SDA' id='25' package='1X06_ROUND_70' element='JP1' name='5' type='pad'/> <connector signal='SDA' id='7' package='JST_SH4' element='CONN3' name='3' type='smd'/> <connector signal='SCL' id='67' package='JST_SH4' element='CONN4' name='4' type='smd'/> </right>
You can also find additional signals in the unused section. You can then cut and paste any signals that you want to include from the unused section into the correct power, ground, left or right sections.Â
You can also move unwanted signals into the unused section. For the VCNL4030, you'll see that four of the GND signals have "MT1" or "MT2" as their name. These correspond with the mechanical ground pads for the STEMMA QT connectors, which you won't want as Fritzing connectors since you would never wire to them. You can move these signals to unused.
<ground> <!-- left to right --> <connector signal='GND' id='5' package='JST_SH4' element='CONN3' name='1' type='smd'/> <connector signal='GND' id='23' package='1X06_ROUND_70' element='JP1' name='3' type='pad'/> <connector signal='GND' id='64' package='JST_SH4' element='CONN4' name='1' type='smd'/> </ground> --- <unused> <connector signal='GND' id='9' package='JST_SH4' element='CONN3' name='MT1' type='smd'/> <connector signal='GND' id='10' package='JST_SH4' element='CONN3' name='MT2' type='smd'/> <connector signal='GND' id='68' package='JST_SH4' element='CONN4' name='MT1' type='smd'/> <connector signal='GND' id='69' package='JST_SH4' element='CONN4' name='MT2' type='smd'/> <connector signal='' id='11' package='FIDUCIAL_0.5MM' element='FID3' name='1' type='smd'/> <connector signal='' id='12' package='MOUNTINGHOLE_2.5_PLATED' element='U$21' name='P$1' type='pad'/> <connector signal='' id='13' package='MOUNTINGHOLE_2.5_PLATED' element='U$17' name='P$1' type='pad'/> <connector signal='VCC' id='14' package='0603-NO' element='C4' name='1' type='smd'/> <connector signal='GND' id='15' package='0603-NO' element='C4' name='2' type='smd'/> <connector signal='3.3V' id='16' package='0603-NO' element='C1' name='1' type='smd'/> <connector signal='GND' id='17' package='0603-NO' element='C1' name='2' type='smd'/>
After saving any changes to the parameters file, you can re-run the script in the command line to apply your changes:
python -m kicad2fritzing.convert
Page last edited July 07, 2026
Text editor powered by tinymce.
Editing the SVG Files
After re-running the script with your edited parameters file, you can edit the vector graphics files (SVG) that were generated by kicad2fritzing. Three files are generated:
- Breadboard view (
path/to/kicad2fritzing/Fritzing_Test/parts/svg/core/breadboard) - Schematic view (
path/to/kicad2fritzing/Fritzing_Test/parts/svg/core/schematic) - PCB view (
path/to/kicad2fritzing/Fritzing_Test/parts/svg/core/pcb)
You may need to move, or even recreate, parts in certain views depending on the file and how you want it to look in Fritzing.
Here is how the breadboard view for the VCNL4030 came through. You'll notice that all of the passive components and the STEMMA QT connectors are there. These are all sourced from the /subparts directory, which has a ton of component SVG parts that are identified and placed when the kicad2fritzing script runs. These parts were carried over from the eagle2fritzing tool.
Most notably absent though is the VCNL4030 component in the center. This is expected since it isn't a standard footprint component and wouldn't be found in the /subparts directory. This is where you can flex your vector art skills.
Before starting from scratch though, you'll want to look at the Components file located in the /Graphics folder. That file contains a bunch of extra SVG component parts that you can often build on top of or even use as-is.
If you look at the top center of the Components file, you'll find a VCNL4030 vector component that you can drop into the breadboard view. This component happens to exist because a Fritzing part was previously made for the VCNL4030 with eagle2fritzing.
The last step for the breadboard view SVG is to change the Artboard boundary box to include the STEMMA QT signal circles that are outside of the board dimension. If you don't do this, then they will not be visible in Fritzing.
Then you can save the updated SVG file with these settings. The screenshot is from Adobe Illustrator, but comparable settings can be selected in Inkscape.
The schematic view SVG can usually be left as-is. The labels are all brought in as text elements so you can easily edit them.
Page last edited July 07, 2026
Text editor powered by tinymce.
Edit in Fritzing
Now you're ready to bring the part into Fritzing. To do this, you'll copy the /parts folder from /Fritzing_Test into your Documents/Fritzing folder that the Fritzing app creates after its installed:
You should see a message pop up that the swapping mechanism is disabled for the part name that you just created, in this case the VCNL4030. Click OK. Fritzing will continue to open.
After Fritzing finishes launching, click on the Breadboard tab. Then, under Parts, search for your part name. You should see it appear in the results.
Each part view has a page where it can be edited. The first is the Breadboard view. Fritzing uses gender markings for the Breadboard connectors. You'll need to define which connectors are male and which are female. A general rule is that any pin that you would expect to plug into a breadboard should be a male type and others should be female or Pad types.
You can also redefine the graphic assigned to different connectors. For the STEMMA QT port signals, the connector is on the pad graphic by default. If you select one of the connectors, you can click Select graphic and then click on any part of the SVG graphic to change its location. In this case, you can move the GND signal from the pad to the black circle graphic.
In the schematic view, the main item to edit is each connector's terminal point. These points define where a signal originates in the schematic view:
- connectors at the top use N
- connectors at the bottom use S
- connectors on the right use E
- connectors on the left use W
For example, the INT connector would use W as its terminal point and all GND connectors would use S.
The Metadata tab is where you can edit the info for the part. The Title and Label are how the Fritzing part file will show up in search. For Adafruit parts, the Description includes the product copy and the URL is the Adafruit shop URL. Family is the type of board and part number includes a # followed by the product ID.
You'll be prompted to change the part prefix, which is usually the manufacturer of the part followed by a dash. After updating, click OK.
This brings you back to the main Fritzing screen. Search for your part again. Now you'll see two results. The first is the original import with no edits and the second is the part with all of the edits you just made. If you hover over the part, you'll see all the metadata show up in the preview screen.
Drag and drop the part onto the breadboard. You should see the breadboard rows highlight with the connections from the GPIO. You should also be able to run wires to the STEMMA QT circle graphics.
To save your part as a packaged .FZPZ Fritzing part, right-click on the part and select Export Part...
Page last edited July 07, 2026
Text editor powered by tinymce.