Transfer custom Fields from Schematic to PCBnew?

I did search here and found some old posts, but my questions is this: I have added fields in the schematic for manufacturer, part number etc. How do I transfer those to PCBNew? Aisler for example can read the board files directly and it would help a lot if I could get the manufacturer and part number there as well.

3 Likes

Did you add the information to each one of the footprints? Or you defined the some standard fields for eeschema? Like suggested here (a bit dated, so some menus/images may look a bit different)

How exactly would they be used in pcbnew?

1 Like

This works in nightly builds but I think it didn’t exist in 5.1 (don’t have time to check right now)

As to why this would be useful, besides the given use case of getting the proper data out of the board file while still driving that data from the schematic, it’s also useful if you want to reference those fields in silkscreen labels or other text objects (in a fab drawing, for example)

I defined the fields in EESCHEMA

Some board houses, like Aisler, can read the board files directly. No need to create gerbers. Aisler also has an assembly service and if the info is not in the board file, then I need to match every component individually.

What do you mean by that? BOM exists for communicating the part information to the assembly house. It’s created from the schematic. There’s no need to match anything manually. The assembly house reads the reference designators from the fab and/or silk layers and reads the component information from the BOM file. That’s how it’s normally done.

If you want to give them something cool, use the Interactive HTML BOM plugin which creates an interactive HTML/Javascript file which can be used with a web browser.

But if you still want to add the information to the pcb file: I can’t find a way to include the field information from the schematic to the board file. The information is kept in the schematic/symbols.

However, it’s possible to propagate it through the board into the generated gerbers – but only in 5.99. In 5.99 it’s possible to use text replacement variables and the symbol field names are available in the layout footprints’ text items. The information from the schematic is not saved in the board file but the text variables are replaced on the fly when the layout is rendered or exported to gerbers. This requires the whole project being available, so if Aisler uses only the board file this doesn’t work.

For many vendors, yes, but some quick-turn vendors (Aisler, Circuithub, maybe others) read the CAD files directly – they do not use gerbers or external BOM files.

1 Like

Aisler takes gerbers, too. I didn’t find info about their assembly requirements. I wonder how they do it because their upload page doesn’t take a project, only a board file, and the board file doesn’t have part data.

I looked at the Aisler website, and it doesn’t mention anything about getting part data from KiCad files, so I don’t know why the OP thinks they do?

https://aisler.net/help/supported-pcb-design-tools/kicad

Well putting Aisler aside, which I don’t know about, CircuitHub does take KiCad files directly and they require you upload both the board and schematics (because there isn’t enough part data in just the board in current KiCad versions)

1 Like

After uploading a kicad board file I can get this:

Maybe some of their supported EDA packages can include the MPN etc. fields. KiCad doesn’t have name/value fields in the footprint/board file format.

@AndersG, you should contact Aisler and ask them if they could add support for full projects (or board + schematic files), or if they could take a BOM file in a specific format.

KiCad has customizable BOM generator, they (or even some volunteer) could write a BOM generator which generates the needed file if one of the existing BOM generators doesn’t give output which they could read programmatically.

1 Like

Yes, I will, but I wanted to ask here first.

An additional question, if I may?

I am en EE by education, but by day job is writing software. I have done commercial designs, but then left the final design and manufacturing to others.
I have been using KiCAD for at least 10 years and have done several designs that I sell as bare boards to other hobbyists, using the “hand solder” footprints and nothing smaller than 0603. I have ordered boards from several other houses in the past, mainly PCBWing and lately Aisler. Aisler if my favourite for prototype boards as they are in Europe and read KiCAD files directly. I can get the boards quiclky and without hassle.

So I am basically new to manufacturing. I looked at JLCPCB, but they required a placement file in a specific format and they had their own preferred component vendor which meant that I had to find new part numbers for my components and beside did they not have all the components.

Aisler reads the placement info from the board file directly which makes things easier and should be less error-prone.

Any hints or pointers are appreciated. The board I am looking at now will probaby be just 20 units, but each board takes 1-2 hours to hand-solder.

See the image posted by eelik here. You upload the board file and then you match components. Having the actual part numbers that I have in the schematic would help here, but I have asked them.

FWIW does Aisler have a preselected option when ordering for a “KiCAD donation” :slight_smile:

I was wrong. The symbol fields are stored as footprint properties in the board file:

(footprint "Resistor_SMD:R_0402_1005Metric" (layer "F.Cu")
    (tedit 5F68FEEE) (tstamp 9b0c1dbb-902c-4a90-8661-0e961e3659e1)
    (at 185.21 106.83 90)
    (descr "Resistor SMD 0402 (1005 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
    (tags "resistor")
    (property "Field4" "123")
    (property "MPN" "12345")

So basically Aisler could extract the data from the board file if you have added the fields in the symbols and updated the PCB from the schematic. But again, this would work only with v5.99/6.0 or later.

2 Likes

OK: Time to upgrade I guess. Anything to watch out for? Like the time when every diode was the wrong way around? :slight_smile: I am on 5.1 right now.

5.99 is a prerelease build? I guess I can download that one and install in a separate directory?

I would like to use the feature mentioned I can only run 5.1.6. But I’d like to use extra fields in eschema that display on the silk screen in pcbnew. This means that silk screen text ( other then references) can stay connected to the component.

The other nice to have would be to define pcb nets in the eschema ie trace widths etc and have them go across to pcbnew

I didn’t mean you should upgrade. Aisler probably doesn’t handle 5.99 files. I tried to upload one and didn’t succeed.

I saw someone from @aisler in this forum. Maybe they can comment on this.

Let me briefly explain how our KiCad import works right now. We have KiCad Stable and Nightly running on our servers. Beside that we have a custom made parse for the board file. In a first step we import part positions, rotation, side, value and name to pre-fill BOM and Pick and Place list. In a second step we use the Python Interface to export Gerbers and IPC 356 Test Point data.
This works way better than first export these files from KiCad and then import with us (or any other assembly / pcb service) as we are able to specify which data we require. You know that there are various ways to format a BOM, PnP, name Gerber files, Gerber precision etc. This is not required if we just import the board file from KiCad.

Regarding pre-fill BOM. As we have no access to the MPN field we require to enter these using our BOM Tool. Is it correct that this changes with 5.66 / 6.00? We’d then auto-import MPNs as this would streamline the process even more.

Cheers,
Patrick

2 Likes

Yes, repeating from my post above:

(footprint "Resistor_SMD:R_0402_1005Metric" (layer "F.Cu")
    ...
    (property "MPN" "12345")

That’s from a 5.99 board file where MPN is the custom field name in the corresponding symbol and 12345 is the field text. When the board is updated from the schematic the custom symbol fields are added to footprints as properties.