Is there a simple way to update all my footprints to use the JLCPCB orientations?

Hello,

I’ve just placed my first order on JLCPCB. I’m planning to use KiCad and JLCPCB to manufacture many more PCBs in the future (mainly ESP32 boards for home automation projects.)

I was confused and annoyed to find out the KiCad part orientations are different to JLCPCB. I read that KiCad follows the IPC standard (pin 1 in top left), but JLCPCB has their own standard, depending on how the parts are oriented on the tape.

I know I can fix this on JLCPCB by adjusting the rotations in their preview, or I could manually fix the rotations in KiCad or in the component placement files.

But is there an easy way to just fix this once-and-for all by updating all my orientiations in KiCad? Can I just import a JLCPCB library of footprints, or run a script to change all the orientations?

References:

Given that people have developed software that save the orientation corrections by part to a database for future application, I suspect there is no algorithmic method that works all the time.

1 Like

I’ve just figured out that JLCKicadTools can help with this: GitHub - matthewlai/JLCKicadTools: Tool for using JLCPCB assembly service with KiCad

$ jlc-kicad-tools
usage: jlc-kicad-tools [-h] [-n PROJECT_NAME] [-d DATABASE] [-v]
                       [--warn-no-lcsc-partnumber]
                       [--include-all-component-groups] [-o OUTPUT_DIRECTORY]
                       INPUT_DIRECTORY

Generates BOM and CPL in CSV fashion to be used in JLCPCB Assembly Service
...

I tried it out and uploaded the generated CPL to JLCPCB, and the orientation was correct:

I saw that this script has a built-in database to correct part orientations: JLCKicadTools/cpl_rotations_db.csv at master · matthewlai/JLCKicadTools · GitHub

So I think I’ll use this as part of my workflow

1 Like

This is an inherently flawed “standard”:

There is no guarantee that different manufacturers of the same part have their parts oriented in the same way in the tape, and on top of that, sometimes a single manufacturer uses even different orientations for the same part, which means that the orientation is part of the ordering info.

Indeed, it’s just a mess. This lack of standardization wastes a lot of time of educated people with decent jobs which could (and very much want to) spend their time in a more productive way.

1 Like

Hi @Nathan_Broadbent: This looks like just what I need. Do you have any tips to share on using it? Install with pip, put csv conversion file somewhere, a bash script maybe? How did you define the custom fields in component symbols? Is this too many questions? Does he have a big coat too? I will have to install and try it when I get a moment.

It is not just jlcpcb that wants 0 degrees defined wrt orientation on the tape -- my local assy house also wants it like that

That’s good to know @mgyger – soic and others are 1 lower-left.
Some more discussion here:
stackex

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.