Curved tracks / free form drawing

This is a Flex from a TS-E lens and this accommodates the 90 degree axis change. That means it is dynamic. The connector is static bend 180 degrees but halfway it comes back on itself with a 180 degree which moves over a 90 degree section, in about a space of 3mm. Soldering is not an option.

Shame that Canon decided to discontinue this flex and just sell the whole shift part including Main PCB and rack and pinion gearing.

the Custom flex should be about $40 then you get 3 including postage…

1 Like

KiCad has come a long way in a few years but it still has a number of areas where it is weak or features are missing unfortunately.

Can you zip your project and post it here?
I would like to have a close look at it to see what I can do.
A few things I (or you) can try is to make a gerber of your first nice arcs (though the are a bit unevenly spaced???) and then look at the gerbers.

If the arcs as being graphical objects work, then a workaround is to draw the whole thing on silkscreen and then change the file names so “silscreen” becomes a copper layer. But this is a very ugly workaround.

It may be possible to do something with FreeCAD and the StepUp plugin, but that is a route I would not reccomend to a beginner,nor am very keen on myself, because my experience with Stepup is very limited.

Just had another Idea that can give quick and easy results.
As an experiment I drew a single track segment and created an array out of it.
(Right click / Create Array / Fiddle with the coordinates.
Made a screenshot of it with (purposefully) too short tracks to try if it works. And it works as expected.
Fiddling with a bit of math to get the coordinates right is pretty simple.
image

The most important caveat would be to get the endpoints to match close enough (or purposefully overlapping a bit) for DRC to be successfull.

If you go this way, then disable the “push and shove” of the interactive router:

Pcbnew / Route / Interactive Router Settings / Mode: Highlight collisions.

You might find it easier to draw the layout using a drawing program - eg FreeCad and exporting a DXF of the copper layer. You can then import the DXF to the relevant copper layer in Kicad. The disadvantage of this is that there is no ‘functional connection’ as far as Kicad is concerned - and the ancillary component on either end will appear unconnected for DRC. In a more complex circuit, this might be problematic but if I understand correctly, you simply require a curved flex pcb with a connector on either end and you simply require tracks and no pads on this section of the pcb. You might have to force the connections to ‘real’ tracks.

I ended up doing something similar in this project. Originally I used >180º arcs but had some problems with running them through a panellise so substituted <180º arcs and haven’t really tidied them up properly.

45

Thank for your feedback. I designed it completely in the footprint editor but now get stuck as the parts which are not converter to pads stay on the eco1 user layer I put them on. I guess I will take your approach!

It is indeed 2 connectors 1 soldered to the flex the other just plugs in a connector and a couple of fixing holes with a copper pad.

Do you know if I can I also upload a solder mask in that way as I really need everything covered except the connectors?

Making cutouts in the solder mask would be easy with a simple footprint.

I also wonder how you made your board outline.
Drawing it in KiCad would have ben excruciating, and I assumed it was also a DXF import.

I also noticed that the bottom part of your Flex is not horizontal, while I assume it should be. This could be an indication there may also be other errors in the board outline.
image

KiCad’s 3D viewer is pretty fussy about faulty board outlines. Can you see the PCB in the 3D viewer? (Shortcut key: [Alt + 3]).

1 Like

Yes and no, I did it the excruciating way in KiCad! And that line it is at 0 degrees but there is indeed a lot of play between 0 and -180 degrees and I picked up on the step in the line but it depends on what the zoom level is.
This is how far I got but cannot progress…

.

1 Like

@David_Bleeker, would you mind to share the fp?

Not sure even how, or what use it would be as this is at the moment just pads on a copper layer and the tracks are just drawn on a user layer. But as soon as I start merging these they do not stay round as shown earlier in the thread and come to close for comfort.

If you share the design then I (and others) can have a look at it to try some things.
Sometimes I get better ideas while experimenting with silly ideas.

Just now I had an idea that is a variant of the array I posted earlier.
What I did was to create an array just like before, but with the segments rotated 90 degrees, so the track segments resemble a clock face.
Then one by one you can hover over the outside of a loose segment, pres ‘g’ to drag the enpoint, and then snap it to the inside point of the next track segment.
This wil give you a pretty decent circle, depending on the number of segments.
The work itself is a bit tedious and boring, but it is pretty simple to do.

Next thought was to only draw half or a quarter of a circle, (or 1/8th) and then use copy and mirror to extend it. But it’s not needed.

You can use one of the re-oriented track segments, and then create a new array out of it. With a circular array, the amount of effort does not increase with the amount of segments. Drawing your 3/4 round arc with an array of one degree increments is really close enough to not even be able to see the segments.

Something similar is done in the Skidl Clock example, but there the array for the circular tracks are made by a script.

If you do not like this approach, please say so instead of just ignoring my posts.
If so, what are your objections?

2 Likes

Sorry, but my reply to you is above, somehow directed to someone else… Not sure why that is? I am not sure if you can see that reply… Let me know.

I guess here you are drawing tracks on the pcb? I will have a look if I can get that to work…

This is the footprint: Canon-EF-TSE-connector-share.kicad_mod (20.4 KB)

The coarse segmentation issue exists in 5.1.x but is resolved in the development branch. Unfortunately, it required a file format change.

I’ll have a look at whether there is some partial fix we could implement in 5.1.3 to improve this situation…

3 Likes

Hi @Seth_h I managed to move the tracks editing with a text editor the kicad_pcb file to B.Cu, but this is a bit tricky…
btw how is doing your work on curved tracks for v6? Any news?

1 Like

Somehow I get the impression that OSH Park does not see these tracks on the B.Cu layer. Still looking into it… :frowning_face:

Your arcs are not on copper right now. They are on Eco1.User.

You can move them to copper or select the arc with one of the pads, right-click and choose “Create Pad from Selected Shapes”

Progress generally visible here[1]. I try to push after each editing session. I’ve been a bit slow as I’ve been dividing time with launching a KiCad for business support venture. There is an amazing amount of paperwork involved. :running_woman:t4: But it is coming along. Both should be out in July.

[1] https://code.launchpad.net/~sethh/kicad/+git/kicad/+ref/curved_tracks

1 Like

I’ve been experimenting a bit, and I’m wondering what I’ve put myself into :roll_eyes:

David has certainly put a lot of time and effort in this thing and the complications of this being avery weird board (compared to normal PCB’s), and current limitations in KiCad make this a very bad board for beginners to get to know KiCad.

When using the “create pads from Selected Shapes” as I originally suggested. the created pad does indeed look ugly, and with big straight pieces, as in the red track in this creenshot from Pcbnew:

However, this is just a drawing artifact, beause if you select the custom pad in the Footprint Editor, and look at it’s properties, and then the tab “Custom Shape Primitives”, you can see they are clearly defined as arc segments:

I’ve also made gerber files of this connector, and in the gerbers there are more segments, with shallower angles, ie, they look more like arc’s, but still have visible segmentation. If this board gets manufactured, it will very likely be OK in this regard.

Another complication I see is that there are very small clearances.
In the Flex connector at the bottom, the clearances between the connector tracks are not uniform, and some are as low as 83um.
Also on other places the clearances are not uniform.
In the center I see 2 circles used as references, but I do not know which is which.
image

It all resembles hand drawing and guesstimating, and that is not a good sign for aboard with such small tolerances.

With such small clearances you clearly want a reliable DRC to make sure the clearances are met. Which is even more important because of the segmentation i the arcs, which distorts their true shape.

A test upload I did at Oshpark looks like it works if I add a simple rectangular board outline, and move the tracks to a copper layer.

Simply moving the tracks to copper as Setth_h suggests also is not a good idea.
It creates graphical items on a copper layer, and currently KiCad has no DRC for them, and therefore it will not flag your low clearances.

1 Like

In my post #20 where I suggested to build this from an array of lots of short segments may be the best option if it’s drawn completely in KiCad, because all the pieces are “normal tracks” and can therefore be checked by DRC.

And yes, I did that experiment directly in Pcbnew by simply drawing some unconnected tracks and dragging enpoints to snap on each other…

1 Like

Thank you very much for that! I will have to go back to the drawing board! And it explains that OSh Park still did not see the footprint.
Btw the circles in the middle where indeed different points the different circles where drawn from. The tolerance of the board itself would have been fine as the cutout was as required and also the connectors where in the right place. But the traces have to have some durability as it is dynamic and moves regularly.

Thanks again for the assistance!

but have you uploaded the board or the gerbers?
and have you included also the pcb edge?
would you mind to share the board with the board edge?

1 Like