I have been trying out the Altium importer(Version: 7.0.7-7.0.7~ubuntu22.04.1). It seems to work quite well for the layout, and the schematic is a good visual representation. However, the schematic import seems to make harnesses into an empty hierarchical sheet with graphic lines connecting them. If I understand correctly I would have to create busses out of all these signals and ferry them in and out of the hierarchical sheet in order for this to sync up with pcbnew like a normal kicad project. Is this the normal work flow of an import like this or am I missing something?
KiCad’s altium importer is still incomplete. I have done some imports with single sheets and PCB’s and this seemed to work quite nice. I do not know what such a “harness” is and whether KiCad even has an equivalent for this. So it’s quite possible you have to import sheets separately and do some manual work to get it to match up.
Do note that you can use DRC to find faulty connections if you make some mistakes during the repair of the schematic during a conversion.
I’m not very familiar with Altium either having used Kicad for quite a while now. However, I’ve looked at quite a few designs in Altium because STM designs their stuff in it. It seems like a “harness” is basically a hierarchical representation of a bus, but it may be more complex than that. It is used in hierarchical designs to gather signals and send them to another page. In any event, you are right that it is working pretty well. I just wondered if anyone here had any specific experience in this area.
harnesses in Altium have appeared recently, and this function is new… but I know a lot of people who use Altium for drawing power circuits… it’s easier to make there are not 1000 windows with necessary and unnecessary protection…
Sure? I started to use Altium harnesses at least 15 years ago.
I also was thinking I had been seeing them for quite a long time. Was I correct in saying how they are used in Altium?
This is correct to me but Altium explains it much better than I could: Harness Design in Altium Designer | Altium Designer 23 User Manual | Documentation
I am not an expert user on this topic.
I probably expressed it wrong, not in the diagram but visually… drawing
Harness Wiring Diagram.Wir Docphysical connections within the harness.
Harness Layout Drawing
Wiring harness. Visually. With images:
Source: wiring harness at DuckDuckGo
Hi, there is no anything close in kicad to altium’s harness functionality, so I have made harnesses to be at least imported graphically, so one would not miss that harness existed in original altium sch. You need to manually rework all connectivity related to harnesses in kicad, no automation is possible here because of functionality gap between altium and kicad (harnesses can be hierarchical, this cannot be handled in kicad with existing kicad objects available)
Thanks poco, this is what I ended up doing. I changed the harnesses to a hierarchical schematic with busses that get broken out inside. It isn’t immediately clear to me why this couldn’t be automated, however, it is probably because of I don’t fully understand the depths of what a harness can be in Altium. In my case it was a simple matter of creating a bus as a hierarchical pin and breaking it out to multiple pins inside my hierarchical sheet I used as the harness.
Thanks for your work on the importer, it’s a really neat tool.
That’s not what @anderwm was talking about. I guess he was talking about the schematic harness element in altium that bundles multiple signals into a bus (refer to picture below). This one is available at least for 10 years. Currently, there is no function like this available in KiCad.
Yes, you are correct.
But that’s kind of what a bus does in Kicad right? It’s just that you have to manually break them out.
I feel like there is an equivalence between an altium harness and Kicad [bus + hierarchical sheet], but maybe I’m missing something.
My post was apparently so far off that I thought it better to delete it.
Sorry, but nope again. A harness in Altium has completely no relation to a wiring harness (or any AWG, length, etc. information - it is only a name). It is really just an element, that bundles multiple signals into a bus. Usually this is used to simplify block diagrams in larger schematics. A detailed description is available here.
Here you can also find an example on how this element is used for connecting hierarchical blocks inside a schematic (of a single board pcb). Please refer to the STM32MP1 DK2 schematic where the harness on page 3 is used to bundle multiple signals in a bus that is then routed via a hierarchical label to the hierarchical block diagram on page 2).
It is obviously correct that there is no native function in KiCad that available by now that does the same thing. If you would draw this in KiCad, you would probably break out of a bus for each signal and route the bus to the hierarchical label. BUT: i really wonder, if it would be possible to implement a workaround for the Altium-importer that just keeps the same schematic logic and maybe also almost the same appearance for the imported schematic by utilizing and combining schematic elements that already exist in KiCad (symbols, labels, bus entries, maybe also net ties and global bus definitions?). This would at least allow import of projects where this structure is used.
Well, I would say this is totally possible by now - check example attached.
Altium_harness.zip (129.8 KB)
Sorry, but this is unclear. What is possible and in which way? Do you mean that it’s possible to import harnesses from altium after all, or that KiCad has the features which would make it possible if it was implemented in the importer?
If the latter, I think the developers would be interest in an example with three projects: the original Altium; KiCad project directly imported; KiCad project modified to show how it could be done in KiCad.
Sorry, I was in a rush when typing this :).
I think it is possible to implement something that looks and acts like a harness inside a KiCad schematic based on existing schematic elements. Therefore, in my opinion this technique could also be used by the Altium importer (without implementation of any further functions of KiCad).
As far as I understood, @anderwm 's main issue was that by now the Altium importer breaks the connectivity of signals connected to any harness. This has to be resolved in order to make imported schematics usable. I did not try importing an Altium Schematic / Project containing containing harnesses - yet.
Yes, I will try to provide this.
Here you go! I first imported the altium schematic of the STM32MP1-DK2 eval-board provided by ST Microelectronics and then replaced some (not all) of the harnesses.
@poco as far as I understood, this is for you then :). If you like, I can also open a ticket on gitlab as well.
The attached example contains:
- Original Altium schematic files (originally available here)
- Original project import result to KiCad (without any edits)
- Log of the import - this also contains some information
- Manually modified KiCad project
- Further work instructions and detailled steps on page 3 (bottom under sheet)
I have replaced the following harnesses:
- Page 3: uSD_CARD and connected harnesses on other pages
- Page 3: LTDC and connected harnesses on other pages
- Page 3: HDMI_I2C and connected harnesses on other pages
- Page 3: AUDIO and connected harnesses on other pages
- schematic_import_log.txt (31.7 KB)
- Altium_Import_Original.zip (904.5 KB)
- Altium_Import_Edited.zip (904.9 KB)
- Edit: the original Altium projects is too big to upload here. Please download it here.
Please let me know if I missed anything or if you need anything else regarding this topic!