PublishFirmware

FirmwareManagement CSMS->CS OCPP 2.0.1

Sent by the CSMS to a Local Controller to instruct it to download and make available a firmware file for local distribution to Charging Stations on its local network.

Quick Reference

Required Fields

location string(512)

URI where the firmware can be downloaded from

checksum string(32)

MD5 checksum of the firmware file

requestId integer

Request ID to correlate PublishFirmwareStatusNotification messages

Optional Fields

retries integer

Number of download retries

retryInterval integer

Seconds between retries

Example Payload

{
  "location": "https://firmware.example.com/v2.1.0.bin",
  "checksum": "d41d8cd98f00b204e9800998ecf8427e",
  "requestId": 1,
  "retries": 3
}

Example Full Frame

[
  2,
  "msg-001",
  "PublishFirmware",
  {
    "location": "https://firmware.example.com/v2.1.0.bin",
    "checksum": "d41d8cd98f00b204e9800998ecf8427e",
    "requestId": 1,
    "retries": 3
  }
]

Format: [MessageType, MessageId, Action, Payload]

Overview

PublishFirmware is used in local network topologies where a Local Controller distributes firmware to Charging Stations without direct internet access. The CSMS sends this to the Local Controller, which then serves the firmware locally.

Expected Response

  • status: Accepted, Rejected, or InvalidChecksum

Progress is reported via PublishFirmwareStatusNotification.

Usage Notes

  • This message targets a Local Controller, not a standard Charging Station
  • After publishing, use UpdateFirmware pointing to the Local Controller’s address
  • checksum is MD5 of the firmware binary

Testing Tips

  • Test the full local distribution chain: PublishFirmware → Local Controller serves → UpdateFirmware to stations
  • Test InvalidChecksum by sending an incorrect MD5

Common Errors

PropertyConstraintViolation

Cause: checksum exceeds 32 characters

Solution: Checksum must be an MD5 hash (32 hex characters)