Schematics - off PCB components - Page 1
Forum section: electronics / general

author: bitman
author_rank: Unknown
timestamp: September 28, 2020, 01:46:22 am
content: I'm using KiCAD for my small hobby schematics/PCB layouts. I'm looking for a bit of guidance.How do I create a schematic of components that aren't going to be on the PCB but using a terminal/connector on the PCB and exist outside of it? Ie. a power LED indicator - you would connect it to a PCB connector and put it on the case. In my case I have a few power LEDs that will added to a connector.I can just diagram the connector - but I like to show the actual components I expect to be connected without adding it to the PCB. How do you do this? If KiCAD cannot do it, how do you in general handle this? I guess you should have the device in the schematic, but KiCAD thinks everything in the schematic makes it onto the PCB - so how do you manage that?

author: greenpossum
author_rank: Frequent Contributor
timestamp: September 28, 2020, 01:58:08 am
content: One way is you put the component on the schematic but give it the footprint of the connector. But this has the disadvantage of messing up the BoM, but you may not care if it's hand assembly.

author: bitman
author_rank: Unknown
timestamp: September 28, 2020, 02:51:14 am
content: I've done that in the past - but you're right if you were to generate a list of components to purchase you would not get the foot-print. In most cases I choose my component based on what I have around so the BOM isn't too important at least not at this point.In this case however it's not a 1:1. I have two power LEDs which the PCB outputs to. I would still want to illustrate the number of Power LEDs (and their type/datasheet) so the data balances. Right now it just shows the connector and for that reason isn't providing much value to anyone reading it.I also need to break this PCB up in two pieces - a small connector would connect the two PCBs. Not sure how to diagram that either. If I use labels then the components will be connected in the rat-nest on the PCB side. Do you name the labels something that includes the board number to keep the separate? If I do, the electrical tests will not know what's connected. Nor will it be obvious that the two connectors in the schematic connects?

author: greenpossum
author_rank: Frequent Contributor
timestamp: September 28, 2020, 02:59:44 am
content: Unfortunately KiCad at this point doesn't have the ability to include off-board components in the schematic. Nor does it have a way to make compound components. Maybe v6 might ease some of those shortcomings, but I don't know what will make the final cut.For your two halves board design I would draw two schematics, and them combine the Gerbers for fabrication.

author: Jwillis
author_rank: Super Contributor
timestamp: September 28, 2020, 05:00:05 am
content: Quote from: greenpossum on September 28, 2020, 02:59:44 amUse global labels to add off board components . Or use Hierarchical sheets .

author: greenpossum
author_rank: Frequent Contributor
timestamp: September 28, 2020, 05:18:44 am
content: Quote from: Jwillis on September 28, 2020, 05:00:05 amWell it's not as simple as that. In fact there is a FAQ for this:https://forum.kicad.info/t/off-board-components-in-kicad-5/22286Unless the component is somehow kept out of the netlist, pcbnew will place it and want it routed to. Closest approaches might be using # for virtual components or having a separate system schematic as described in the FAQ.If you mean hierarchical sheets solve the compound component, not quite. I know it's touted on the KiCad forum as a panacea for everything including curing cancer (well almost), but here's an example that shows its limitations: I have 4 LEDs in series that form a segment of a large display. Sure, I can put them in a separate sheet and replicate. However they don't have a compound footprint so they still have to be placed. Gets a bit tedious for many segments. Also if I want to slant the vertical segment by 5° they can't be rotated as a unit. Finally although nobody is likely to, every sheet generates one page of output.A decent compound component implementation would let me do those things, appear as a single symbol on the schematic, yet contribute to the BoM and PnP position files correctly. Maybe some day.

author: Jwillis
author_rank: Super Contributor
timestamp: September 28, 2020, 07:54:03 am
content: Quote from: bitman on September 28, 2020, 01:46:22 amUse global labels set to passive . One set on the connector and a matching set for the component or other circuit . For other circuits connected to your root circuit , its best to create a separate Hierarchical sheet that way the separate sheets are grouped when you create PCB New . Use the same labels as you would but the second matching set would be connected to the circuit of component on the second sheet.By using global labels you can separate components off the PCB but still show them on your Eeschema and still perform an electrical rules check . When you assign foot prints don't assign any for the off board components , leave them blank . Run the Netlist and create New PCB . The off board components won't appear and wont be apart of the rats nest . If they do appear , like a another off board circuit , simple delete those components from the rats nest and carry on placing your components and traces for the PCB your designing . Anything that has been deleted from the rats nest won't generate on the 3D viewer.It seems like a complex work around but what can you expect from something that's free.

author: EntropyWizard
author_rank: Contributor
timestamp: September 28, 2020, 01:29:52 pm
content: A trick I found somewhere is to edit the properties of your component, in this case the off-board LEDs, and change the reference value to begin with the # symbol. This is how the power symbols are managed by Kicad, and it seems to work fine for your own symbols as well.

author: Simon
author_rank: Unknown
timestamp: September 30, 2020, 06:13:25 am
content: KiCad is for PCB's, if you put a part on the schematic it's going to be destined for the PCB. You can bend things, I use KiCad for wiring loom schematics.How about if you create a symbol with no pins? You can have a part with no footprint, it will just grumble at you when you import the schematic to PCB.As suggested do a symbol for your connector that includes the LED etc but it would not call it up on the BOM. Essentially KiCad projects only contain stuff that is on the PCB, if it's not then it has no place in the project. You need to document it some other way. Boards that I design go into other things and have wiring plugged in but these are all documented separately.

author: G0MJW
author_rank: Regular Contributor
timestamp: September 30, 2020, 07:33:51 am
content: Why not set the part to not included on the PCB? See bottom middle of attached.

author: pierreraymondrondelle
author_rank: Contributor
timestamp: September 30, 2020, 01:39:05 pm
content: If my understanding is correct, you have 2 PCBs: one with the logic glue and an output connector plus one with an input connector, a display and a bunch of LEDs. If so, no problem, here's the procedure I've been using for long:1- Draw your schematic with all the parts. Don't put any specific label on the connector lines and don't join the connectors together on eeschema. Double chech the pin correspondence since the nets will be different on each side. Annotate and check it then allocate footprints:and generate a netlist.Due to the fact that connexions don't exist in between the connectors and because there's no unconnected pin on them since they are connected to parts on the other side, the rule checker won't cry. If it reports an unconnected pin, put an " X " on it to calm it down.2- Open Pcbnew from the Kicad Manager. Draw or import the edge cuts. Call the netlist, it imports all the parts with their respective nets, place them and route your PCBs on the same layout. There will be two separated layout on the same window without any ratsnet between them. Check it for errors. You also may open the 3D view (Alt-3), you will see two different boards, side by side.3- It's time to separate the PCBs for creating the fab files. Open the project file in the Explorer (from Kicad Manager: Menu, browse, browse project file). Create two new folders i.e. "board1" and "board2" under the project's one. Copy in them the .pro, .sch, .lib files and the freshly designed PCB. Rename all the files with the folder name they're placed in (i.e.: board1.pro, board1.sch, board1.kicadpcb, .board1-cache.lib). If the schema is hierarchical, only rename the root file. You have created sub-projects that can be autonomous.4_ Open the 1st folder, call PCBnew from the sub-project Kicad Manager. Delete all the irrelevant parts and machining layers you have added, including edges, save the board, place the Origin for the fab files. Create the gerber, excellon, ... files, depending on your needs. Do the same with the second board.5- Should you need to make a modification, it is preferable to do it on the original set and repeat the procedure. Follows an example of one my designs.Hope this helps

author: bitman
author_rank: Unknown
timestamp: September 30, 2020, 03:17:36 pm
content: Quote from: G0MJW on September 30, 2020, 07:33:51 amDon't see those options. I'm using 5.1.6 so I don't think this is a version issue?

author: bitman
author_rank: Unknown
timestamp: September 30, 2020, 06:11:16 pm
content: Quote from: pierreraymondrondelle on September 30, 2020, 01:39:05 pmYes and no. This seems to akin to just creating two different kicad projects - which would have the advantage of not having two copies of the same design. Not sure how other people's workflow is, but I find myself spending more time modifying/changing things after the initial design than I spent on the initial design. So having multiple copies to keep track of would very much work against this.For now I've actually implemented this partly. The DRC doesn't know what's going on and that's bad, but it allows me to at least do the PCB layout on two boards. I created two "end points" - two plugs/connectors and they are not connected together. So the schematic is basically in two parts. I then have two areas defined in pcbnew. That's for now allowed me to do a basic prototype board setup that I've been testing with - although next time I need to remember to print/display it mirrored as you flip the PCB over when soldering .. confusing when you don't.I actually have 3 big part - or 4 if you count all external features. A board where a micro-controller goes that won't have room for much else (ESP8266) and another with power and output control (the signals generated by the microcontroller goes back into this board). From this board I have two other connections - power LED that will go into a case and a series of power LEDs that this little thing will control. For now, I just have a plug representing the power LEDs - doesn't really help someone reading the diagram understand what this is all about, but it does allow me to design the PCB "correctly".I am definitely going to "play" with the # in the reference id trick. It very much sounds like the immediate solution.

author: janoc
author_rank: Super Contributor
timestamp: September 30, 2020, 08:57:06 pm
content: I have done this recently on a project which had some off-board sensors connected which I wanted to be in the schematic for documentation purposes but not on the board.Easy - include the offending bit in the schematic, connect them using e.g. connectors or pin headers (so that you have something to put on the PCB) and then when you are placing components on the boarddeletethe components that are meant to remain off-board from the PCB. This won't remove them from the schematic nor the netlist, only from the PCB editor.Problem solved.KiCAD will not throw DRC errors for these components if they are not on the board and not connected to anything else present on the board. That's why we have put those connectors there - one half of the connector is on the board connected to the rest of the circuit, the other half gets deleted with the external components. The only annoyance is that whenever you reload the netlist, these will re-appear unless you disable adding of missing footprints in the dialog. Not a big deal - just keep them grouped somewhere on the side of the sheet and delete them again.It is not ideal solution and likely would get fairly annoying for larger off-board bits but then you can e.g. hide that into a module, dummy component or whatever.

author: pierreraymondrondelle
author_rank: Contributor
timestamp: October 01, 2020, 02:03:04 pm
content: [ Specified attachment is not available ]Quote from: bitman on September 30, 2020, 06:11:16 pmI'm not changing anything after the layout is completed. BUT, I must anyway have to plot the fab files and this can't be done with a combo design. This is the reason why I split the layout into individual boards and delete the useless parts.OTOH, nothing else than the PCB is necessary for this purpose. I'm following this complete procedure only to keep the trace in mind for future modification and to keep the project tree quite clean. I perfectly could split the PCB in the main project folder with different names when I save the combo PCB.Doing this way, I MUST then run PCBnew in standalone mode (directly launching Pcbnew from the \bin directory of the kicad program) to process each board, creating the output files. Not a big deal !Please note as well that the normal procedure would be to draw the schematics in a hierchical mode then create sub-projects from every sub-hierarchical file then routing the PCBs from these sub-projects but for simple PCBs I'm too lazy to bother with labels!Quote from: janoc on September 30, 2020, 08:57:06 pmNot necessary to delete the offending parts, instead, when the schema has been annotated and checked, before generating the netlist, don't allocate footprints, these parts won't appear on the board when the netlist is called and the DRC shouldn't yell after you: [ Specified attachment is not available ]For a more general point of view, I just stumbled accross this post:https://www.eevblog.com/forum/kicad/tool-for-panelizing-in-kicad-kicad-util/I didn't check the addon yet, but, since its purpose is to attach several PCBs together on a single layout, separated by "mouse-bits" to ease their separation, it would probably fit your needs as well.

author: greenpossum
author_rank: Frequent Contributor
timestamp: October 01, 2020, 02:16:20 pm
content: Quote from: bitman on September 30, 2020, 06:11:16 pmKiCad is oriented towards creating one PCB design per project, and it's possible to tinker around the edges to include some off-board components. But larger projects call for the use of system level diagrams to combine everything. When you consider that a full project may have 3D printed housings, firmware, diagrams, documentation, etc. then the PCB is just one part.

author: bitman
author_rank: Unknown
timestamp: October 01, 2020, 03:03:56 pm
content: Quote from: greenpossum on October 01, 2020, 02:16:20 pm3D models and PCBs together is one of my main challenges with KiCAD. I 3D print most of my housings and features and making sure a PCB and the switches, nobs etc. fits, don't overlap, the wires to connect them will fit well - well, not easy. More than once I've realized that a TO220 component (board connectors, anything "large" on the PCB) gets in the way, doesn't get enough airflow etc. so I have to go back, after having put everything together. Part of the challenge is that while KiCAD has 3D foot prints for quite a lot of the components, I have none of that available wtih FreeCAD, OpenSCAD or even Blender (not using Blender for this stuff anymore). So the complete design is really hard with my current tools - lots of trials and errors.Is it worth a yearly subscription of close to $1000? Nope ... not for me. KiCAD, OpenSCAD and particular FreeCAD are constantly improving and things are getting easier. So I just bite the sour apple for a bit more and taking it as a learning experience. But you're absolutely right that it's missing. It would be nice if KiCAD could validate with an imported 3D model that everything would fit. That I could add wires/connections to see how everything would align - but that's probably years out.

author: janoc
author_rank: Super Contributor
timestamp: October 02, 2020, 12:53:29 pm
content: You can have all that 3D stuff available using the KiCAD StepUp mod.https://github.com/easyw/kicadStepUpMod/With that you can export the board in STEP or IGES format, load everything into FreeCAD and design your enclosures. Works a treat. If you don't want to use FreeCAD, export a STEP and load it into Fusion360 or whatever else you want to use.Otherwise KiCAD allows to export the entire board including 3D models a VRML or STEP even without the StepUp mod but it is not as seamless and the files are harder to use.Quote from: pierreraymondrondelle on October 01, 2020, 02:03:04 pmWell, you can do that but if you want to generate two board from the same schematic, it will be a pain if the components are not annotated or the footprints have not been allocated.Also, it is much faster to select the offending parts and hit DEL on the board than to edit them one by one in the schematic and remove the footprint information (new libraries have footprints pre-associated with symbols already, no need to associate manually using cvpcb).

author: pierreraymondrondelle
author_rank: Contributor
timestamp: October 03, 2020, 10:55:11 am
content: QuoteYou're correct concerning the procedure I described in the last post. It leads to duplicate the schema if need is several boards and keeping the different board's footprint allocations. So, forget it unless it's a one board project with external parts that don't deal with the layout itself (motors, indicators, switches, ...). I replied too fast, extrapolating a specific case I already had !However, I'm not using cvpcb, finding it outdated, slooooow and totally friendless. I do prefer using the "edit symbol fields" menu icon, perhaps pointing to cvpcb in the background, but pretty much friendly and easier to use. This doesn't remove sense to your remark !Currently, retrieving parts from the pile of components for deleting the irrelevant ones is a PITA.I think it would be far easier if a tag was inserted somewhere in eeschema and a filter implemented in PCBnew to sort the parts. Regarding eeschema, the "edit symbol fields" icon opens a table providing room for that. Perhaps in pcbnew a python script would do the trick for sorting the footprints off the pile. This is out of my knowledge however.Not annotating a schema wouldn't allow to DRC it then avoiding the netlist generation. So it's a bad idea.The best, of course, being to design a hierarchical schema, keeping one project per board.I just attempted to create daughter schema files directly in subdirectories of the main project. It works but, of course, it doesn't create the sub-project .pro files. Daughter files may be updated normally (via kicad Manager) from the main project as well as from the sub-projects with kicad in standalone mode, the hierarchy is flattened to the edited file. The main project files are automatically (but not instantly) updated and vice versa. Both projects must not be open during the operation to avoid the risk to overwrite the freshly modified filess. A restriction however: after the hierarchy is built, the daughter files shall keep their names otherwise the hierarchy boxes needs to be updated in the main project.I have to dig deeper this idea for my next projects. It would withdraw the complex procedure I described in my first post. The part allocation might be made in standalone mode as well as the netlist generation from inside the sub-projects. For the moment I'm just expressing an idea, mainly for keeping the thread's follow-up.RegardsPS. thank you for your reply, it gave me ideas for improvement.

author: bson
author_rank: Unknown
timestamp: October 04, 2020, 01:04:05 am
content: You could use a LED symbol but a connector footprint.I don't include off-board components. A text annotation on the connector saying this is where the power LED plugs in is clear enough. It's an interface. I document the interface, just sticking a LED symbol there says very little.

author: janoc
author_rank: Super Contributor
timestamp: October 04, 2020, 12:37:29 pm
content: Quote from: bson on October 04, 2020, 01:04:05 amThat depends.If it is only a LED, sure. But when you have e.g. an optical encoder off-board (LED + phototransistor + some resistors), matrix keypad or something else where the external parts are actually important to understanding the circuit, then just sticking a connector with several pins is not very helpful.

author: G0MJW
author_rank: Regular Contributor
timestamp: October 13, 2020, 09:07:34 pm
content: Ah - 5.1.6 is very old. We should be seeing Version 6 out soon now which probably will have that capability along with many other nice new features and bugs. You could risk the nightly builds as long as you keep them separate. As V6 gets nearer they seem to be getting more stable, but not for anything critical of course as there are no guarantees they won't break your design, PC or coffee maker.Mike

author: G0MJW
author_rank: Regular Contributor
timestamp: October 13, 2020, 09:20:57 pm
content: Quote from: bson on October 04, 2020, 01:04:05 amYou can also create a 3D plug in module if you like. Use it on another board. Just needs a 3D model in STEP or WRL, which KiCad can create those modules. Rather neat.