What's New2.2.0 - Ocpp API – 2.2.0

PlugStream Change Logs

PlugStream is continuously updated to improve reliability, security, and user experience. This page provides a transparent record of every software and firmware release, including what changed and why it matters.

Latest

Jolt Evse 1.8.0

jolt-evse 1.8.0

1.8.0Stable
Recommended for production deployments.
Tests: passed (17/17)Coverage: 98.9%
Firmware
January 8, 2026
Supported devices
#PlugStream 7
#PlugStream 22

jolt-evse 1.8.0

1.8.0 (2026-01-08)

Bug Fixes

  • add BLE notification failure diagnostics and tracking (13abc23), closes #10
  • add stabilization delay for socket lock state feedback (4354c1e)
  • Added esp-idf selection in ci pipelines (35671a8)
  • address ArduinoJson deprecations and cleanup includes (8ef1175)
  • allocate StaticTask_t in internal RAM for PSRAM tasks (55a9573)
  • avoid abort on bt controller mem release (7908234)
  • avoid aborts on ledc duty updates (154aeca)
  • avoid printf formatting for ocpp payload logs (041ecde)
  • bluetooth,wifi: WiFi scan on-demand + DNS graceful shutdown (ada1d92)
  • bluetooth: avoid NimBLE stop crash (1fa9f29)
  • bluetooth: avoid nimble_port_deinit crash during OTA (c75a65c)
  • bluetooth: prevent os_mbuf memory leak on notification failures (709f129), closes #2
  • bluetooth: prevent WiFi scan task memory leak and dangling pointer (4b045d3), closes #3 #4 #3 #4
  • bluetooth: stop leaking WiFi scan tasks and avoid NimBLE double-init (f31730b)
  • ci: change releases MR target from master to staging (3cf6352)
  • ci: correct firmware binary filename in GitLab releases (6578ffb)
  • ci: remove redundant changes rule to prevent pipeline skipping (109cff6)
  • ci: send portal-friendly release notes to API (e6610da)
  • clear default netif when Ethernet loses IP (55be7ca)
  • correct firmware download log format (e087b88)
  • correct firmware download task stack sizing (0f7614c)
  • correct firmware stack watermark logging (5d3c4a3)
  • correct inverted socket lock state GPIO polarity (ba8c7aa)
  • correct JSON field parsing and persist provisioning data to NVS (cc3ce6f)
  • correct ota task stack sizes (idf bytes) and reduce hash stack usage (161f4ae)
  • correct socket lock timing to match PCB design requirements (be40eb5)
  • correct stack sizing for ws/adc tasks (e4052a5)
  • correct task stack size units for firmware tasks (a29b21d)
  • correct task stack sizing and reduce monitor heap churn (9a6af00)
  • correct voltage measurement using peak-to-RMS method (8066d80)
  • defer ota install task to ensure internal stack (2b7be2e)
  • disable network stats due to RAM constraints (e7c583d)
  • downgrade socket lock state feedback mismatch to warning (a8b1da9)
  • Eliminate database memory leaks and prevent SQLITE_BUSY errors (e4ca9a9)
  • emit cp healthy event after evse health check (30d3498)
  • enlarge ocpp_monitor stack to 12kb (45fe171)
  • enlarge ws_rx internal stack to avoid overflow (32d9d01)
  • ensure installed status emitted by auto-marking validation (652a991)
  • free RAM before download task and retry with smaller stack (a784952)
  • guard bluetooth stop against double calls (db0c8de)
  • hal: resolve critical HAL safety and logic issues (2761737)
  • handle empty result from database integrity check (a46c9a1)
  • handle ESP_ERR_NOT_SUPPORTED in OTA partition state check (e97c488)
  • handle WiFi state properly when starting captive AP (20094f1)
  • harden captive portal wifi transitions (df0bcae)
  • harden ethernet init and default netif set (c2b510d)
  • harden led driver and smooth boot rainbow (fed226d)
  • harden websocket/logging and PEN fault persistence (7ad3ec3)
  • improve low-memory resilience and non-critical init (1f91a06)
  • increase DNS catchall task stack from 4KB to 8KB (4f42851)
  • increase NTP task stack to 6KB to prevent overflow (aca6956)
  • Increase stack size for CP Activation task via Bluetooth (8fdbd86)
  • increase task stack sizes to prevent overflows (a1b6cce)
  • increase task stacks for large OCPP message safety (e5d2e98)
  • increase WebSocket buffer size for large OCPP messages (0fc665d)
  • install immediately when installDate not provided (c2db347)
  • install immediately when schedule time is past (ce79778)
  • keep websocket running during ota (92ad191)
  • led: keep firmware update override active (63e95ad)
  • make adc continuous isr cache safe (9cfd8d1)
  • make coverage script compatible with CI lcov (21c1b5b)
  • make sntp init idempotent (ffac48c)
  • miscellaneous improvements and stack optimizations (e2c1a35)
  • move stacks to PSRAM and reduce internal heap pressure (7e8144e)
  • ocpp,websocket: harden rx and remote stop handling (4265798)
  • ocpp: critical OCPP message handling improvements (3d7e7f1), closes #2 #3 #4
  • ocpp: implement CALLERROR processing and message ID validation (cca0d51), closes #1 #5
  • only set Ethernet as default interface when it has IP (49f513e)
  • optimize processedMessages with deque+set hybrid for O(1) lookup (825e21a), closes #9
  • ota: add robust download validation and error handling (2266778)
  • ota: prevent timer memory leaks and improve resource management (d314a51)
  • ota: replace statvfs with ESP-IDF littlefs API for filesystem space check (92dd99f)
  • pause ble during ota to free ram (80627f2)
  • pause websocket during OTA and shrink download buffers (419f14e)
  • prevent download task stack overflow (663bc9b)
  • prevent duplicate BootNotification on reconnect and fix LED state (0dadebb)
  • prevent duplicate BootNotification on WebSocket reconnect (9821f75)
  • prevent PSRAM task from accessing flash/NVS (crash fix) (090b631)
  • properly allocate task stacks in PSRAM instead of internal RAM (bb195f6)
  • reduce LogWorker stack usage by removing std::regex (34c4141)
  • rely on evse health event for ota validation (3de20f8)
  • remove blocking wait for Ethernet IP and set priority (bdb94c9)
  • remove coverage flags from firmware build (43e8cdd)
  • remove deadlock in MeterManager saveToNvs (a577b2c)
  • remove nested mutex locks causing TLS memory exhaustion (cd0ae49)
  • remove redundant esp_wifi_connect() call causing race condition (6e49b45)
  • remove stray escape sequences in LED control (118e864)
  • resolve critical meter accuracy issues (adf224b)
  • resolve EVSE control loop bugs and improve code quality (ca79184)
  • Resolved stack overflow on Bluetooth WiFi Network scan with large amount of Access Points. (aae93f5)
  • Resolved web socket failure on Activation Task processing (2ec7205)
  • Resolved websocket reconnect on Bluetooth CP Activation (17564c4)
  • reuse persistent NVS handle to reduce flash overhead (aef1a80), closes #8
  • revert flash I/O tasks to internal RAM (9aaef4c)
  • revert NTP task to internal RAM - stack overflow on cleanup (608a051)
  • route EVSE and meter NVS writes through main loop queue (67baf92)
  • run install on separate high-stack task (921b86d)
  • run websocket RX task on internal stack to avoid flash cache assert (9f65e84)
  • start mdns only with softap clients (b42685c)
  • update firmware root CA for api.s3.ampnexus.net (1b3d287)
  • use iram tx stack and rfc3339 firmware times (5ff67c3)
  • use PSRAM for NTP task stack to preserve internal RAM (c9acc13)
  • WebSocket race condition in message processing (3be366c)
  • websocket: add mutex protection for wsclient to prevent race conditions (5392152), closes #6
  • websocket: connect CSMS after network up (87094f2)
  • websocket: harden tx queue under stalled CSMS (5b036b6)
  • websocket: prevent processedMessages memory leak (48ae5c8), closes #1
  • websocket: resolve critical safety and threading issues (b68183a)

Features

  • account ota traffic in system monitor (c78cbdb)
  • add boot reason watchdog for accurate OCPP 2.0.1 BootNotification (4785dce)
  • add DEBUG_SYSTEM_MONITOR flag and network stats display (05513b2)
  • add environment-based URL configuration for builds (a775f2d)
  • add network statistics tracking to SystemMonitor (6f5d462)
  • add OCPP monitoring task for CPU optimization (4e1b1b6)
  • add SystemMonitor for CPU/RAM/task statistics (9b8100e)
  • add WebSocket TX task for event-driven processing (58e8594)
  • Added additional network tracking to support Onboarding wizard via Bluetooth (8d29b7a)
  • Added additional WiFi event handling (d0d2508)
  • Added catch2 test support with coverage calculations (871de5f)
  • buffer firmware download in psram before writing (eec8beb)
  • ci: add staging branch with RC releases (a97edec)
  • firmware update LED override and install gating (01ed1bd)
  • implement event-based OTA validation system (15659de)
  • implement NVS write queue for PSRAM task safety (32e8f89)
  • Implement OCPP 2.0.1 registration status handling (Pending/Rejected) (a067d4c)
  • implement real power metering with power factor correction (c3936cc)
  • improve WiFi connection reliability with reconnection logic (2dbfb17)
  • integrate OCPP and WebSocket tasks into main loop (abede10)
  • keep Bluetooth running during OTA updates (1d4d687)
  • load firmware TLS CAs dynamically from CA store (e1d16ad)
  • load websocket TLS CAs dynamically from CA store (29e368b)
  • make NTP sync non-blocking with automatic periodic updates (f43aa5d)
  • move 5 major tasks to PSRAM freeing 20KB internal RAM (6a1f220)
  • ocpp: improve charging profile support (gating + throttling) (2a5790f)
  • Phase 1 PSRAM task optimization - security events and monitoring (457bfad)
  • Reworked checkCpProvisioned into a single timeout-governed loop that continues retrying provisioning while the device remains unprovisioned (b06da83)
  • Updated Bluetooth Manager to support Mobile App Adoption (dfbddd4)
  • Updated PEN fault detection and alerting (a031a94)
  • Updated PEN fault to use Voltage RMS to avoid [secure] positives. Changed NTP to only block when network connection available (ae70de4)
  • wifi: Persist long WiFi creds correctly, dedupe scan results in HAL, drop forced reboots on WiFi connect. (8c1197c)

Performance Improvements

  • add thread-local JsonDocument pooling to OCPP handlers (1d551c2)
  • enable BSS segment external memory (PSRAM) (f700a98)
  • increase NimBLE stack to 8KB for better BLE throughput (2e1e2bc)
  • move ADC and DNS tasks to PSRAM (0a0bc1a)
  • move OCPP task to PSRAM with security profile caching (e56ae60)
  • move WebSocket RX task to PSRAM with increased stack (1b19c91)
  • optimize NTP task memory usage (edc551c)
  • optimize WebSocket header caching and DNS polling (01a0386), closes #11 #12 #11 #12
  • reduce TLS buffer sizes to free internal RAM (c5927a4)
  • websocket: optimize string allocation in OCPP message hot path (b834c61), closes #5
  • wifi: reduce DNS task stack size from 16KB to 8KB (ef6fe8b), closes #7
1.8.0 - jolt-evse 1.8.0 | PlugStream Change Logs