Intro: I am a beginner with this software and I have zero knowledge about how to make a PCB or how to route tracks properly.
Background: I am a research student and I eventually have to design a PCB to test my inverter topology which has 20 MOSFETs (with 20 isolated PWMs using 7815 and 7905 LDOs to create 20 different isolated +15/-5 V power supplies to bias the gates). Needless to say this design will be complicated to a very large extent. One of my mentors suggested me the following routing scheme:
Make the power circuit on PCB-A (2 layers) with mating connectors on its bottom layer right next to the MOSFETs.
Make the gate driver circuits on PCB-B (2 layers) with mating connectors on its top layer
Mate the two PCBs
Query: For practice, I have created a dummy project (split into two different KiCad projects) to power LEDs using 7815 and 7915 LDOs. First project is the power supply board with the connectors on its bottom layer. Second project is the combination of LEDs and resistors and this time the connectors are on the top layer. I googled and came across a youtube video titled KiCad 5.0 - Importing a DXF and matching registration holes and this answer. I tried to generate the DXF but I got multiple .dxf outputs and I do not know which one to choose or how to tackle this issue. To be frank I don’t think I understand this concept of DXF or its settings even one bit. Because I am new here, I have uploaded the projects and the relevant screenshots to my github.
What can I do to ensure that the connectors and holes are aligned and mate properly? Can anyone guide/teach me so that I can overcome this issue? I could really use your inputs on this.
Regards,
Ankit
PS: The circuit is fictitious so kindly ignore the practicality of values or layout just this once.
When you have learned the basics of PCB drawing, please then ask how to get correct alignment for connectors.
Using external programs for connector alignment accuracy (DXF) is not required.
That is just simple mechanical CAD . . . KiCad has the facility to place linear dimensions on your PCB layout and you also have the Measure Tool at your disposal. Try it and see what works for you.
Thank you for replying @RaptorUK . I did come across the dimensions and the measurement feature, however, isn’t that approach cumbersome? I mean, something like make notes of the coordinates where the socket/pin headers are placed and then apply the same coordinates to the next set of connectors on the other PCB whose dimensions can be totally different from the parent PCB. Am I wrong in my reasoning here? It would be kind of you if you could share some more insight/explanation regarding this.
Thank you for replying @jmk . I followed the documentation and tutorials available on the internet, however, this is all that was available about DXF in the documentation:
DXF options
Plot graphic items using their contours: Graphic shapes in DXF files have no width. This option controls how graphic shapes with a width (thickness) in a KiCad board are plotted to a DXF file. When this option is enabled, the outer contour of the shape will be plotted. When this option is disabled, the centerline of the shape will be plotted (and the shape’s thickness will not be visible in the resulting DXF file).
Use KiCad font to plot text: When enabled, text in the KiCad design will be plotted as graphic shapes using the KiCad font. When disabled, text will be plotted as DXF text objects, which will use a different font and will not appear in exactly the same position and size as shown in the KiCad board editor.
Export units: Controls the units that will be used in the DXF file. Since the DXF format has no specified units system, you must export using the same units setting that you want to use for importing into other software.
To be honest I was not able to use the above information to my advantage. That is why I had to post my query here.
The purpose of the DFX format is to convert the Pcb into mechanical cad. programs. Kicad has limited drawing tools. If a very complex and accurate shape is required (an odd shaped PCB - the edgecut), it may be beneficial to create the board shape in a cad drawing program and then import that board shape into the PCB Editor. Also, if certain features are required in certain places, it is possible the mechanical cad program may be able to place those features more accurately than the PCB program.
The documentation you were reading was from Kicad 5. Much has improved since then, particularly in measurement and placement. Mech. cad programs are now only needed for accurate complex PCB shapes. Converting to DFX and using (and learning?) a mech. cad program is not necessary for your purpose.
On your comments to @RaptorUK,
How else are you going to place something accurately unless you do some measuring?
Thanks for replying again, @jmk . Looks like somehow I have managed to start off on the wrong foot even though it was not the intention. I assure you that I had searched for DXF in the documentation of version 9.0 (because I followed your link) and what I copy pasted earlier is what I got. Still I apologise for any stupid behaviour from my side.
Your question is totally sensible. I was hoping for an automated/easier way to solve my requirement. Measurement has to be followed 100%. It is the key. I agree with both you and @RaptorUK .
How many are you designing ? it’s not cumbersome but it is a manual process . . . I would probably design this in 3D mechanical CAD, I use Solidworks, export as DXF and then import the DXF to KiCad.
I have also done such things manually in KiCad checking positions of elements and adjusting their position by adjusting their coordinates . . .
Let’s start by considering some simpler approaches.
This question seems to be asking you to find a way to implement just one approach. Look for the means to an end.
For example:
Create a new footprint and schematic symbol consisting of a multi-pin, multi-connector assembly that combines multiple connection components.
Specify the location of components on the board based on the origin of the X and Y axes.
First, design a PCB with only the connectors, and then use that schematic and PCB drawing as a template to design a variety of more complex boards.
etc.etc.etc…
And so on.
believe the data currently uploaded to GitHub contains too much unnecessary information. To simplify the problem, we recommend placing only the connectors on a new PCB of a specific size, and reconsidering how you connect them.
Hello @RaptorUK,
I have to design 2 different reference boards (first with 12 MOSFETs and the second one with 20), which is not a big number. I gave a thought to whatever you or @jmk or @tama said. I just have to follow the logic of measurement and I will be okay. At least this time I will not have to learn a mech. CAD software (perhaps in the future, maybe?).
Thank you for such an intuitive and lucid suggestion. I discussed this issue with a colleague, separately, last night. Based on your answer and his inputs too, I realised there’s more than one way to skin a cat.
The ultimate objective is to ensure the centre to centre distance is equal, with all the connectors in a straight line and at the same angle w.r.t the x-axis. Once this criterion is met, the problem is solved, regardless of depending/not-depending on DXF/mech-CAD-software(s).
I am working on that board right now and in some time I will share the progress with everyone here.
Thank you for pitching in @Naib. Yes, the success does indeed depend on having a clear cut vision/sketch of how you want your board to look like in reality.
What does IMS mean? Because of limited awareness, I do not know this term. Could you please answer?
Exactly. Now one workflow is an Mech-Eng does the bulk of the 3D packaging and then outputs a DXF that an Elec-Eng populates onto. This flow is the classic integrated project approach where the elec captures the circuit, does a ROM placement (especially connectors) and gives a required board area. Then the Mech-eng fully constrains a simple “PWB” to figure out other clashes to then feed back to Elec.
If you are doing it alone however and more biased towards an electrical flow, a sketch /really/ is needed. This is what I did. I chose the dead centre of one of the cards to be my “origin” then worked around that to ensure pillars align with plated holes or headers align with pins… This was done in Inkscape to then understand where I needed to ABOSOLUTE parts.
You have to work like this otherwise you have no chance. Then LOCK! those key parts, you do not want those accidently moving. Finally… Export to STEP and use something like freecad to pull all parts together
The simplest way is probably is to work on a coarse grid. I’ve standardized on a 2.54mm grid for such things, as it’s compatible with the legacy THT parts, breadboards and matrix / vero boards. When you put all “important” parts on such a coarse grid, then everything either aligns perfectly, or it’s so far off that it will be quite obvious upon inspection.
I also tend to use (127, 127) both as a grid origin and as some important coordinate on the PCB (such as pin one of a significant connector, or even just a fiducial) This coordinate is compatible with both metric and the bananas grid.
Others (such as Piotr) replace the “paper sheet” with some simple graphics (KiCad has a quirk that the sheet can’t be empty) and then use the “real” (0, 0) coordinate as a location mark on the PCB.
In addition:
I had a peek at your github repository, but can’t do much with it as I’m still on KiCad V8. I did notice this screenshot:
… And that will create a lot of DXF output.
I think it makes much more sense to draw some reference graphics (such as pin one marks and connector orientation) on a single user layer, and then only export that single layer, and use it as the reference in the other project. Especially when combined with a coarse grid, this would make all alignment easy.