eeschema: Allow multiple selectable names for multifunction pins.

Registered by Lucas Hartmann

When working with most microcontrollers there are often pins with 4-8 different functions mapped to it, making schematic symbols either confusing (e.g. PA0/PWM1/AN0/RX0/I2CDT0) or non-informative (just PA0). Allowing multiple names for a schematic pin would allow the designer to choose what name to show (eg: PA0, PA0/PWM1, PA0/AN0, PA0/RX0 or PA0/I2CDT0), greatly improving readability.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Lucas Hartmann
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

While I understand this is a really far-fetched idea and would require quite a lot of work to implement, I also feel this has positive organizational impact and, AFAIK, it is no implemented anywhere else.

Multipurpose pins could show a special, non-printable "multi" marker on schematic view, and allow [E] key to choose which name to show from a list of alternate names. The down pointing triangle of combo boxes placed on the INSIDE of the text would probably be a good marker.

Alternatively a checkbox list of all functions could be provided, so the designer could select which names are of interest for the schematic. This would allow for runtime multiplexing pins to be represented, e.g. PA0/RX0/AN0, but would make symbol creation more complicated.

During schematic design a dashed box could be drawn around the default name as a placeholder for the longest name. Or just draw the longest name and the "multi" marker. Pin editor would have a list editor, like the TAGs for footprints or aliases for schematic symbols, in order to allow the user to input alternate names.

ABOUT COMPATIBILITY:

DATA STRUCTURE: Pin names should still keep the default name as usual, and an optional list of alternate names should be added.

OLD SCHEMATICS ON NEW SOFTWARE: When loading an old schematic or library no change should be necessary, the alternate names list is optional.

NEW SCHEMATIC ON OLD SOFTWARE: When modifying a pin name on new software a symbol could be created/updated on the project cache. This symbol would have the the alternate name as the default pin name, old software would then simply read this as a regular symbol, except:
- If old software fails when an unknown entry (the alternate name list) is found then the alternate names should be erased from cache when new software saves.
- If old software ignores unknown entries then alternate names list may be safely stored on the cache. Default name on cache should be the selected name, first alternate name on cache should be the real default name.

NEW SCHEMATIC ON NEW SOFTWARE: A new schematic may have been edited on old software, saved, and opened again on new software. if the previous two considerations were taken into account then the worst case scenario is the alternate names list is lost on the cache. New software should check cached component names for matching local libraries, possibly looking for a text tag in the cache component name. If a match exists then the software should ask the user if he desires to repair the cached component's alternate name list format.

NEW LIBRARY ON OLD EESCHEMA: Old eeschema would (hopefully) ignore all alternate name lists.

NEW LIBRARY ON OLD LIBRARY EDITOR: This is potentially destructive for the alternate names list. I have no idea if how current library editor behaves when if finds unknown properties in pin descriptions... Are there compatibility markers like those of JFFS (RW_COMPAT_COPY, RW_COMPAT_DELETE, RO_COMPAT, INCOMPAT) in the data structure? RW_COMPAT_COPY would probably be applicable here...

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.