Contents

  1. Hardware Connections flowchart
  2. Serial or CANBus
  3. Display
  4. Configuring the screen type
  5. Controlled Shutdown

Hardware Connections flowchart

This flowchart might help you work out what you need to connect and configure based on your ECU type.

flowchart TD; ecutype([ECU Type]); ecutype --> Speeduino[Speeduino]; Speeduino --> mega[Mega2560]; Speeduino --> stm32orteensy[STM32
or Teensy]; mega -- datamode=serial --> iohatserial[SDC I/O Hat,
Tx, Rx, GND]; stm32orteensy -- datamode=haltech
or other (see docs) --> iohatcan; stm32orteensy -- datamode=serial --> iohatserial; iohatcan[SDC I/O Hat,
CAN Hi & CAN Lo]; ecutype --> rusefiorhaltech[rusEFI or Haltech]; rusefiorhaltech --> distrubutiondbcfile[Load a DBC File included with SDC
Enable dbcn settings]; distrubutiondbcfile -- datamode=dbccanbus --> iohatcan; ecutype --> othercansource[Other CAN source]; othercansource --> loadyourowndbc[Load your custom DBC file]; loadyourowndbc -- datamode=dbccanbus --> iohatcan; iohatserial --> raspberrypi[Raspberry Pi]; iohatcan --> raspberrypi;

Serial or CANBus

For use with Speeduino SDC requires either a serial connection to the Speeduino ECU using the “Secondary Serial” port (often also referred to as “serial3”), or an ECU spporting CANBus.

For other ECUs, CANBus is required.

To use physical CAN support, or to get full data rates from a Speeduino serial connection, you will need a software license. There is both CAN playback and Speeduino Serial playback support in the evaluation license packaged with the download, so that you can see what the data looks like without a physical ECU connection.

The SDC I/O Hat and shutdown module can be purchased as separate items if you want to use your own Pi and Screen. Or there is the Pro 7 which comes with all the hardware you need to implement SDC in a ready to mount device. You may need other hardware at the ECU end.

Don’t bother trying bluetooth as the serial connection rather than using a cable. Reliability will be poor and the update rate will suck.

Display

Once you have the ECU connected you will need to connect a display to the device. Follow the instructions for your display to connect it to your Raspberry Pi. This may include editing the config.txt file on the SD card to add a custom HDMI setting using settings such as hdmi_cvt, hdmi_group, and hdmi_mode. Your display’s instructions should tell you what you need to do. There is extensive documentation on the Raspberry Pi Configuration Website - Video Settings

If you bought a Pro 7, the display will already be configured for you and you will only need to connect it up and power it on.

There are three types of display supported by SDC:

  • An HDMI screen with optional capacitive touchscreen, of which there are many to choose. For these, the touchscreen must be USB HID based.
  • The official Raspberry Pi 7” touchscreen. The resolution on these is probably as low as you’d want to go for some sort of main cluster, as they are only 800x480, whereas many HDMI 7” touchscreens are typically 1024x600.
  • The TinySDC 1.28” Round LCD. This is a 240x240 pixel round LCD display. SDC supports controlling the brightness of this display via its backlight control. These are useful for supplementary screens and can fit into 52mm gauge pods.

Displays that use the GPIO pins to connect (such as the HyperPixel monitor or any SPI screen) are not supported. Resistive touchscreens are not supported.

Brightness control is supported on the official Raspberry Pi touchscreen and the TinySDC device.

To control the backlight on those devices that support it, you can send in a canbus message from another device, or you can use the setting ‘screenbrightness’ locally which you will find defined in the SDC.INI file shipped with the software. Whenever this setting is updated by a touch action, the brightness of the display will be set to match if it is supported.

Note that when you change any setting on multi-node canbus system, the value will be replicated across the network. One exception for this is the ‘screenbrightness’ setting. This value is not replicated so that each node on the network can have its own brightness. You can synchronise them all by updating the setting id of ‘screenbrightness’ using your own canbus message if you so desire but that is not necessarily useful unless all screens are of the same type and have the same gamma profiles.

Configuring the screen type

In the \kernel folder of the SD card is a file called cmdline.txt. This file allows parameters to be specified which SDC can see very early in its boot sequence (before access to the SD Card has been initialised). In order for things like the boot screen to be displayed properly on all screen types, you must tell SDC what he screen type is using this file, rather than using SDC.ini.

At or near the beginning of the first and only line in the file you will find the parameter

SDCDISPLAYTYPE=HDMI

This parameter will be followed by a load of other settings, which you must keep. You can change HDMI to any of these other 2 values to select that screen type:

  • PIOFFICIAL
  • TINYSDC

This file is not normally changed, and there are some specific rules about changing it. The primary rule is that the entire content of this file MUST be on a single line. Therefore do not use any editors that may split the file up into multiple lines, and do not add a carriage return and/or line feed at the end of the first line (do not press Return at the end of the line in your editor).

Controlled Shutdown

Controlled shutdown enables some key features to be safely enabled including the ability to remember certain settings between power downs, and the ability to safely close datalogs after the ignition is turned off when data logging is enabled. For further details please see the Controlled Shutdown section