The display setup file contains all the information needed to configure a colour display including connection definition, channel calibration and screen layout.
The Display Module can be connected to other ECUs via CAN bus.
Display Modules also have a range of analogue and speed inputs for interfacing directly to sensors.
File Names
Dash Design supports multiple display types and setup files have file names of the form .<display_type>.gdd. Depending upon your Windows® configuration, the last part of the file extension may not be visible in File Explorer.
Subsections of Creating and Editing Display Setups
Creating a New Display Setup
Overview
To create a new display setup, select File | New Setup... from the File Menu
and then select a display type from the list.
Workflow Tips
Data Model
When creating a new setup it is generally best to start with the data model.
Most display setups will require acquiring data from the outside world via physical inputs such as Analogue Inputs or via CAN messages. Once data acquisition is configured then it will naturally drive the screen design process.
It can be useful to create some test screens while configuring inputs to check that data is being acquired as expected by the display.
Analogue Inputs
Analogue Inputs (Analogue to Digital Converters, ADCs) are predefined Channels and will generally be scaled in Volts. Check your display pin-out to identify the analogue channels that are connected to sensors.
Create new Channels on the Channels Tab
that use these Analogue Input channels as their Primary Input and apply any required scaling based upon the data-sheets for your sensors. There may be existing preconfigured sensors in the Sensor Library Channel
that match.
CAN Inputs
Configure the CAN bus to ensure that it is running at the correct bit rate: CAN Bus Configuration
.
Define CAN channels on the CAN Receive
. This process can be simplified if a Signal Database (DBC) files are available (or can be created) for the modules you are connecting to - see CAN Signal Database (DBC) Import
.
So that you can switch screens / pages on the display, decide how page switching will work; Is this from an analogue input (e.g. a rotary switch) or from a CAN message? Some displays may have predefined inputs like rotary switches. Configure the page select input here: Page Select
.
Logic Channels / Notifications
It may make sense at this point to define any logic channels or notifications for things like warnings for out of range conditions.
Display Setup
Speed Input / Odometer
If vehicle speed related functions are required, set up the predefined Speed Input. Setting up the Speed Input will also enable the non-resettable Odometer function. See Speed / Odometer / Trip
Lap Timing / Beacon Input
You may also want to configure the beacon input at this stage to enable lap/stage timing. See Lap Timing / GPS
. Before configuring Lap Timing, configure the Speed Input (Speed / Odometer / Trip
).
Logging
If the Display Module supports on-board logging, logging can be configured on the Logger Tab
. This may be useful whilst configuring the data model; data logs may be analysed to check that inputs are behaving as expected and have correct scaling.
Image Assets
If using a heavily image based setup, you may want to import image assets for use in screen designs at this point. See the Images Tab
.
Some images may be configured to switch between various visual states based upon the value of a channel (e.g. for a battery warning light). See Image Selectors Tab
for information on how to configure this.
Screen Design
Once input channels and image assets are prepared, screens can be designed to display data with gauges on the Design Tab
.
Simulation
If a simulator is available for your display, then it may be simulated on the Simulator Tab
so that screen layouts can be tested before the more time-consuming process of testing on the real Display Module.
Display Setup Concepts
Setup Components
A Dash Design setup primarily consists of Channels and Gauges.
Channels are comprised of Sources, Outputs and Sensors, though much of this structure is not separated in the user interface. A CAN signal for example will have a raw ‘source’ that is used for acquiring the channel data and an ‘output’ which is associated with a sensor for scaling the raw data. Logically, the ’type’ of a channel is the associated ‘sensor’ type and the raw source is an implicit input to the ‘output’.
Sources
Non-visual objects that define how data is obtained from an external source such as CAN bus, a digital input or an A/D converter. Sources can be internal to to the display such as CPU temperature.
Channels (Outputs)
Non-visual objects that obtain information from one or more sources or other outputs. An output manipulates the obtained data according to the sensor associated with the output. The result can then be used in a Gauge or another Channel.
Sensors
Non-visual objects that define how the data is manipulated by an output. Examples of sensors are linear scalars, function tables or text tables. Sensors are selected and configured by changing the ’type’ of a Channel.
Gauges
Visual objects that are placed on a screen page. There are two types of gauge; static and dynamic.
Dynamic (Variable) Gauges change their appearance to reflect data obtained from channels. Examples of variable gauges are Bar Gauges
, Tacho Gauges
and Value Gauge
.
The following diagram shows the relationship between sources, outputs, sensors and gauges:
In this example, the raw RPM value is passed to the scaled RPM output which uses a scalar sensor to provide its’ output. This is passed to both a bar tacho gauge (which displays the RPM) and the oil pressure alarm output. The oil pressure is obtained in a similar manner and passes its’ output to a bar gauge (which displays the oil pressure) and the oil pressure alarm output. The oil pressure alarm output uses the alarm sensor and its’ two inputs to generate an output used by the warning gauge to signal low oil pressure, eg Oil Pressure is less than 2 and engine RPM is greater than 500.
Opening and Saving Setups
Opening a Setup
To Open an existing colour display setup:
Select File | Open Setup.... The file open dialog is shown.
Select the required display setup file and click Open.
Recently opened or saved files can be accessed from the sub-menu File | Recent Files.
If the editor is in Locked Layout mode, only certain gauge properties can be edited and the gauge positions are fixed to prevent accidental editing.
Layout Locked mode can be toggled by selecting File | Lock Layout or by clicking the Edit Layout icon at the top left of the screen design area.
Saving a Setup
To save a setup under a new filename, select File | Save Setup As...Ctrl + Shift + S, enter a file name in the file save dialog and click the Save button.
To save a setup with the current name, select File | Save SetupCtrl + S.
If a setup or Dash Design is closed and the setup has changed since the last save, a prompt will appear asking if the changes to the setup are to be saved. Select Save As to save the changes (possibly with a new file name), Discard to abandon the changes or Cancel to return to editing the current setup.
Uploading a Setup to a Display
Overview
Uploading a setup programs the current setup into the Display Module.
Tip
View the Setup Checker to ensure there are no setup errors or warnings prior to programming the setup.
Ensure that the Display Module is attached to the PC. Ethernet based Display Modules may be attached directly to the PC with an ethernet cable or to a Local Area Network (LAN).
Display Modules that connect using USB should show a special screen once attached to the PC.
Select File | Upload To DisplayF7. A dialog will be shown to allow selection of the Display Module that should be programmed:
Upload Setup Dialog
Select the Display Module to be programmed from the list. Typically there will only be one so the first item is selected by default.
Upload Original Setup
Depending upon the type of Display Module, there may be the option Upload Original Setup. When programming displays, the setup file is compiled into a more compact format that is understood by the display. If Upload Original Setup is checked, then the original setup file will also be programmed into the display to allow later recovery of the original setup used to program the display from the Display Module itself using the command File | Download From Display.
Starting the Programming Procedure
Click the Upload Setup button to begin programming the setup into the display.
Programming Progress
The progress of the procedure will be shown, along with a log of messages:
Upload Setup Progress
If the process fails, refer to the message log as it may identify the cause.
Once the programming is complete, the Display Module may be disconnected from the PC. For USB connections, detaching the USB cable should cause the setup to run on the display.
Firmware Updates
Overview
Over time, updates to the Display Module firmware may become available that resolve bugs and add new features.
Dash Design may be used to re-flash the Display Module with new firmware.
Firmware Update Procedure
Ensure that the Display Module is attached to the PC. Ethernet based Display Modules may be attached directly to the PC with an ethernet cable or to a Local Area Network (LAN).
Display Modules that connect using USB should show a special screen once attached to the PC.
Select Tools | Upload Firmware.... A dialog will be shown to allow selection of the Display Module that should be programmed.
Select the Display Module to be programmed from the list. Typically there will only be one so the first item is selected by default.
Select a firmware file using the Firmware Filename picker. File paths can be pasted here or browsed using the … button.
Click the Upload button to begin programming the firmware into the display.
Programming Progress
The progress of the procedure will be shown, along with a log of messages.
Do not switch off the Display Module during the programming procedure as this may corrupt the firmware.
If the process fails, refer to the message log as it may identify the cause.
Once the programming is complete, the Display Module may be disconnected from the PC to reboot it.
Removing Unused Image Assets
Overview
During the course of editing a setup, graphic images may be added to the setup and as images are replaced or no longer required, the unused image files may be left stored in the setup, increasing both the size of the setup and the uploaded setup.
To remove unused images from the setup, see Images Tab
(Delete All Unused).
Removing unused images does not remove them from their original location on disk.
Exporting Image Assets
Overview
When an image (e.g. a bmp, png or jpeg file) is added to the setup, a copy of the original file is embedded in the setup together with the path to the original file location. This allows for the original bitmap to be updated and the bitmap in the setup to be updated by clicking the reload button.
When setups are shared with other users, the original bitmaps may not be present on the new users computer. The export function allows images to be exported to the new users computer. In addition, the path can be updated to point to the new location.
Setups may be saved to files that are locked from editing and may only be programmed to displays. Locked setups include thumbnails of screens for preview purposes.
Exporting Locked Setups
To export a locked setup, use the File | Export Compiled / Locked Setup... command.
Locked setups may be loaded into Dash Design and programmed with File | Upload To DisplayF7.
Locked setups have the file extension .gddp.
Some Display Modules support serial number locked setups. If supported by the display, check the Lock to Serial Number? box and enter in the display serial number.
Locked setups may have the original source setup file name included in the file. If desired, check the Embed Setup File Name box. The file name may be edited to remove any user information or it could be changed to a URL.
The original setup file may also be embedded in the locked setup file. If desired, check the Embed Source Setup File box. A password must be specified. The original setup will be LZMA compressed and AES encrypted with a key cryptographically derived from the password and a ‘salt’ value.
If the original setup file is embedded in a locked setup. The original setup file may be extracted from the locked setup file using the File Info tab which is available when the locked setup file is loaded into Dash Design.
File Info Tab
The File Info tab provides information about the locked setup file. The File Info tab is only available when a locked setup file is loaded into Dash Design.
The File Info tab provides the following information:
Field
Description
Setup Binary Checksum
Checksum of the setup binary data, this should match the checksum calculated by the display module when the setup is loaded.
The file name of the source setup (if any) embedded in the locked setup.
Source Setup File MD5
MD5 sum of the setup file that the locked setup was generated from.
Source Setup File SHA-1
SHA-1 hash of the setup file that the locked setup was generated from.
Setup Binary Checksum may be used for scrutineering purposes to ensure that the setup file loaded into the display module has not been tampered with.
Raw Setups
Overview
Setups may be saved to ‘raw’ setup files for programming with external tools. Raw setups can’t be opened or programmed from Dash Design.
Tip
If you want to make a non-editable setup that can be programmed with Dash Design, see Locked Setups
.
Exporting Raw Setups
To export a raw setup, use either the File | Export Raw | Export Raw Setup (Packaged)... or File | Export Raw | Export Raw Setup (Unpackaged)... command.
Use File | Export Raw | Export Raw Setup (Packaged)... for tools that expect packaged raw setups (e.g. commissioning / programming tools). Packaged setup files include some additional information about the setup (e.g. Display Module type) that the tool can use for file validation.
Packaged raw setups have the file extension .rawsetup.
Use File | Export Raw | Export Raw Setup (Unpackaged)... for tools that do not expect any setup packaging (e.g. an Display Module external simulator).
XML Setup Import / Export
Overview
For external editing of setup files in a text editor or comparison using a merge tool, setups can be converted to an XML based format.
Use the File | Export Setup to XML... and File | Import Setup from XML... menu actions to export / import XML based setups.
XML Format
The best way to get a feel for the XML format is to export a setup and look at the generated XML in a text editor such as VS Code.
Tip
Use a tool such as WinMerge to compare the XML files to see what has changed between versions of the file.
display_setup - the root node defines the display type and screen size.
notes - Includes any notes from the setup file entered in the ‘save setup’ dialog.
can_ports - groups can_port nodes.
can_port - describes a single CAN Port.
index - The CAN port number, starting at 0.
bitrate - The CAN port speed setting.
termination_resistor - Enable / Disable software selectable CAN bus termination resistor.
can_channels - groups can_channel nodes.
can_channel - describes a single CAN channel.
name - The name of the CAN channel.
id - The CAN ID.
bit - The bit position of the data in the CAN message.
length - The length of the data in bits.
dbc_type - The data type of the data.
endian - The byte order of the data.
canmask - The mask to apply to the CAN ID.
comcodex - The COM codex to use.
output - describes the output of the CAN channel.
name - The name of the output.
sensor - describes the sensor used by the output.
shared - The name of the shared sensor, if not supplying sensor values in-line. See shared_sensors node.
type - The type of the sensor.
name - The name of the sensor.
factor - The factor to apply to the sensor value.
offset - The offset to apply to the sensor value.
channels - groups channel nodes.
channel - describes a single channel.
type - The type of the channel.
output_type - The output type of the channel.
predefined - Indicates if the channel is predefined.
name - The name of the channel.
inputs - groups input nodes.
input - describes a single input.
id - The ID of the input.
sensor - describes the sensor used by the channel. The properties vary depending on the sensor type.
shared - The name of the shared sensor, if not supplying sensor values in-line. See shared_sensors node.
type - The type of the sensor.
name - The name of the sensor.
factor - The factor to apply to the sensor value.
offset - The offset to apply to the sensor value.
pre_delay - The pre-delay to apply to the sensor value.
retrigger_time - The retrigger time to apply to the sensor value.
conditions - groups condition nodes.
condition - describes a single condition.
comparator - The comparator to use.
limit - The limit to compare against.
logic - The logic to apply to the condition.
items - groups item nodes.
item - describes a single item.
value - The value of the item.
on_time - The on time of the item.
off_time - The off time of the item.
max_duration - The max duration of the item.
graphic - The graphic to use for the item.
pages - groups page nodes.
page - describes a single page.
properties - properties of the page.
screenId - The screen ID of the page.
name - The name of the page.
colour - The colour of the page.
tags - groups item nodes.
item - describes a single item.
favourite - The favourite setting of the page.
defaultBgColour - The default background colour of the page.
defaultLineColour - The default line colour of the page.
defaultFillColour - The default fill colour of the page.
defaultTextColour - The default text colour of the page.
defaultWarningColour - The default warning colour of the page.
defaultFont - groups name and size nodes.
name - The name of the font.
size - The size of the font.
keypad_events - groups keypad_event nodes.
keypad_event - describes a single keypad event.
key_id - The ID of the key.
event_type - The type of the event.
key_type - The type of the key.
priority - The priority of the event.
output - The output of the event.
events - groups event nodes.
event - describes a single event.
gauges - groups gauge nodes.
gauge - describes a single gauge.
type - The type of the gauge.
properties - groups properties nodes.
name - The name of the gauge.
input - The input of the gauge.
left - The left position of the gauge.
top - The top position of the gauge.
width - The width of the gauge.
height - The height of the gauge.
lineColour - The line colour of the gauge.
backgroundColour - The background colour of the gauge.
fillColour - The fill colour of the gauge.
startValue - The start value of the gauge.
endValue - The end value of the gauge.
segmentSize - The segment size of the gauge.
labelColour - The label colour of the gauge.
labelFont - groups name and size nodes.
name - The name of the font.
size - The size of the font.
barTachoRectangular - The bar tacho rectangular setting of the gauge.
separatorsBetweenBars - The separators between bars setting of the gauge.
smoothEdges - The smooth edges setting of the gauge.
formatString - The format string of the gauge.
labelFrequency - The label frequency of the gauge.
labelDivisor - The label divisor of the gauge.
lowerLimitEnabled - The lower limit enabled setting of the gauge.
lowerLimitEnd - The lower limit end of the gauge.
lowerLimitColour - The lower limit colour of the gauge.
upperLimitEnabled - The upper limit enabled setting of the gauge.
upperLimitStart - The upper limit start of the gauge.
upperLimitColour - The upper limit colour of the gauge.
lowerLimitFlash - The lower limit flash setting of the gauge.
upperLimitFlash - The upper limit flash setting of the gauge.
flashAllEnabled - The flash all enabled setting of the gauge.
flashAllStart - The flash all start of the gauge.
flashRate - The flash rate of the gauge.
caption - The caption of the gauge.
textColour - The text colour of the gauge.
font - groups name and size nodes.
name - The name of the font.
size - The size of the font.
textJustify - The text justify setting of the gauge.
backgroundColour - The background colour of the gauge.
formatString - The format string of the gauge.
specialFormat - The special format of the gauge.
colourMode - The colour mode of the gauge.
graphicInput - The graphic input of the gauge.
graphic - The graphic of the gauge.
shared_sensors - groups sensor nodes. Shared sensors are referenced by channels.
sensor - describes a single sensor. The properties vary depending on the sensor type.
name - The name of the sensor.
type - The type of the sensor.
factor - The factor to apply to the sensor value.
offset - The offset to apply to the sensor value.
pre_delay - The pre-delay to apply to the sensor value.
retrigger_time - The retrigger time to apply to the sensor value.
conditions - groups condition nodes.
condition - describes a single condition.
comparator - The comparator to use.
limit - The limit to compare against.
logic - The logic to apply to the condition.
graphics - groups graphic nodes.
graphic - describes a single graphic.
filename - The file name of the graphic, used by references in the setup.
width - The width of the graphic.
height - The height of the graphic.
size_bytes - The total number of bytes in the image data.
data - The data of the graphic, base-64 encoded.
led_rules - For display with rule-based LED setup, defines the LED configuration.
group - LED group definition.
name - The name of the LED group.
leds - groups led nodes. The “All Screens” group is special and should not be moved/removed.
led - describes a single LED.
name - The name of the LED.
pages - JSON object containing array of page IDs that the LED group is active on.
rule - Set of conditions and LED patterns.
conditions - JSON object containing array of conditions.