Introduction

This page describes the structure of the configuration file, and links to pages giving details of each of its sections. It also provides a template file for a new configuration.

This is a reference page. There is a tutorial on configuration which might make a good starting point.

Case

Keywords are not case sensitive; use upper and/or lower case as you prefer. However, words you define (e.g. colour names, channel names) are case sensitive.

Structure

The config file is divided into .INI file type sections, with each section starting with the section name inside square brackets on a line by itself. The sections are [GLOBAL], [COLOUR], [RLE], [DLIST] and [PAGE]. If present, those sections must occur in that order. A minimal configuration will only have the GLOBAL and PAGE sections.

If you don't include a COLOUR or DLIST section, standard colours and display lists will be added to your configuration automatically. If you do include those sections, they will replace the standard settings. You can add to the standard settings by naming the sections [+COLOUR] or [+DLIST] which will put your definitions after the standard ones.

Comments are introduced by a semicolon (;). This and anything following on the line will be ignored.

GLOBAL

The global options are things that don't need to change when you press the next-page button (like the screen orientation or the Megasquirt firmware version. They are detailed here.

COLOUR

Colours are also global in that all colours are available to every page. Colours are arranged in groups called colour maps. Each widget uses its colour map in a known way, so customising these groups lets you control all colours used in the widget.

The colour section is described here.

RLE

RLE stands for run length encoding. This is a simple image compression method used in fax machines (and other places). The dashboard only uses RLE elements from within display lists, but they deserve a separate section because, even compressed, they are still bulky.

The RLE section is described after the DLIST section here.

DLIST

Display lists are user-defined lists of operations to be performed one after another. They can be used to display logos and annotations when the page is first drawn and to display alerts detected during Megasquirt polling.

The DLIST section is detailed here.

PAGE

The PAGE section defines what information to retrieve from the Megasquirt and how to display it on the screen. There can be more than one page which the user steps through using the next-page button.

The PAGE section is detailed here.

Memory Usage

The dashboard's microcontroller only has 16k of flash and that memory is largely used up. At the moment 2k is available and environment settings and page definitions share this space. It means that both have to be updated together, even if only one has changed, but it also means you decide whether you want more pages and less fancy icons and logos, or more fancy stuff and fewer pages.

The following table describes how much memory each thing may need. This is just to give you some idea of the worst-case cost of each thing. It is easiest to let the computer tell you if the configuration won't fit, but you then have to decide what to jettison.

ComponentBytes
environment header30
page146
colour2
display list2+#instructions+2×#arguments+RLEsize
RLE5+#characters/2

You can't avoid the environment header. Page cost is only for the second and subsequent pages.

A configuration using the default colour table and display lists occupies 115 bytes of environment space (leaving enough room for 13 pages).