Custom SII firmware

Load an EtherCAT device’s SII data from a file in the config package when the device’s own memory is too small.

Every EtherCAT device describes itself in its SIIThe SII (Slave Information Interface) is a small memory in every EtherCAT device. It holds the device’s identity and a description of its process data, which the EtherCAT master reads when the bus starts. . In rare cases that memory is too small to hold everything the device needs. From MCX-RTOS image version 2022.09, the controller can then load the SII data from a file in the config package instead. You only need this page for such a device.

Get the SII file

The SII data must be a binary file. You can get it in two ways:

  • Ask the device’s manufacturer for it.
  • Export it with TwinCAT, as the EtherLab FAQ describes.

Name the file

The controller finds the file by the device’s identity, so the file name must be:

ec_{VendorID}_{ProductCode}_{RevisionNumber}.bin

Replace {VendorID}, {ProductCode} and {RevisionNumber} with the device’s values, each written as 8 lowercase hexadecimal characters. For example, the EK1914 in the standard io/master.xml has vendor ID #x00000002, product code #x077a2c52 and revision #x00120000, which gives ec_00000002_077a2c52_00120000.bin.

Add it to the config package

  1. Put the file in the io/firmware folder of your config package. Create the folder if it is not there. On the controller this is /etc/motorcortex/config/io/firmware.

  2. Deploy the config package. The controller loads the SII data from the file when the bus starts.

Check that it is loaded

Run this command on the controller:

dmesg -T | grep "SII firmware loaded"

Each device that uses a file gives a line like this one:

[Tue Sep 20 17:38:18 2022] EtherCAT 0-main-0: SII firmware loaded from file ec_00000619_00000006_00000001.bin.