Skip to main content

Provisioning via USB

v5.33.5
Applies to
manufacturersoperators
UpdatedMay 27, 2026

Provisioning via USB

This page describes how to use a USB memory stick for provisioning, service operations, configuration export, configuration import, and firmware updates on the Charge Controller.

The USB memory stick method is suitable for:

  • Importing settings
  • Exporting logs and configuration data
  • Performing firmware updates
  • Field service and spare parts management
  • Small batch production
  • Preparing product variants from reusable configuration files

1. How it works

The USB memory stick is connected to the Charge Controller via the USB host interface (USB type A port). The Charge Controller checks the root directory of the USB memory stick for specific files and folders. These files and folders act as triggers for different USB functions.

Access to USB functions is controlled by the manufacturer and operator roles, including the associated passwords. Most USB operations require a USB_PASSWORD file in the root directory of the USB memory stick.

The status LED on the Charge Controller indicates when the operation is complete and when the USB memory stick can be removed.

info

It is recommended to limit the USB memory stick functions on delivered Charging Stations to the necessary extent or, if the interface cannot be physically protected against unauthorized access, to deactivate it completely.

warning

Use one USB function at a time. Do not combine multiple trigger files for different operations on the same USB memory stick during one run. Multiple simultaneous USB actions can cause unexpected behavior.

2. USB memory stick requirements

Use a USB memory stick with the following properties:

  • FAT32 formatted
  • Empty before preparation
  • Files placed in the correct root-level structure
  • Required trigger files created without file extensions
  • Required password file placed in the root directory

On Windows, make sure files such as USB_PASSWORD, FIELD_ENGINEER, and FW_UPDATE_LOCAL are not saved as .txt files. When using Notepad, save the file name in quotation marks, for example "USB_PASSWORD".

3. USB memory stick structure

The Charge Controller checks the root directory of the USB memory stick for specific files and folders. These files and folders act as triggers for different USB functions.

Use one USB function at a time. Do not combine multiple trigger files for different operations during one run.

3.1. General structure

USB root
├─ USB_PASSWORD
├─ FIELD_ENGINEER
├─ FW_UPDATE_LOCAL
├─ sw_update.deb
├─ sw_config/
│ ├─ ChargePointID_ocpp
│ ├─ ChargePointID_ocpp_default
│ ├─ UTCTimeToReboot_custom
│ ├─ ManufacturerPwd_custom
│ ├─ OperatorPwd_custom
│ └─ ...
└─ ebee_data/
└─ script.sh

3.2. Structure by USB function

USB root
├─ USB_PASSWORD
└─ FIELD_ENGINEER

Use this structure to export logs, status information, and configuration data from the Charge Controller.

FIELD_ENGINEER is an empty trigger file without file extension.

4. USB files and folders

File or folder
Required location
Purpose
#
USB_PASSWORD
USB root
Contains the operator or manufacturer password in plaintext. Required for authorized USB operations.
#
FIELD_ENGINEER
USB root
Empty trigger file. Exports logs, status information, and configuration data from the Charge Controller.
#
FW_UPDATE_LOCAL
USB root
Empty trigger file. Limits a USB firmware update to the local controller.
#
sw_update.deb
USB root
Firmware update package.
#
sw_config/
USB root folder
Contains configuration files to import into the Charge Controller.
#
ebee_data/script.sh
USB root folder and script file
Contains a shell script for USB script execution.

5. USB password file

Most USB operations require a USB_PASSWORD file in the root directory of the USB memory stick.

The file must contain the operator or manufacturer password in plaintext.

Example:

yellow_zone

The file name must be exactly:

USB_PASSWORD

The file must not have a file extension.

warning

USB_PASSWORD contains the password in plaintext. Handle prepared USB memory sticks accordingly.

6. USB function overview

Function
Required USB content
Required setting
#
Export logs and configuration
USB_PASSWORD + FIELD_ENGINEER
USB access with valid password
#
Import configuration
USB_PASSWORD + sw_config/
USB Config update enabled
#
Firmware update
USB_PASSWORD + sw_update.deb
USB Firmware update enabled
#
Local-only firmware update
USB_PASSWORD + sw_update.deb + FW_UPDATE_LOCAL
USB Firmware update enabled
#
Script execution
USB_PASSWORD + ebee_data/script.sh
USB script execution enabled

7. Status LED behavior

The Charge Controller signals USB operation states using the status LEDs.

LED behavior
Meaning
#
All LEDs light up at the same time
USB memory stick was detected and the controller is searching for the update file.

8. Export logs and configuration data

Use the FIELD_ENGINEER trigger file to export logs, status information, and configuration data from the Charge Controller to the USB memory stick.

8.1. Prepare the USB memory stick

Create the following files in the USB root directory:

USB root
├─ USB_PASSWORD
└─ FIELD_ENGINEER

FIELD_ENGINEER must be an empty file without file extension.

8.2. Export procedure

  1. Prepare the USB memory stick.
  2. Insert the USB memory stick into the Charge Controller.
  3. Wait until the Charge Controller finishes writing data to the USB memory stick.
  4. Remove the USB memory stick when the green READY LED blinks quickly or in a 1 second interval.
  5. Connect the USB memory stick to a computer.
  6. Open the generated folder whose name starts with cp-.

The export can take up to approximately 2 minutes.

8.3. Exported folder structure

The Charge Controller creates a folder whose name starts with cp-.

Inside this folder, the persistency/ folder contains configuration parameters as individual files.

Example:

USB root
└─ cp-...
└─ persistency/
├─ ChargePointModel_ocpp
├─ ChargePointUUID_ocpp
├─ FreeCharging_vehicleif
├─ HardwareCurrentLimit_vehicleif
└─ ...

8.4. Configuration file format

Each exported configuration file contains:

  • Line 1: the parameter value
  • Line 2: the versioning code

Example:

Off
6722 94c83d8a2

To change a configuration file for USB import, edit only the first line.

warning

Do not edit the second line. The second line contains the versioning code and must remain unchanged.

tip

Use Notepad++ or another editor that handles Unix line endings correctly. The standard Windows editor may display line breaks incorrectly.

9. Import configuration

Use the sw_config/ folder to import configuration files into the Charge Controller.

The USB Config update setting must be enabled before this function can be used.

  1. Export the current configuration using FIELD_ENGINEER.
  2. Open the generated cp-.../persistency/ folder.
  3. Copy only the configuration files that should be changed.
  4. Edit only the first line of each copied file.
  5. Keep the second line unchanged.
  6. Create a sw_config/ folder in the USB root directory.
  7. Place the changed configuration files inside sw_config/.
  8. Keep USB_PASSWORD in the USB root directory.
  9. Remove FIELD_ENGINEER and the generated cp-... folder from the USB memory stick.
  10. Insert the USB memory stick into the target Charge Controller.
  11. Wait until the import is complete.
  12. Remove the USB memory stick after the status LED indicates completion.

9.2. Required import structure

USB root
├─ USB_PASSWORD
└─ sw_config/
├─ FreeCharging_vehicleif
└─ ...

When the USB memory stick is inserted, the Charge Controller imports the configuration files from sw_config/, overwrites the corresponding existing settings, and restarts afterwards.

10. Example: Enable free charging via USB

This example enables free charging by modifying the FreeCharging_vehicleif configuration file.

10.1. Procedure

  1. Prepare a FAT32-formatted USB memory stick with the following files in the root directory:

    USB root
    ├─ USB_PASSWORD
    └─ FIELD_ENGINEER
  2. Insert the USB memory stick into the Charge Controller

  3. Wait until the green READY LED blinks in a 1 second interval

  4. Remove the USB memory stick

  5. Connect the USB memory stick to a computer

  6. Open the exported configuration file:

    cp-.../persistency/FreeCharging_vehicleif
  7. Change the first line from Off to On and save the file
    (keep the second line unchanged)

  8. Create the following import structure in the USB root directory:

    USB root
    ├─ USB_PASSWORD
    └─ sw_config/
    └─ FreeCharging_vehicleif
  9. Remove the FIELD_ENGINEER file and the exported cp-... folder from the USB memory stick

  10. Insert the USB memory stick into the Charge Controller again

  11. Wait until the green READY LED indicates completion

  12. Remove the USB memory stick

Free charging is now enabled.

11. Files not to copy for configuration import

Some exported configuration files are specific to an individual Charge Controller or installation. Do not copy these files to another Charge Controller without a clear reason.

Files not to copy for configuration import
ActuatorType_vehicleif
ChargePointUUID_ocpp
CurrentMonth_dl
DataConsumptionLastMonth_dl
DataConsumption_dl
HeartBeatInterval_ocpp
MeterSerial_meter
SIMCardPinNumber_modem
SchukoNumberContactorCycles_vehicleif
SysTime_mon
Type2NumberContactorCycles_vehicleif
AdcCpCalibrationCfg_vehicleif
ebee.sql
*.csv
caution

These files often contain controller-specific, installation-specific, meter-specific, usage-specific, or calibration-specific data.

12. Mapping configuration files to parameters

See the OCPP parameter reference here.

info

Although the reference is primarily for OCPP, it also includes non-OCPP parameters that are relevant for USB configuration import, such as FreeCharging_vehicleif. The reference can be used to map configuration file names to Config UI labels.

Use this table to map:

  • Config UI parameters
  • Configuration file names
  • OCPP configuration keys

The Configuration File Name column lists the file names that appear in the persistency/ folder after a FIELD_ENGINEER export.

13. Password changes via USB configuration import

Passwords can also be changed through USB configuration import.

For example, to change the operator password, edit the OperatorPwd_custom configuration file and import it through the sw_config/ folder.

When changing the password via USB configuration import, enter the new password in plaintext. The Charge Controller encodes the password automatically after importing the file.

info

When editing password files directly over SSH or by directly modifying persistent files, the password value must be entered in base64-encoded form. For USB configuration import, the documented workflow uses plaintext for OperatorPwd_custom.

14. Firmware update via USB memory stick

A firmware update can be performed by placing the firmware package in the root directory of the USB memory stick.

The USB Firmware update setting must be enabled before this function can be used.

14.1. Requirements

The USB memory stick must contain:

USB root
├─ USB_PASSWORD
└─ sw_update.deb

The firmware package must:

  • Be a Debian package
  • Use the .deb file extension
  • Be named exactly sw_update.deb
  • Be placed in the USB root directory

14.2. Local-only firmware update

If multiple charge points or controllers are connected and the firmware update should only be applied to the local controller, add an empty FW_UPDATE_LOCAL file to the USB root directory.

USB root
├─ USB_PASSWORD
├─ FW_UPDATE_LOCAL
└─ sw_update.deb

Without FW_UPDATE_LOCAL, inserting the USB memory stick into a gateway controller can update connected charge points as well.

14.3. Firmware update procedure

  1. Prepare the USB memory stick with USB_PASSWORD and sw_update.deb.
  2. Add FW_UPDATE_LOCAL if only the local controller should be updated.
  3. Insert the USB memory stick into the Charge Controller.
  4. Wait until the update process completes.
  5. Do not interrupt the update process.
  6. Remove the USB memory stick only after the Charge Controller indicates completion.

The update process can take up to approximately 15 minutes.

warning

Do not interrupt the update process. An incomplete firmware update can make the controller unusable and require service handling.

15. Script execution via USB memory stick

The Charge Controller can execute a shell script from the USB memory stick.

The USB script execution setting must be enabled before this function can be used.

Unlike USB Config update and USB Firmware update, script execution is disabled by default.

15.1. Required structure

USB root
├─ USB_PASSWORD
└─ ebee_data/
└─ script.sh

The script must be named:

script.sh

The script must start with:

#!/bin/sh

15.2. Script execution procedure

  1. Enable USB script execution.
  2. Prepare the USB memory stick with USB_PASSWORD and ebee_data/script.sh.
  3. Insert the USB memory stick into the Charge Controller.
  4. Wait until the operation completes.
  5. Remove the USB memory stick after the status LED indicates completion.
warning

Use USB script execution only for prepared service scripts. The script runs automatically after the USB memory stick is inserted.

Got it. Use this version without periods on list items.

16. Troubleshooting

  • Check the basic USB requirements first:

    • The USB memory stick is FAT32 formatted
    • USB_PASSWORD exists in the USB root directory
    • The password inside USB_PASSWORD is correct
    • The required USB feature is enabled
    • The trigger file or folder is placed in the USB root directory
    • The trigger file has no file extension
    • Only one USB function is prepared on the stick
  • Use one USB function at a time.

    Multiple trigger files for different operations can cause unexpected behavior.

    caution

    Prepare a separate USB stick, or clean the existing stick, before switching to another USB function.

  • The file may have been saved with an extension.

    For example, Windows may save it as:

    USB_PASSWORD.txt

    The file name must be exactly:

    USB_PASSWORD

    The file must not have a file extension.

  • Check the import structure and file contents:

    • USB Config update is enabled
    • sw_config/ exists in the USB root directory
    • The changed configuration files are inside sw_config/
    • File names match the expected configuration file names
    • The first line contains the intended value
    • The second line/versioning code was not changed
    • FIELD_ENGINEER and exported cp-... folders were removed before import
  • Edit only the first line.

    The second line contains the versioning code and must remain unchanged.

  • Only copy configuration files that are not controller-specific or installation-specific.

    Do not copy files blindly, especially files such as:

    • ChargePointUUID_ocpp
    • MeterSerial_meter
    • SysTime_mon
    • ebee.sql
    • *.csv
  • Check the firmware update requirements:

    • USB Firmware update is enabled
    • The firmware package is named exactly sw_update.deb
    • The firmware package is placed in the USB root directory
    • USB_PASSWORD is present and correct
    • The firmware file is a valid .deb package
  • Add an empty FW_UPDATE_LOCAL file to the USB root directory.

    The USB stick should contain:

    USB root
    ├─ USB_PASSWORD
    ├─ FW_UPDATE_LOCAL
    └─ sw_update.deb
  • Remove the USB memory stick only after the Charge Controller indicates completion through the status LED.

    For example, remove it when the green READY LED blinks quickly or in a 1 second interval.

  • Use Notepad++ or another editor that handles Unix line endings correctly.

    The standard Windows editor may display line breaks incorrectly.

  • Edit the relevant password configuration file and place it inside sw_config/.

    For example:

    USB root
    ├─ USB_PASSWORD
    └─ sw_config/
    └─ OperatorPwd_custom

    For USB configuration import, store the password in plaintext.

  • Password handling depends on the method:

    • USB configuration import: store the password in plaintext
    • Direct file editing over SSH: store the password value in base64-encoded form
  • Check the script execution requirements:

    • USB script execution is enabled
    • USB_PASSWORD is present
    • The script is located at ebee_data/script.sh
    • The script starts with #!/bin/sh

    The USB stick should contain:

    USB root
    ├─ USB_PASSWORD
    └─ ebee_data/
    └─ script.sh
  • No. USB script execution is disabled by default.