Custom SII firmware
2 minute read
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.
Tip
With the device connected, run mcx-sii-filenames on the controller to get the file name it expects. See Remote access and file transfer for how to open a terminal on the controller.
Add it to the config package
-
Put the file in the
io/firmwarefolder of your config package. Create the folder if it is not there. On the controller this is/etc/motorcortex/config/io/firmware. -
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.