PCBNew BOM columns name of JLCPCB?

File > Fabrication Outputs > Footprint Position (.pos) File…
Each time, I need to edit the files POS , to change the column names to the standard of JLCPCB.


  • Ref > Designator
  • PosX > Mid X
  • PosY > Mid Y
  • Rot > Rotation
  • Side > Layer

is there a way to setup PCBNew to get already the JLCPCB nomenclature, instead?

I had a similar need (but, not for JLCPCB).

What I did, that, for me, was the simplest approach, was to use LibreOffice’s CalcSpreadsheet and made a Macro to do what I want…

Example below (see top Right Corner my_BOM Icon).

It was pretty simple to do - just took 15 minutes of working through how Libre/Macros work and how to setup the desired fields/etc… I just open the CSV file and click the button.
The POS export has option for CSV…

ADDED: Added screenshot of Panel, indicating Row1 Fields, you can change them to what you want …

Already a macro up there will ok, although I’m not able to program macros under Excel (I did just 2 or 3 times in my whole life for very small stuff copying and paste code :slight_smile: )

I would like, to understand if this is something can be done in KiCAD directly.
If not: yes your macro is partial but effective solution

Incredible :smiley: I was able to create the macro in Excel :slight_smile: ok it’s not portable but at lest it works.
I hope that kiCAD Team will provide with something native :slight_smile:


It’s not a perfect solution. But, I call several external App related items from a Plugin.

Example shows calling LibreCalc (from a Kicad Plugin at Top-Right). That opens LibeCalc and from there, can open desired CSV/other and do the rest of the needed stuff…

It took 4 minutes to write the Plugin…

1 Like

Fantastic! Did you write it? Wich language is used?

I didn’t test on v6rc*, but I was using on v5.99>: https://github.com/hildogjr/kicad_jlcpcba/


Yes, I wrote it (I use only plugins I write so I won’t need to rely on others…)

Written in Python (Yuk!!!) I prefer Java and C but, it’s easy to call Java and C apps (and typical desktop apps) from Python (Kicad) plugins…

I do this with a simple Perl script:

#!/usr/bin/perl -w -i.bak

my $first = 1;

while (<>) {
    if ($first) {
        s/PosX/Mid X/;
        s/PosY/Mid Y/;
    $first = 0;

Then just run it from the command line, like this:

fix-pos-jlcpcb.pl filename.pos

It will modify the specified .pos file in place, and create a backup file with a .bak extension.

1 Like

I recommend spending some effort on using KiBot. I use it with the dev docker container.

There is a sample configuration to export the position file, but you can actually automate exporting the gerber package, BOM and positioning file.

Once you get going with KiBot, you’ll appreciate many of the other tasks it automates and the power of selecting components through variants on all production and documentation outputs.

1 Like

KiBot looks neat! I’ll give it a shot once 6.0 releases and things work with it.

No need to wait for version 6. It works with 5.12.
The sooner you use it, the more time you gain in the end.

I don’t work with 5.12 :slight_smile: I am using v6. It’s at RC1 stage and very stable and has considerable improvements. My BOM script will bridge me through to later this winter if/when KiBot adds v6 support.

I’m under Windows. Your script is great but for Linux.

It’s the very first time I hear about kiBot. I will check it.
Where should I import the yaml file, please?

Perl runs on over 100 platforms, including Windows.

That’s right. Although it’s not exactly my intention to install even PERL just for this purpose. I mean: this will be the only one reason for which I do use Perl. Not justified … Conversely, a script that’s running directly into KiCAD environment, will be better (in my case)


You can also try KiKit: https://github.com/yaqwsx/KiKit/blob/master/doc/fabrication/jlcpcb.md

My favourite tool: