OTA Updates
Pulsync devices are always OTA-ready. The server offers a build; the device verifies and applies it with rollback protection.
Reporting a version
Set the version your build reports before begin():
Pulsync.setVersion("1.2.3-dev5"); // runtime override Or via compile flag (PlatformIO):
build_flags = -D PULSYNC_FW_VERSION="1.2.3-dev5" If both are set, the runtime override wins. Unset falls back to 0.0.0 with a boot warning.
Version format
x.y.z or x.y.z-label, where the label may contain at most one number (1.2.3-dev3 is fine, 1.2.3-dev3.2 is rejected).
Ordering is numeric
Ordering compares up to four integers (major, minor, patch, plus one label counter). Label text is cosmetic — only its number counts:
1.2.3 < 1.2.3-dev1 < 1.2.3-dev2
1.2.4 > 1.2.3-dev9 The golden rule
The version a device reports must match the
.binuploaded for it.
OTA compares reported-vs-offered by string. A mismatch means the device keeps getting offered the same build forever. Bump the version every time you cut a build you intend to deploy.