kicad-developers team mailing list archive
Mailing list archive
Feedback and wishlist
OK, now for my dose of feedback from colleagues (and me :P)
eeschema now is IMHO pretty good: compared to orcad capture 9 (the other eda I have used and pretty much prevailing around there, if only because it'srelatively cheap. OK we're at release 16 but I don't have it) the only 'useful' things is missing are:
- Sheet folders (for 'flat hierarchies'), I can leave without them...
- MAYBE bus ports (only maybe)
- Better navigation (the 'find' in eeschema is just the minimum)
For example, navigating through offsheet connectors (our global ports). A VERY useful thing would be to have a cross reference shown beside the connector itself for following it in print (something like: Sheet 2/A3, 3/B3 ecc). And of course a click-trough like for hierarchical sheets. View bookmarksas a bonus for really large work.
Also the property grid is useful (and could replace cvpcb, as already proposed).
Other things concerning the system as a whole:
- Net names should be -stable- i.e. fixed once assigned. Otherwise things would change at every netlist generation. For example now you have to place a label on every net used for copper zones, otherwise the zones just disappear, because the net name changed. Also, it would be possible to implement the following thing...
- Net properties. Something like classes in Eagle. Things I missed in eeschema/pcbnew (net properties are mostly for use during layout):
= Default trace width, minimum trace width and via padstack to use. A 40Atrack should be obviously larger than a thermocouple signal one :D VERY useful for drc and during routing
= Trace clearance: a 230VAC has usually a 1.5mm clearance. SSOP have pad at 6-7mils distance... the absolute limit in drc is useful for process limits (i.e. they can't etch tracks smaller than 8mil or something similar). A REALLY GOOD function would be a matrix clearance (i.e. a 230VAC has a clearance of 1.5mm with another 230VAC track, but it needs to be 5-8mm with a SELV track). Maybe it's too much, but a per-net clearance would be really useful (shouldn't be too difficult to implement).
= Some package allows layer affinity (i.e., this net can go only to layer1,2 and 3)... never used it. Maybe with a good autorouter... or maybe because I never done work with more than 4 copper layers...
= Naming the net without placing a label? could be useful for 'critical' track, like guard loops or high impedence amplifier feedbacks. A label on the sheet is only noise, but during routing I'd like to be warned that it's an important track. Actually, I simply route the important ones first of all, but in a complex board or during ripup everything can happen (real life story: the thermocouple signal above was routed beside the main MPU clock; that gave ehrm... interesting readings; luckily the PIC can do an A/D conversion with the main HSO turned off)
- Someone could be interested in more graphical flair... the orcad tutorialfor example pastes a bmp containing a waveform in the sheet as comment; IIRC there's already someone working on this, with beziers and stuff. The same goes for font machinery. But it should handle at least PS plotting (whichunder Un*x is the main print facility). Just remember it doesn't need to be an Illustrator clone :D
- Some way to customize the title block... the reason because they ask us DXF plots is to paste it in a sheet with their personal title block :P:P. But that would mean to have a full CAD system, so maybe just a configuration with a list of field/line position would suffice (something like a metafile). In fact IIRC the internal title block is already table driven in this way :D
Now, for the layout stuff:
- A syntax for mixed unit input; now it works with the 'external' unit (inches or mils). It shouldn't be hard to add a parser to the 'reader' routine to handle a unit suffix. This is because the pcb industry is brain damages,in Italy at least :P it's usual to say: a 12mil track with 1,5mm clearanceand a 0,6mm drill. So we could extend the input box parser to accept stufflike 0,012", 1,5mm and maybe 12mil. The grid dialog suffers for this because it's the ONLY place where you specify the unit for BOTH dimensions. And most SMD packages are designed in mm with imperial pitch (like I said, it'sa braindead industry :P)
- A flag for nonplated hole and separate drill tape for these. I'm hacking around this with some external script.
- Track/padstack classes. The track width history is really inadequate (WHEN it works :P). Also I don't get why we have an alternate via drill withoutan alternate via size... I'd like a combo filled with a track 'style' specified in advance: ie, small tracks: 12mil,0.8mm via,drilled 0.5mm; big tracks: 200mil, 2mm via, drilled 1.5mm; and so one. This could be combined withnet properties above to simplify routing (and have better DRC, too).
- A shove function... everybody has this today... similar to 'drag keeping slope' but pushing away tracks to clearance. We can live without it but it's VERY useful. Of course we could also route with red and blue ink on transparent paper :D
Other stuff that could be useful/interesting:
- Libraries fetched from a DB, like orcad CIS. I don't know if wx has standard DB access classes or if we need to choose between mysql/postgres/whatever. The important thing is that it has to be a NETWORK db. So we could avoid mailing colleagues new libraries and package :D (we keep them under svn, by the way) And of course there it would be a lot more manageable (aliases,order number and such things)
- Vertical component clearance. Felt the need for this one or two times only, I simply drawn on a layer the zone of interest and checked the components in it where not taller than the available space. IIRC orcad handles them as special obstructions.
- The fanout function could be useful (it routes power pins with stubs thruvia to power planes). I have not done a lot of work with 4 layer boards, so I have no idea on how much time could save in routing.