Yet another Altium to Kicad question

I’ve got some questions…FWIW, I’ve been an Altium paid sub for 34 years, and a industry prof.
I’ve read topics posted here similar to my post here, since they come and go after 90 days hence I started a new topic .
FWIW I would be happy to donate to Kicad what spend what I do now, about USD2000 / year on Altium subs, or more . the money is not the issue for a pro user. $2000/year is the tip of the iceberg.

  1. I dont use an autorouter, for anything, length tuning or routing traces.
  2. I’m a fair user of rooms in Altium. What’s the support like for that ? I would say I am a BASIC user of rooms . Most of my boards are 6 to 10 layers of 0.5 to 0.8mm BGAs with complex, multi tiered routing clearance rules with high voltages mixed around the board, and tightly controlled diff pairs.
  3. The plug-in system I like. Just how flexible is this, as I can write code, like, for example if I want to totally emulate the keyboard shortcut functionality in Altium which is very convenient (and used to be fast) .
  4. I’m a heavy user of polygon planes and polygon cutouts.
  5. I dont use simulation tools within the PCB SCH CAD system (nor autorouters)
    any comments welcome…
    In recent times, as all Altium users will know, the company has pushed hard on new features, and on new sell methods. which in their defence some of them are very nice, but the tool has become SLOW. Slow to do simple things you do often like bring up a properties panel for a component once dbl-clicked on, or whatever. And the company is persuing different tiers of subs and online mode subs, and hasnt fixed alot of long term gripes. The bug-crunch bug list got up to like 600 items and then suddenly disappeared. Well, just examples.
    Thanks for peoples time take to read, -Glen.
2 Likes

I can offer some insight only for a couple of points:

  1. Rooms are not supported natively, but there is a plugin available (GitHub - MitjaNemec/ReplicateLayout) which I am the author of. As I am not familiar with the Altium’s room functionality I can not say how they compare, but the plugin is quite versatile as it allows for source and destination room to be on different layer (top/bottom) and it properly handles nested rooms. The terminology is obviously different and I think that the worst part of it is the practically nonexistent documentation.
  2. There is currently no way to bind the plugins to keyboard actions. You can change the shortcuts, but I can’t tell if existent flexibility will allow you to come near your Altium experience.

KiCad has improved a lot over the last few years, but development is a bit chaotic, and this is quite logical for an open source project such as KiCad. Developers are free to work on any part of KiCad they have an interest in, and this also results in some area’s getting less attention than they should.

One of the gaps in KiCad’s abilities is handling of differential pairs. KiCad does have some basic functions for routing differential pairs and that works quite nicely, but at the moment it still has very little support for editing a differential pair. For all editing functions a differential pair is handled as being two individual tracks. KiCad’s interactive router is good at shoving tracks aside to make room for more tracks and via’s, and when it shoves aside a differential pair, the gap in the pair is not respected. The lack of better handing of differential pairs makes it quite cumbersome to work with these.

On the plus side, there is commercial support available for KiCad from https://www.kipro-pcb.com/ and they also do priority development. You can’t buy many development hours for USD1600 (difference between your USD2000 and a yearly subscription of USD400) Maybe it’s an option to invest more now, and recoup it over the coming years, maybe you can combine it with others interested in the same features. maybe Kipro-PCB is already working on this.

Up to a few years ago development of KiCad was quite slow, and over the last few years development has been accelerating a lot. Kipro is getting more work, donations are increasing, and as a result Wayne Stambaugh announced at last summers KiCon (Or was that during KiCon Asia?) that one or two full time developers have been added to the KiCad development team. As most regulars on this forum, I am a volunteer donating my time to the user forum, and I do not know much about the commercial support part of KiCad. If you want to know more about that, I suggest you contact kipro directly.

I never used altium. I guess what you call “polygon planes” are called zones and rule area’s in KiCad, and their support is quite good. Copper zones can be nested with different priorities and cutout area’s can also be defined in a zone. With rule area’s, copper zones can be modified, or you can use text based rules with them. With the custom rules you can also set up things such as extra wide clearance between net classes belonging to the high voltage part and the other net classes.

KiCad development is very transparent. As an open source project, everything is put in git and you can see the full development history on https://gitlab.com/kicad Currently there are around 1300 open issues, and several hundred issues get created and fixed and closed again each month. Clear bugs and little GUI nuisances and inconsistencies often get fixed within hours to a few weeks (Record I’ve seen was less then half an hour between reporting an issue and a “fix-comitted”). Big and complex issues can linger along for a long time. The differential pair thing I mentioned earlier has been mentioned as early as 2016 for example.

You can have a look at a bunch of selected projects on: https://www.kicad.org/made-with-kicad/ KiCad also has an importer of altium PCB’s and schematic files. (I’m not sure if it directly does projects at the moment) Import is not 100% the same but it is quite good. As a result you can import your own projects into KiCad as a starting point to explore KiCad’s capabilities.

2 Likes

@MitjaN thanks for the info on rooms, I’ll try it. Most requirements are what we call “multi channel support” where you have the same schematic and layout copied and connected to say, different pins on a connector. More advanced is ability to have variations on each channel.
@paulvdh - thanks for your time taken to write an indepth reply. OK, so sounds like diff pairs are a ripup and reroute job if you dont like them, and support is just not there right now. (IE respecting gaps, calculating and showing in real time trace time including via time) , that’s probably the killer for me. That stuff needs to work well, although altium diff pairs is far from perfect also. There is good support these days for various lenght tuning aids, all different types of trombones etc…However as you say, there is professional dev available. Perhaps I should try some basic boards that dont have diff pairs in kicad- will need to import ALL of my libraries, I am sure that will be a job.
" Zones " support sounds reasonable. cheers

KiCad does have some length calculation and length tuning support, and this works for differential pairs too. It’s just that for some operations KiCad “forgets” a track is part of a differential pair.

For whatever perspective it may provide, I’ve designed PCBs for <customers you’ve heard of> using EAGLE, DxDesigner/PADS, Altium, and now KiCad. Some of them have reached orbit. I’m no Robert Feranec, but I have done some PCB design work in a few different systems from which I have developed opinions over somewhat fewer years than yourself, Glen.

I recently laid out a second spin of a design with a 64-bit DDR3 SODIMM hanging off a Zynq 7000 - both spins done in Altium, roughly similar levels of effort and both successful. Did it again a couple of months later in KiCad just to check the state of diff pair support. I found that while Altium has better support for (e.g.) adjusting an existing diff route or for length-matching all the lines in a byte group, I finished the process a LOT faster in KiCad; the length tuning was a teensy smidge more awkward but I firmly believe produced better routes. The X-signals in Altium are probably the biggest feature I would miss, but you can work around that by laying out fly-by segments sequentially. I did not fab the KiCad version, so I cannot verify that the complete route was successful. I won’t be going back to Altium. We’re letting my seat lapse.

Rooms:
The biggest challenge I have faced when importing existing designs with Rooms is that for a given repeated part, Altium wants to use the same RefDes with a (dynamically-generated) suffix per room but KiCad numbers everything flat and static. The parts in the (existing) layout will not link to the symbols in the (existing) schematic. There’s a lot of cleanup there and I haven’t found a satisfactory workaround. Best way to learn on the Internet is to post something wrong, so maybe someone has better info or a better way.

Plugins:
For new layout work (as opposed to imported from Altium), MitjaN’s ReplicateLayout Plugin is, again, maybe not as slick-looking or integrated as Altium’s Rooms but I think it works far better as a layout tool. (Thank you!) It’s a better operational paradigm IMNSHO. REALLY fast too. Also, while we’re bragging about plugins, Interactive HTML BOM is a home run. Poster boy for Why Plugins Are A Good Idea. At least once I’ve imported a design we had done in Altium just so I could use the Interactive HTML BOM for assembly. I personally could not be happier with the use of Python for scripting.

I’ve transferred a few existing designs over from A to K, and Rooms and Harnesses are the only significant issues I can think of. There’s some cleanup; harnesses don’t really have an analog, aren’t usefully imported. You’ll probably use busses instead, and moving forward will probably need to adjust your habits for assigning signals to busses. If you want to keep developing and revising the design, you may want to replace the imported symbols and footprints with native ones for consistency (or for database libraries in KiCad). One might ask why import at all if you’re going to end up changing all the parts and fixing a bunch of harness differences; I suppose the biggest advantage is that you keep the topology intact in both schematic and layout, which has some value.

Overall, what I’m describing as challenges I mostly ascribe to differences in operational paradigm rather than KiCad faults, and there’s only so much that can be done in the import and conversion - which I think KiCad handles at least as well as the other three on my list. There’s minor stuff: I’ve got a design I’m sending out today with 88˚ arcs for traces, and current stable versions of KiCad made that really hard to get right. V7.99 handles it perfectly. Development is ongoing and rapid and gratifyingly responsive to designer needs.

All of the above are, of course, my own opinion and very possibly wrong. Definitely long-winded. Glen, hope it helps.

–Rob

6 Likes

Rob, your ‘long winded reply’ is appreciated and welcome.

OK on the design examples. and similar direction to me, I have an RF bend, so my FPGAs end up with 50 to 60 LVDS pairs with 400 MHz clocks. More than anything else, I have some rather creative and people might say autistic detail to my polygon pours and ground splitting since my designs are going for 120dB of something… But I tend to be relaxed in my layouts since I am not trying to fit my designs in a matchbox- they’re industrial. But these days signal integrity drives max lengths and how big your board is , at least for me.
As for rooms. I use them from time to time. Not often, but when I use them, its in spades. So, I could deal with doing a fresh design , or at least a design with a bit of redrawing effort to meet features. No big deal. Harnesses. Hmm I am a pretty big user of harnesses, but I would say that I only use them because they are there and otherwise… I’d be perfectly happy copy and pasting bus entries, albeit with a lower level of accuracy as the harness reduces, in my opinion, probability of errors.

The marvelous thing is, if I really dont like something, well I can modify the code and recompile if I see the time-benefit. I would need to improve my c++ – my C++ is basic multiple inheritence classes and basic templates from K&R … Modern post 2010 c++ looks to me like goobly gook at least in the headers and declarations. but can do python etc…
I’m a concept to schematic to PCB to board person … HW and SW… I have in house pick and place (Samsung SM482+) so I ‘feel’ errors and optimizations all the way to the reflow !
In recent times, Altium is taking away features from the standard subscription (yes, I am losing features) we all have and turning it into different tiers and this somewhat breaks interchange between users, colleagues etc, also.
cheers, glen

1 Like

it’s not really that busy is it ? I think PCB complexity is all relative. you get used to whatever you do. We all remember the first 32 bit DDR we had to route and from then on, no big deal… and maybe using every pin on an FPGA bank… certainly rule setup time is in there.

I think you mean “Stroustrup”, not K&R which defined C. Multiple inheritance came in 2.0, templates a bit later.

1 Like

There is likely to be a flood of Altium people headed this way, Altium has changed their license structure and killed compatibility of the tool between versions, and so there is a mutiny…

You mean that new Altium versions are no longer forward compatible? Do you have a reference to that claim and any idea if it affects the KiCad importer with Altium files of the latest version?

Yes, this is the case.
Importer. Yeah, that is a good point.
the constraint editor deals with all rules, netclasses , constraints… requires PRO subscription. .
schematics would still be OK to be imported I suspect.

The meaning of this is unclear. First, are you answering to “You mean that new Altium versions are no longer forward compatible?” Second, please specify exactly what you mean. What is compatible and what is not with what. “Forward compatible” has or should have a specific meaning (Forward compatibility - Wikipedia), but you hardly meant that, and I don’t know if pointhi meant that.

there are a few other forum posts discussing this.
The discussion is around the new Constraint Manager. Projects using constraint manager (PRO licenses ) by user reports, appear to be not readible by STANDARD licenses.
Now, I dont know if you just lose all the information in Constraints Editor, or if the project willnot load. Since you can generally load a PCB or SCH file in isolation, I would expect that still to work, without all the constraints. Existing licenses are all converted to STANDARD. PRO is a new upgrade .

2 Likes

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.