I’m using KiCad to redraw some early 1980s arcade game PCBs. These PCBs used a row/column system to designate components, for example a 74LS107 is at location 3A on the PCB, and that’s its designation. Because I’m drawing the schematic to aid my understanding of the board, and want to use the resulting drawing as an aid when troubleshooting them, it’s important that the references in the drawing match the ones on the board.
KiCad strongly disagrees with this system. If I annotate the schematic, it changes all the refdes so they’re wrong. If I don’t annotate the schematic, the rules checker complains.
I understand that the grid system has issues with ambiguous components (is C2 an IC at position C2, or a capacitor?), but that ship sailed decades ago for these particular boards.
Is there some way to make KiCad
Never change any refdes — only report if there are duplicates or ones with ? still in them?
Consider duplicate refdes per part type? This would let ERC pass a board with C1 (cap) and C1 (IC).
The other alternative I could think of is mapping the old refdes to a number and use that in the KiCad system.
Like 3A could map to 0301 (as A is the first letter of the alphabet) and then you could use U0301 for that component. Or a resistor at 2C could be R0203.
Your feature request is a bit incorrect. You state that IC’s would have to start with an U, but that is not true. As far as I know the only thing that is mandatory for KiCad is that a RefDes has to end in a number. (And I do agree this is a quite silly and somtimes a nuisance.)
A program I used long ago also worked with question marks, and only question marks got replaced with numbers during annotation. (This would need careful consideration during un-doing or re-doing annotation.
As a workaround, you can add a dash (or any other character) to your own RefDes. Then KiCad would change the “A3-” into an “A3-1” during it’s own annotation. This may also help if your grid is too coarse and there are multiple symbols at the same “grid location”.
I just tried a simple test for this and it seems to work.
I actually find the whole RefDes set up wrong. Quite some years ago KiCad added “timestamps”, and later renamed to “UUID’s” to match schematic symbols to footprints. This means that every schematic symbol always has a unique identifier, and this means that the RefDes system is (or at least should be) completely redundant. It is easier for humans, and it can be useful to repair damaged projects, or copy parts between projects, and it has a “history”. But in my opinion the RefDes should only be used for “human interaction”, and KiCad should never ever block on “missing RefDes” and “needing annotation”. It should only give a mild warning when different parts have the same RefDes.
Considering you appear to want:
• Custom Ref’s that don 't change unless you change them
• ERC without errors
• Ability to set Custom Ref’s to schematic sheets Alpha/Numerical coordinate
• Ability to avoid Duplicates if desired
Thus, I dug-up some of my earlier BOM tweaking and related files - I created half-dozen in v5 and they still work in v6.11. I did NOT spend time fussing with making their output’s pretty… but, you’ll get the idea…
So, here’s the scoop by Example:
• I created dumb schematic (not a real circuit - just wanted some parts on it)
• I set the Ref/etc to Hiden
• I Added a Field for each part (called ‘myRef’ ) and set some values
that indicate Schematic Grid-Location (I should have spread them out but, you’ll get the idea)
• Ran DRC check (no problems, no warnings)
• I generated a Netlist
• I generated a BOM (CSV and HTML) I used my custom CSV/HTML but the default should also work)
• I opened the CSV in LibreOffice (spreadsheet) and set desired items
• I opened the HTML in Firefox
ADDED: Snippet of Netlist
Summary: Easy enough to get something useful if willing to invest a few minutes to learn how to tweak the .py files and use them…
Screenshots show various aspects… (Axx crudely refers to Location on schematic) Schematic, Symbol-Field-Table and Firefox with HTML-Bom