Dual ECU Support
Version 1.1 of SDC introduces a new feature which enables it to support data from multiple Speeduino ECU’s. There are two possible scenarios where this might be required:
- Running a V12 with a pair of ECU’s (typically a pair of 4x4 boards)
- Some sort of twin engine build
This feature requires a canbus to work. Its purpose is to enable the data from both ECU’s to be displayed on a single screen.
To implement a cluster with this arrangement, you need the following:
- A Primary Raspberry Pi with I/O Hat including canbus hardware connected by serial to ECU 1
- A Secondary Raspberry Pi with I/O Hat including canbus hardware connected by serial to ECU 2
- A Canbus network connecting the two Pi’s together
- As a minimum, a single display but there is nothing to stop you having a display on the secondary Pi as well
The two ECU’s and associated Pi’s are designated the Primary and the Secondary. The Primary Pi will be configured with screens that can display data concurrently from both the Primary and the Secondary ECU’s. The secondary Pi will be configured as a secondary system in its configuration file (sdc.ini), and will put the data it receives onto the CANBus network.
To designate a Pi as a secondary source, put the following in the [datasource]
section:
secondaryecuenabled=1
Then, using the screen editor on the primary Pi, you can use the attribute of any control to define whether it references the primary ECU or the secondary ECU by adding #2
to the end of the attribute name. For example, if you want the rpm from the secondary ECU, then use rpm#2
as the attribute name.
Note that if you have a display connected to the Pi which is in turn connected to the secondary ECU, and you want to display that ECU’s rpm, you should just use rpm
on that device, even though it is the secondary data source. This is because the values only become secondary at the moment they are written onto the CANBus. Likewise, the primary ECU’s data is not available on the secondary ECU’s screen.
Limitations:
- If you enable rebroadcast on the canbus from the primary, and also have a secondary ECU, then the canbus will probably get flooded.
- You can’t access the primary ECU’s dataset if you connect a screen to the secondary ECU.
- You can’t use the canbus datasource on a Pi designated as a secondary ECU device. It has to be a serial datasource with rebroadcast enabled (serialcanbusbridge or serialcanbusbridgeauxin).