KiCad and ODB++

Hi all:
Just about to get several pcbs into the fab process. Then to assembly.
Our vendor is asking for ODB++ format. They that data will contain all fab and assembly information.
I have posted this topic way back in mid 2019: apparently this feature will perhaps be in later versions…
Meanwhile: do you think this is true? i.e. ODB++ will suffice for fab & assembly?
Then: anybody can speak about softwares that claim to convert Gerber files to ODB++?
If Gerber files did not contain any other data than the “footprint” on the pcb, how will this software get the additional info? From Eschema &/or BOM?
Any help/comment will be highly appreciated.
robin

Sounds like they are trying to force you to use Mentor CAD.
By the way, Siemens now own Mentor.

I bet other implementations of ODB++ are not 100% compatible with Mentors, these complex formats always have too many grey areas in the spec.

Write IPC-2581 into the search field of the forum (the magnifier in the upper right corner) and see the results. ODB++ is often mentioned toghether with IPC-2581.

I did wonder about how much effort it would take to implement ODB++, so I tried to register with https://www.odb-sa.com/ and it turns out I already followed this path before.

The ODB++ is ok for an industry spec, there is obviously a bit of wooliness that is being ironed out, they are now at version “8.1 update 1”. Anyway, it is a big chunk of work. The ODB example has 839 files in 350 folders. That is significantly more data than half a dozen gerber files.

I guess it is something like 3 months full time work. (500 hours at $100/hour, you can do the math). The harder part will be that there are many features that are not currently supported in KiCad, so either KiCad will need extending or some sort of default template is applied. For example, specifying the board stack up.

This is already in the works or possibly even already added. See Post-v5 new features and development news (post number 88 if the direct link fails to work)

How does ODB++ deal with the package pin 1 and orientation debate?

Given the way the ODB++ organization control their spec as intellectual property, is it possible to write a sensibly commented opensource exporter?

I can’t see that ODB++ Solutions Alliance place any restrictions on use of the spec, so I see no issue for Open Source projects.

Good, the way you have to register to get the spec made me worry that there might be a NDA

An assembly house I worked with wanted ODB++ as well. However, I was able to email them a GenCAD file and they said that would work instead. It’s may be worth looking into.

1 Like

GenCAD: the thing is, though, there are more things about ODB++ than meets the eye. I found out there are software tools that process ODB++ files in most creative ways to get you 3D model of your pcb for all sorts of use- fit check, electronic version of the assembly itself( we are trying to spread being paperless across the system- HARD!), interface with other 3D model we have.
So it is just more than not using gerber & replacing it with a better widget.
We are looking for a whole new insalata of not using paper based process anywhere.
r

In Fabrication Output selection, one is Pos file
Does that file contain coordinates of all parts in the gerber output? Is that in a format a Pick n Place machine can use for accurate and exact placement?
If so , one does not need any other stuff.

Gerber is just a photo plotter driver
The POS file contains part position and orientation
My experience is that all manufacturing formats require intervention because the reeling is so inconsistent on defining pin 1 rotation

thnx for pointing this out. Any tricks you know to make the intervention consistent &/or systematic? Any instructions one can give to part vendor to make reels consistent?

Actually, since many years Gerber is no longer just a photo plotter driver but contains full fabrication data. This is perfectly supported in KiCad. The latest version, Gerber X3, contains full component date. X3 is already implemented in the nightly builds.

I can’t find it … I see only Gerber X2 on Plotting…

Maybe it is name confusion. X3 actually uses X2 syntax, but defines two new layers, top and bottom component, with appropriate attributes. Syntactically it is X2. The new is the component layer. The spec is somewhere on the Ucamco website.

1 Like

@maui: If your venerable StepUP script could export STEP models of the pcb, including all vias and internal traces (not just outer copper patterns), it would be a huge step forward. But that would probably require the user to input information about the thickness of each dielectric layer and the copper traces.

The issue I am facing at the moment is the simulation of of a Ku band antenna array for satcom. It is possible to establish waveguides on the pcb with via fencing. The waveguides can be horizontal (don’t confuse them with coplanar waveguides) or even vertical, from one layer to another, in which case the waveguide is defined by via fencing forming a closed structure across layers. You may google for “SIW” or “substrate integrated waveguide.” So, I would need to export all 3D characteristics of the pcb to a full 3D electromagnetics simulator (HFSS in my case, unfortunately).

To get an idea of SIW you may take a quick look here: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4610450/. Observe how the vias there “soft-define” a vertical cavity (with “horizontal” defined as “parallel to the pcb layers”). The antenna in this article is basically a cavity-backed SIW slot antenna.

This need certainly stretches the capabilities of many pcb tool chains because so far the prevailing thinking of pcb layout has been 2D or 2½D at best.

I’m not sure that your antenna modelling export requirement is directly a feature of OBD++ or not but it is possible to export models that include vias and geometrically accurate board models for FEM using some 3rd party programs. I believe that these will work with openEMS (ymmv with other simulators).

It might be better to move this to a new thread if the step model generation isn’t a specific feature of ODB++.

1 Like