Skip to content
Documentation Menu

Update Firmware

Source: OCPP 2.0.1 Part 2 — Specification (Edition 2, 2022-12-15) — Section 1.64 (Messages); Use Cases L01 — Secure Firmware Update, L02 — Non-Secure Firmware Update (Functional Block L. FirmwareManagement)

Overview

The CSMS sends UpdateFirmwareRequest to instruct the Charging Station to download and install new firmware. OCPP 2.0.1 unifies the OCPP 1.6 UpdateFirmware and SignedUpdateFirmware into a single message — the firmware element carries the location, retrieval/installation times, and (for secure updates, L01) the signing certificate and signature.

Progress is reported by the CS via FirmwareStatusNotification messages sharing the same requestId. If a previous update is still pending or installing when a new request arrives, the CS may respond with AcceptedCanceled.

Sequence Diagram

CSMS  ──── UpdateFirmwareRequest ────▶  Charging Station
            (requestId, firmware{location, retrieveDateTime, installDateTime?,
                                   signingCertificate?, signature?},
             retries?, retryInterval?)
CSMS  ◀─── UpdateFirmwareResponse ────  Charging Station
            (status, statusInfo?)
                                  (then FirmwareStatusNotification.req messages with same requestId)

Initiator

CSMS → Charging Station

Fields

Field NameField TypeCard.Description
retriesinteger0..1Optional. Maximum number of download retries. 0 = no retries.
retryIntervalinteger0..1Optional. Interval (s) between retries.
requestIdinteger1..1Required. Id of this request.
firmwareFirmwareType1..1Required. Specifies the firmware to be updated on the CS.

FirmwareType

FieldTypeCard.Description
locationstring [0..512]1..1Required. URI defining the origin of the firmware.
retrieveDateTimedateTime1..1Required. When the firmware shall be retrieved.
installDateTimedateTime0..1Optional. When the firmware shall be installed.
signingCertificatestring [0..5500]0..1Optional. PEM-encoded X.509 certificate that signed the firmware (used for L01 secure updates).
signaturestring [0..800]0..1Optional. Base64-encoded firmware signature (L01).

UpdateFirmwareStatusEnumType values

  • Accepted — Update accepted.
  • Rejected — Update rejected.
  • AcceptedCanceled — Accepted, canceled an ongoing update.
  • InvalidCertificate — Certificate is invalid.
  • RevokedCertificateFailure end state. Firmware signing certificate has been revoked.

Examples

{
  "requestId": 123,
  "retries": 3,
  "retryInterval": 600,
  "firmware": {
    "location": "https://firmware.example.com/cp/2.1.0/firmware.bin",
    "retrieveDateTime": "2026-04-28T02:00:00Z",
    "installDateTime": "2026-04-28T03:00:00Z",
    "signingCertificate": "-----BEGIN CERTIFICATE-----\nMIIE...\n-----END CERTIFICATE-----",
    "signature": "MEUCIQDg7v9...base64...kIM2Q=="
  }
}

Schema

Source: schemas/UpdateFirmwareRequest.json, schemas/UpdateFirmwareResponse.json (OCPP 2.0.1 FINAL)

Request schema (JSON Schema)
Response schema (JSON Schema)