Releases: Pulsync/pulsync-arduino
Release list
v0.2.7
Local-first server discovery + explicit server mode.
- Auto-discovery now probes the local LAN server (
pulsync.localvia mDNS) before the hosted cloud (pulsync.in). Self-hosting is the common case; the extra local probe only adds a small delay for a cloud-only device on its first boot (it latches its server after that). - New
setServerMode(Pulsync.LOCAL | Pulsync.CLOUD | Pulsync.AUTO)— hard override to a tier (no discovery/fallback). setServer("host:port")still has the highest precedence for pinning an exact server.- Precedence:
setServer>setServerMode> captive-portal/NVS server > AUTO discovery.
v0.2.6
Keep the Library Manager name as Pulsync (rename request withdrawn). Reverts the v0.2.5 name=PulSync change so the latest release matches the registered name and indexes cleanly. No functional change.
Arduino IDE: Sketch → Include Library → Add .ZIP Library → Pulsync-0.2.6.zip.
PlatformIO: lib_deps = https://github.com/pulsync/pulsync-arduino.git#v0.2.6
v0.2.5
Set the Library Manager display name to PulSync (camelCase) to match the brand. No functional change — the include stays #include <Pulsync.h> and the class stays PulsyncClass for compatibility.
Note: the registry name is locked after initial registration, so this display-name change is being requested via the Arduino library-registry maintainers.
v0.2.4
Accurate library description for Arduino Library Manager submission: the metadata now reflects the real transport (MQTT live link; HTTP for enrollment and OTA) instead of the aspirational WSS/MQTTS/HTTPS chain, and notes multi-network WiFi + captive portal and OTA rollback. ESP32-only. No functional code change from v0.2.3.
Arduino IDE: Sketch → Include Library → Add .ZIP Library → Pulsync-0.2.4.zip.
PlatformIO: lib_deps = https://github.com/pulsync/pulsync-arduino.git#v0.2.4
v0.2.2
Local HTTP default port changed to 3456 (was 3000/3001) to avoid collisions with common dev servers and match the Pulsync server's new default. MQTT ports unchanged.
Arduino IDE: Sketch → Include Library → Add .ZIP Library → Pulsync-0.2.2.zip.
PlatformIO: lib_deps = https://github.com/pulsync/pulsync-arduino.git#v0.2.2
v0.2.1
Local HTTP default port changed from 3001 to 3000 to match the Pulsync server's default. setServer("pulsync.local") or a bare IP now resolves to port 3000. MQTT ports unchanged. Docs/comments updated.
Install (Arduino IDE): Sketch → Include Library → Add .ZIP Library → select Pulsync-0.2.1.zip.
PlatformIO: lib_deps = https://github.com/pulsync/pulsync-arduino.git#v0.2.1
v0.2.0
First substantive release of the Pulsync ESP32 Arduino library.
Features
- Non-blocking scheduler —
setTimeout/setInterval/clearTimeout/clearInterval. - WiFi manager — up to 3 networks, persistent priority list, auto-reconnect with backoff.
- Cloud transport — WSS → MQTTS → HTTPS fallback chain.
- Enrollment + heartbeat — pairing-code enrollment, token in NVS, credential rotation.
- OTA — ESP-IDF OTA with rollback; numeric version ordering; per-device force-attach.
- Captive portal — first-boot enroll form + a config menu (add/remove/reorder WiFi, change server).
- Server discovery — zero-config cloud (
pulsync.in) → local (pulsync.localvia mDNS) failover.
New in this release
- Config-portal password gate — once enrolled, the on-device config menu requires a server-issued password (offline SHA-256 check, session cookie). Fresh/unenrolled devices stay open (pairing code is the gate).
- Re-pair action — move a device to a new pairing code from the config menu; clears the token and re-enrolls for a fresh token + config password.
- Portal AP bring-up hardening + DNS-task lifecycle fixes.
Install (PlatformIO)
```ini
lib_deps = https://github.com/Pulsync/pulsync-arduino.git
```
Install (Arduino IDE)
Sketch → Include Library → Add .ZIP Library → select `pulsync-0.2.0.zip`.