Kicad insists on annotating every component with a numeric suffix that can change depending on the sequence of components encountered during the annotation process. HAL, on the other hand, identifies multiple components using a numeric value as a suffix or embedded within the reference. HAL also has singleton components without a numeric value.
A Moby Hack™ merges the two systems: Kicad will annotate each of its components, then Kicad-to-HAL can strip the annotation from the reference to form the HAL identifier.
A Kicad component with a
StripAnno field containing a “1” will trigger the stripping:
StripAnno digit (generally) appears to the right of the component name. A Kicad component without a
StripAnno field or with the field containing anything other than “1” will pass its reference field directly into the HAL component.
The Kicad reference for the
HM2_5I25 component (center right) is
hm2_5i25.0.0 and its stripped HAL reference is
addf hm2_5i25.0.read servo-thread
The THREAD component (center bottom) is a singleton, because there will be only one component with a given thread name:
The Kicad reference appends a zero to make
The stripped HAL reference, as used in
addf statements, is just
addf and2.0 servo-thread addf constant.0 servo-thread addf constant.1 servo-thread addf not.0 servo-thread addf timedelay.0 servo-thread addf toggle.0 servo-thread
Every Kicad symbol must have a reference ending with a period so Kicad-to-HAL can strip the trailing annotation value.