Fundamentals 5 min read

Designing a Structured Firmware Version Number Format

This article explains a systematic firmware version numbering scheme—including project name, major/minor versions, build ID, and release type—provides a detailed table of the format, shows a concrete example, and offers best‑practice tips for linking each image to its corresponding Git commit.

IT Services Circle
IT Services Circle
IT Services Circle
Designing a Structured Firmware Version Number Format

Previously I wrote an article on automatically printing version information from a C program; the goal was to ensure the program reports its version at runtime to avoid mismatches during testing. This piece fills the promised gap by describing a relatively standardized firmware version number format.

Mirror Version Number Format

The format consists of three main parts:

Project name (e.g., YIKOU3568, YIKOU4412)

Firmware version (detailed in the next section)

Comments (optional descriptors such as OS, hardware platform, or Git commit ID)

Firmware Version Detailed Format

The firmware version string follows the pattern vXX.YY.YYMMDDN_T where each field is defined as follows:

Name

Format

Length (bytes)

Description

v

v

1

Version string starts with the letter "v"

Major

XX

2

Major version number (00: engineering sample, 01: feature complete, 02~: commercial release). Incremented for major codebase changes or new features after commercial release.

Minor

YY

2

Minor version for bug fixes or small feature additions (requires release notes if increased).

build ID

YYMMDDN

7

Build identifier: Y‑year, M‑month, D‑day, N‑nth build of the day (0,1,2… a,b,c… x,y,z).

release type

T

0‑1

Optional release type flag; "T" indicates a testing version.

Example

Consider a firmware release with the following characteristics:

Project name: YIKOU3568

Project is functionally complete but not yet commercially released.

Minor version incremented from 5 to 6 to fix bugs.

Build date: 2024‑09‑09

Second build of the day.

Release type: testing (T).

Corresponding fields:

project name: YIKOU3568

major: 01

minor: 06

build ID: 240909

N: 1

release type: T

Resulting version string:

YIKOU3568_v01.06.2409091_T

In practice, teams can adapt individual fields to suit their needs.

Final Recommendations

Ensure that each released firmware image is linked to the exact Git commit it was built from. Before publishing, delete any local copies, pull the latest code from the server, perform a clean build, run a basic test, and only then release the version. This guarantees traceability and helps close bug loops when issues arise.

software engineeringVersioningfirmwareNaming Conventionbuild-id
IT Services Circle
Written by

IT Services Circle

Delivering cutting-edge internet insights and practical learning resources. We're a passionate and principled IT media platform.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.