I'm an electronics engineer and PCB designer who has been working a lot in OrCAD and allegro, but have been transitioning more and more to KiCad. Since i have many hundreds of designs already done in OrCad, and especially often get reference designs in OrCad format, i have been working on a Windows app that converts them to KiCad.
Thus, i was thinking this would be a nice contribution to make this app into an import option for KiCad so i used Claude with the latest Fable 5 to turn my app into an import option in KiCad. Before i submitted the code for this, i ran the app on some 800+ .dsn files i had accumulated on my computer over the years, and i have fixed all issues i could notice.
How it was validated
--------------------
I checked correctness by exporting the imported netlist with kicad-cli and
comparing named-net pin membership against OrCAD's own stored net tables. I ran
this across a corpus of 815 real-world designs (OrCAD releases spanning
~1995–2026): all import without crashing, and on modern flat/multi-page designs
the net membership matches. Hierarchical designs currently import flattened
(with warnings); pre-2003 files are rejected with a clear message. Every page
also loads and plots in the current master build.
Prior art / relationship to existing work
------------------------------------------
Format knowledge derives from the MIT-licensed OpenOrCadParser project plus my
own reverse engineering. I'm aware of the draft MR !1963 by Werni2A adding an
OrCAD Library (.OLB) importer — this schematic (.DSN) importer is complementary
to that effort, and both build on OpenOrCadParser.
Disclosure: AI assistance
-------------------------
In line with KiCad's tool-generated-content policy, I want to be transparent up
front. The OrCAD .DSN format reverse-engineering, the validation corpus and
methodology, and all the scope and design decisions are mine. The code itself —
both the original standalone converter and this C++ port into KiCad — was
written with an AI coding assistant (Anthropic's Claude Code) under my
direction, and I iterated on it against the ~815-design corpus until it was
correct. I've reviewed and validated the result and I take full responsibility
for the code and its maintenance.
The branch is on my fork here for reference:
https://gitlab.com/TaipeiViking/kicad/-/tree/orcad-schematic-importerThanks for taking a look — I'd welcome any guidance before I raise the MR.
Next, i am working on AI driven auto place and route that i would like to also contribute in the future.