Need Help with Flex PCB Replication for Automotive Instrument Cluster

Hi everyone,

I’m working on a project to recreate a flex PCB for the back of an automotive instrument cluster on a Triumph TR7. The original part is no longer produced, so I’m trying to create a replacement. I want to use KiCad for this project, but I’m a beginner and need some guidance.

Here’s a link to the image of the part I’m trying to replicate: Click to see image (https://i.ibb.co/jVStpqX/TR7-Instrument-Flex-PCB-Flat.png).

Schematically, the part is relatively simple:

  • Illumination Bulbs - large, 2 half circles with hole X 4
  • Indicator/Warning Bulbs - smaller, 2 half circles with hole X 10
    • Service Interval Warning
    • Coolant Warning
    • Parking Brake Warning
    • Brake Warning
    • Seatbelt Warning
    • Oil Warning
    • Ignition
    • Choke Warning
    • LH Indicator
    • RH Indicator
  • Components - Semi-circular pads with holes
    • Voltmeter
    • Fuel Gauge
    • Tachometer
    • Clock
    • Temperature Gauge
  • Connector Strips - 1 @ 12 pin, 1 @ 6 pin

I initially tried using EasyEDA before finding a similar post on the KiCad forum (Re create an old part from picture). I tried following that and using the new reverse engineering features in nightly to import my image into the KiCad PCB Editor, but I’m still missing some fundamental knowledge.

Here are my questions:

  1. Do I really need to create a schematic for this project? I know exactly what I want to produce visually.
  2. How can I create the correct holes in the board for the PCB through board lamps?
  3. Can you provide any tips or resources to help me get started with KiCad for this specific project?

Thank you in advance for your help!

1 Like

Your image directly dragged into my post:

  1. Yes. KiCad does not work properly without a netlist, and the schematic is by far the easiest way to create the netlist. KiCad needs to know which form of connections form a net, so it can also ensure clearances to other nets are enforced. It is possible to do it without a schematic, but in practice this is much more cumbersome then drawing the schematic.
  2. You design custom footprint for your “lamp” (Led replacement?) and assign them to your schematic symbols. Then they all appear on the PCB when you press Schematic Editor / Tools / Update PCB from Schematic [F8].
  3. It was long ago I started with KiCad myself. The getting_started_in_kicad manual is probably a good place to start. It has been updated not too long ago (It was a bit neglected in between KiCad V4 an V6)

From your picture it looks like you need 5 footprints:

  1. Big light bulb.
  2. Small light bulb.
  3. One pin connector with half round pad and rectangular cutout.
  4. 6 pin edge connector.
  5. 12 pin edge connector.

I’ve been looking at your PCB picture for a while…

KiCad is not great with complicated outlines and curves. I’m not sure KiCad is the right tool for this. In the end, you need a set of Gerber files, and this requires vectorization. Maybe it’s better to design (& vectorize) this thing in a generic graphic program, then export as DXF or SVG, import it in KiCad and do some post processing. A problem with a generic graphic program, is that it does not understand things like solder mask. In KiCad the cutouts for the solder mask (so electrical connections can be made to pads) are part of the footprints.

Everything added together, the standard answer / solution is probably still the way to go.

  1. Draw the PCB outline in some other program, export it and import it in KiCad.
  2. Draw the schematic, design those 5 footprints.
  3. Draw the tracks.
  4. Apply rounding and remove other sharp corners on the flex PCB tracks.
1 Like

Here is another thread with a more comprehensive explanation:
https://forum.kicad.info/t/copper-track-filling/38393

Same author and subject as the “Recreate old part” link above.

1 Like

@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.