JLCPCB Gerber Preview with Position File

Hello all,

I am trying to order a board from JLCPCB, but I always fail because the POS file does not match the Gerber preview at all.

I uploaded a board with only one component for test purposes, but in the preview the uC is somewhere in the upper left corner. I have selected the checkbox “Use drill/place file origin” in “Genearte Placement Files” and unchecked the option again.

Grid Origin and Drill/Place Origin are in the lower left corner, but I also tried the upper left.
And in Preferences->Origin & Axes → Diplay Origin I have also tried all three different options.


The POS file looks like this:
Designator,Mid X,Mid Y,Rotation,Layer
The fabrication toolkit

It is always shifted.

I have also tried the fabrication toolkit and had exactly the same issues.

What am I doing wrong and what do I have to change to make it work??

Best Regards

The columns in your file are not what JLC asks for. Here’s the start of a sample of mine:

Designator,Val,Package,Mid X,Mid Y,Rotation,Layer

You’re missing a couple of columns. JLC has instructions on their website on the formats required.

Some collected links…

I have being using this script to create the position files:

I have already tried “Val” and the “Package” columns. The JLCPCB manual also says that they are not mandatory.

Do you think I haven’t read the manuals, really? When I follow them I have exactly the same problem that the preview shows me some kind of offset where the components are completely wrong somewhere.
Why doesn’t even the plugin work? Can you explain what I’m doing wrong?

I used the plugin, but now the uC is not somewhere in the air at the top left corner, but centred, as if the x-axis could already be correct.

I contact the JLCPCB support.

Best Regards

Well maybe you should ask JLC what’s missing.

The plugin make some angular conversion of some footprints

But, as you describe, appear related with position, not angle.

1 Like

As a general rule in questions made in internet forums, when someone doesn’t explicitly tell they have read the manual (and what exactly they tried), others are entitled to think they haven’t.

I use KiBot.

Once setup, I generate the following kibot targets: “JLCPCB_bom JLCPCB_gerbers JLCPCB_position JLCPCB_drill JLCPCB” which generates a ZIP file as well as the appropriate BOM and position files.

I use a common configuration accross my project (git submodule), and I have the following imports in my project (for jlcpcb):

  - file: LIBS/my-kicad-lib/kibot/JLCPCB_stencil.kibot.yaml
  - file: LIBS/my-kicad-lib/kibot/JLCPCB_position.kibot.yaml
  - name: rotated
    comment: Just a place holder for the rotation filter
    type: kibom
    variant: rotated
    pre_transform: _rot_footprint

JLCPCB_position.kibot.yaml (1.4 KB)
JLCPCB_stencil.kibot.yaml (1.5 KB)

This also generates the BOM that will contain all parts that have a reference to a LCSC component (#lcsc field with proper code).

There is a learning curve, but I placed two orders over the last 10 days and I almost could not believe myself at what speed I placed those.

1 Like

They have a bug in the preview. Read

Yes, you are right. I overreacted a bit.
Thanks for the info. Then it wasn’t me but probably the preview of Gerber files and the position files.