Need Help with Flex PCB Replication for Automotive Instrument Cluster

@paulvdh, your explanation was much more than I could have hoped. Thank you for taking the time; I look forward to getting into it.

That other project is an almost exact match for what I’m trying to do. The more comprehensive link @jmk shared will hopefully fill in the gaps around getting the curves and detail.

Thank you so much, to both of you!

This seems to be a helpful YouTube tutorial for this case:

Rereading this post from @Toggesh on his Renault Fuego project, I’m starting to believe that, with the new reverse engineering KiCad features, the schematic and FreeCAD DXF steps are no longer necessary.

The Place→Add Reference Image feature of the KiCad nightly builds eliminates the need for DXF.

That gives this workflow:

  1. Resize/deskew PCB photo in Gimp to get accurate dimensions
  2. Create a new empty footprint in KiCad (remembering to select library first)
  3. Import image from (1) into KiCad
  4. Use “Place/Draw Graphic Polygon” to complete all the tracks one by one on F.Cu layer
  5. Create Edge.Cut and F.Mask layers the same way
  6. “Launch in Production et voilà”

I’m uncertain what @Toggesh meant by that last bit - are there more steps in KiCad? Maybe.

You can easily load a background image, but KiCad’s drawing capabilities are not very good, and creating such a complex PCB outline as for this is a bit of a struggle in KiCad. It is easier to draw the PCB outline in a more mechanical CAD oriented program, and then use either DXF or SVG format to export and import into KiCad.

Also, it’s nice to have such a reference image, but even after:

you should not trust the image, measure critical dimensions and put those directly into the mechanical drawing.

You can easily load a background image, but KiCad’s drawing capabilities are not very good, and creating such a complex PCB outline as for this is a bit of a struggle in KiCad.

Yes, I see that. I’ve almost finished it, so I think I’ll press on with KiCad for now. I may make version 2 in mechanical CAD.

you should not trust the image, measure critical dimensions and put those directly into the mechanical drawing.

Yes, that does make sense. I’ve been checking key points like openings with calipers as I go. There is a slight warping in the original still present in the photograph, though I got around a lot of it by taping it to glass.

So far, I’ve been surprised by how well the photo seems to track the physical. I guess the proof will be actually testing the real thing!

Before you order a PCB, print it out on paper and do a test fit. Also verify the printed out size, as printers usually have some deformations too (Usually a small scaling difference for the X and Y axis.

A bit like below, but then the other way around :slight_smile:

1 Like

I also see you loaded the reference image directly in the footprint editor. This may be a good Idea. You can directly draw pads in the footprint editor.

You can draw graphic lines on copper in the footprint editor, and you can make those lines parts of pads (with pad edit mode [Ctrt + e]) On the down side, you can’t set nets to graphics in the footprint editor, because there are no nets in the footprint editor.

1 Like

What is the impact of not being able to set nets to graphics? Does that mean there no way to map nets to symbols in a schematic? Or is there another consequence?

One other thing I’m wondering about. I see that adding an internal closed shape to Edge.Cuts will cause a hole - which I need aplenty. What happens if that hole cuts through part of the F.Cu layer? Will the copper be trimmed at that point, or do I need to ensure all copper is well away from the hole?

Before you order a PCB, print it out on paper and do a test fit.

Oh, that’s really cool! Thank you!

If you draw graphics in the footprint editor and treat them as copper tracks, then KiCad likely can not calculate clearances between the different nets.

When you draw the whole thing in one go in the footprint editor, you also have do duplicate a whole lot of work. For example, I count 9 holes for “small light bulbs”. If you create a simple footprint for a single small light bulb, and then import 9 instances in the PCB Editor (which can calculate and enforce clearance rules), then you only have to modify one footprint, and update them all if there is a problem with it. When they are separate footprints in the PCB editor, you can also easily drag one of them, and keep the tracks attached when it turns out you have to move it a bit.

I have never attempted to do anything like you are doing now in the footprint editor. KiCad V8 also has a bunch of new functions (such as assigning net names to graphic items). I am not sure at the moment what would be the best way to do this PCB. Figuring it out would also cost me more time then I’m willing to spend on it.

Thanks for the clarification, @paulvdh.

It’s all good. I’ll park this to create separate footprints for the holes, connectors, and other components and see where that takes me.

Right - stuck at the first hurdle. This PCB has no pads. There is nothing soldered onto it - everything connects mechanically. Do I need to define pads?

If you use pads, then you get cutouts in the solder mask for free because those are included with the pads. (You can turn the solder mask of if you like).

But KiCad does not have arced pads. The way to do this in KiCad is:

  1. Draw a graphical arc in the footprint editor.
  2. Put an SMT pad on top the arc. They must be overlapping.
  3. Press [Ctrl + e] twice (once to enter, and once to exit Pad Edit Mode.
  4. The pad and the graphical item have now become a “custom pad”, and the technical layers (solder mask, paste, etc) also have the full size of the complex pad.
  5. In the pad properties, you can set a clearance override for the solder mask expansion. This way you can expose a bit more area around the pad, so you’re sure the solder mask does not get in the way of the contacts of the light bulbs.

Nice. That makes sense.

A little more information:

Draw a graphical arc in the footprint editor.

Change the width of the line drawn to match that required.
Duplicate the result then rotate the duplicate 180 deg. to get the second half.

Duplicate the entire pad to create all other similar pads.

Repeat for the other sizes.

1 Like

Thanks. How do I create the “keyed” hole in the middle?

You can draw a bunch or arcs combine them with lines, and fiddle a bit to match their end points together.

As I’ve said a few times, KiCad is not very sophisticated on mechanical CAD things. Drawing such an hole is already near what is “doable” in KiCad. For such things it is easier to draw them in a mechanical CAD program, export, and then import them in KiCad.

How many arc segments does the hole have? There are 4 “big” arcs, 4 radial spokes to connect the arcs, and probably 4 little arcs in the corner, because you really don’t want internal sharp corners in flex PCB’s. The pictures you uploaded are of too low a resolution to really see this though.

Here’s the picture full resolution (It’s 3793px x 1538px). The holes are basically circles with a bar across the middle.

The lamp holes, that is. There are two additional notched square holes (one has a notch on only one side)

Note that this picture has some warping. It’s not the one I’m using for the circuit mapping, but it shows the holes.

The shapes of the larger holes aren’t critical. There are some arc holes around two large bulbs, allowing the outer circuit to flex upwards.

All of the terminals for the various screw-mounted components have little rectangular holes (for a metal pin/plate) and a round hole for the screw.

I have a pad like this:

Can I associate the hole with the pad? If not, do I need to create edge cuts on each pad manually, after placing it in the PCB Editor?

you can add a NPTH hole as a pad with no number in your footprint.
you can also draw a shepe in the edge cut layer in your footprint

1 Like