Armstrap Naming and Versioning Convension

Format

Use the simple file naming convention when creating boards:

<author>_<board-name>_<version>.<extension>
<author>=([0-9][a-z]\-)*
  • lowercase-alpha-numeric string which can contain dash characters
  • all uppercase characters convert to lowercase characters
  • space characters convert to dash ‘-‘ characters
  • invalid characters are ommited
  • usually a company name, username or website domain name
<board-name>=([0-9][a-z]\-)*
  • lowercase-alpha-numeric string which can contain dash characters
  • all uppercase characters convert to lowercase characters
  • space characters convert to dash ‘-‘ characters
  • invalid characters are ommited
  • usually the name of the product
<version>=[0-9]*.[0-9]*.[0-9]*
  • three numbers with a period separator
  • <major-version>.<minor-version>.<micro-version>
<extension>=(\.brd|\.sch)
  • the given extension of the PCB editor program (brd and sch are the extension for Cadsoft EAGLE files)

Rules

  • There are exactly two underscore ‘_’ characters (aka delimeters) in the filename
  • author must changes when a board forks from one owner/company to another owner/company
  • board-name usually never changes but can change at time of forking to preserve original ‘author’
  • version must change when a board is submitted to manufacturing
  • version does not change when author changes on a newly forked board
  • board-name and version must exist on the board silkscreen layer (top or bottom).
  • [optional but highly recommended] author must exist on the board silkscreen layer (top or bottom)
  • major-version is incremented when:
    • the size (dimensions) of the board changes
    • the interface (connectors) to the board change
  • minor-version is incremented when:
    • any SMT chip is added
    • any SMT chip is removed
    • any SMT has moved
  • micro-version is incremented when:
    • the silkscreen layer is modified
    • a trace is modified
  • major-version changing resets minor-version and micro-version to zero
  • minor-version changing resets micro-version to zero

Remarks

  • major-version changing usually requires a solder-wave/selective-solder re-tooling, re-stenciling and is the most expensive change.
  • minor-version changing usually requires no solder-wave/selective-solder re-tooling, but requires re-stenciling.
  • micro-version changing usually requires no solder-wave/selective-solder re-tooling, no re-stenciling and is generally the cheapest change

Workflow Example

The Armstrap Eagle Board:

armstrap_eagle_1.0.0.brd

Note

armstrap-org_eagle_1.0.0.brd is also acceptible

The company “VOV Technology” forks the board, keeps armstrap branding but adds its own company logo:

vovtech_armstrap-eagle_1.0.0.brd

Note

vovtech-com_armstrap-eagle_1.0.0.brd is also acceptible

The company “VOV Technology” later changes changes a chip on the board but maintains the same board size and interface:

vovtech_armstrap-eagle_1.1.0.brd

The company “VOV Technology” later discovers a silkscreen naming problem and makes a minor change to the silkscreen layer:

vovtech_armstrap-eagle_1.1.1.brd

The Armstrap community intergrates VOV’s changes, removed the VOV branding:

armstrap_eagle_1.1.0.brd

Community member ‘John Smith’ forks the Armstrap Eagle board into his own source code repository:

john-smith_armstrap-eagle_1.1.0.brd

Naming Examples

  • Valid Board Names:

    adafruit-com_mintyboost_3.0.0.brd
    sparkfun_weather-shield_1.0.0.brd
    netduino-com_netduino_plus_2.0.1.brd
    
  • Invalid Board Names:

    mark's_arduino-motor-sheild_2.1.0.brd           // author contains invalid apostrophe character
    arduino-bluetooth-module_1.0.0.brd              // does not have exactly two underscore '_' characters
    supermechanical_twine_1.0.brd                   // missing micro-version
    SparkFun.com_Current-Sensor-Breakout_2.1.0.brd  // author and board name must be lowercase, invalid '.' character in author