Releases: plexus-oss/plexus-c
Releases · plexus-oss/plexus-c
v0.1.1 — Test fix
Patch release. Fixes CI — test_core's init_valid_source_ids case was asserting that uppercase source IDs were accepted, but plexus_init correctly enforces the gateway's slug regex (^[a-z0-9][a-z0-9._-]*$). Updated the test to match actual SDK behavior (lowercase accepted, uppercase rejected).
v0.1.0 — Initial release
First release of plexus-c — minimal C SDK for embedded telemetry.
Quick start
#include "plexus.h"
plexus_client_t* px = plexus_init("plx_your_api_key", "device-001");
plexus_send(px, "temperature", 72.5);
plexus_flush(px);
What's here
- HTTP ingest to
https://plexus-gateway.fly.dev/ingest - Platform HALs: ESP32 (ESP-IDF), Arduino, STM32 (FreeRTOS + LwIP)
- Optional WebSocket transport (
PLEXUS_ENABLE_WEBSOCKET=1) - Static allocation path for MISRA-C environments
- Footprint: ~1.5 KB RAM minimal, ~17 KB default
- Zero dependencies
v0.8.0
ci: grant write permissions for release upload
v0.7.0
What's New
Browser Flash & Serial Config
- Browser-flashable firmware — flash ESP32 from Chrome/Edge via USB, no toolchain needed
- Serial config mode —
PLEXUS:READYprotocol for configuring WiFi + API key over UART - Plain-text flash partition — alternative config method via raw flash at 0x11000
Sensor Auto-Detection
- I2C scanning — auto-detects BME280, MPU6050, BH1750, SHT3x, INA219
- ADC sampling — 6 channels on GPIO 32-37 with calibration (mV output)
Security & Reliability
- TLS certificate bundle for ESP32 HTTPS connections
- Arduino HAL — proper cert verification with ISRG Root X1 CA
- STM32 HAL — compile-time warning when TLS unavailable
- API key validation —
plexus_initrejects keys not starting withplx_
Full changelog
- Serial config:
PLEXUS:READY→PLEXUS:key=value→PLEXUS:COMMIT→PLEXUS:SAVED - 5s config window on boot (send
PLEXUS:PINGto enter config mode) - Config partition read before NVS init to prevent data loss
- 12KB main task stack for I2C + ADC + telemetry
v0.6.0 — Browser-Flashable Firmware
What's New
- Browser-flashable ESP32 firmware — Pre-built binaries that can be flashed directly from the Plexus web UI via Web Serial API
- NVS config reader — Reads API key, source ID, WiFi credentials from a dedicated NVS partition
- CI build workflow — Automatically builds firmware binaries and uploads to releases
Firmware binaries
The release includes pre-built ESP32 firmware:
bootloader.bin— ESP32 bootloaderpartition-table.bin— Custom partition table with plexus_cfg NVS partitionfirmware.bin— Plexus telemetry firmware (reads config from NVS, connects WiFi, streams telemetry)
These binaries are consumed by the Plexus web platform for one-click browser flashing.
v0.5.6
Fix Arduino lint warnings: rename sketch to match folder, remove space from library name.
v0.5.5 — Arduino Library Manager
What's New
Arduino Library Manager Support
- 4 new example sketches: BasicTelemetry, BME280_Dashboard, WiFiReconnect, SessionRecording
- keywords.txt for Arduino IDE syntax highlighting
- Updated library metadata with improved descriptions and SEO keywords
Fixes
- Corrected RAM footprint documentation (default ~17KB, not ~5KB)
Full Changelog
v0.5.4
See CHANGELOG.md for details.
v0.5.3
location of files changes
v0.5.2
location of files changes