The dashboard display is divided into 16 slots numbered from 0 to 15. Each slot is 120 pixels wide by 40 pixels high.

Widget slots

A complete layout assigns a widget to each of these slots. Widgets can occupy more than one slot, and each has a number of options to control its appearance and behaviour. This page describes all available widgets and their options.

Widgets are specified in the show area of the PAGE definition. Each starts with the slot number followed by the widget type followed by the options inside curly braces. See examples below.




The BLANK widget occupies one slot. It has no effect on graphics or polling. It just uses up the slot which is then available to display a logo or graphical output from a BOOLEAN widget. Unconfigured slots will be automatically assigned plain BLANK widgets.



The BOOLEAN widget occupies one slot. It operates as an on/off alert. Like the blank widget, the BOOLEAN has no built-in graphics. However it can run display lists for on and off events which, in a way, makes this the most flexible of all the widgets.



Highlight a symbol when warmup enrichment is active.

2 BOOLEAN {var=engine mask=8 ifhigh=therm fg=2 egval=8}

This will execute the therm display list when the warmup enrichment indicator bit changes (see comments in the Megasquirt .INI file). The foreground colour will be set to 2 (default red) when warmup is on, and to 0 (default black) when warmup goes off.


The CARDIO widget occupies both columns in two rows. It displays a graph of up to two values read from the Megasquirt. These values have independent Y axis scales. The vertical line indicates the current update point and, like a cardiogram, will wrap to the left border when it passes the right one.

The display shows 200 values: enough for 12.5 seconds of history for a last poll (i.e. 16x per second) and typically about 6 minutes for a mean poll.



To display coolant temperature, say to get an idea of warmup rate.

4 CARDIO {avar=CLT amin=20 amax=100 egaval=85}


The GUIDEGRID widget occupies both columns in six rows. It is configured with X and Y grid values (typically RPM and MAP bins). These values are shown in the window as vertical and horizontal lines with the centre of the window being the current values of the two variables.

To minimise flicker, a maximum of two lines will be drawn horizontally, and two vertically. With a reasonably regular grid, the configuration program will make one or two visible lines the usual case. If your grid is very irregular the display may end up being confusing.



Typical use for guiding autotuning at grid intersections:

	xvar=RPMlast yvar=MAPlast
	xrange="1500 2100 2600 3200 3700 4300 4800 5400 5900 6500"
	yrange="43 50 60 70 80 85 95 100"
	egxval=1950 egyval=64

This widget occupies slots 2 to 13 leaving 0, 1, 14 and 15 for other uses. Note that idle and low load areas have been left off the grid since it doesn't make much sense to autotune those areas.


The LEDBAR widget occupies both columns in one row. It is a linear scale with the leftmost LED coming on when a low value is passed and the rightmost coming on when a high value is passed. There are always ten LEDs and they can be split into up to four blocks of colours.


Because it's a linear scale you can nail down exactly when two of the LEDs come on, but it doesn't have to be the first and last. If you wanted the 3rd LED to come on at 3000 rpm and the 8th at 6000 rpm, that's (6000−3000 rpm) / (8−3) LEDs or 600 rpm / LED. You'll get what you want if you configure the first to come on at 3000−1200 rpm=1800 rpm and the last to come on at 6000+1200 rpm=7200 rpm.


A double-row LEDBAR for higher resolution near the redline:

2 LEDBAR {var=RPMlast low=500 high=5000 n1=10 egval=5800}
4 LEDBAR {var=RPMlast low=5000 high=6500 n1=3 n2=4 n3=3 egval=5800}


The SEG7 widget occupies one column over two rows. It displays a polled value in a simulated 7-segment display. The large digits are easy to read and the widget can be configured to change colour when thresholds are passed.


Note that the colour map can need five entries to support the bg option, but only needs four if thresholds are being used.


A SEG7 widget showing AFR and occupying slots 1 and 3. The orange-green-orange colour map means Segments will be green on black unless the AFR is below 12.5 or above 16.0 in which case the display will be orange segments on a black background.

1 SEG7 {
	var=AFRmean label="AFR" inv=1
	cmap="ogo" low=12.5 high=16.0


The TEXT widget occupies one slot. It displays a polled value as a number.



Show the TPS value in slot 15. With the default colour table it will display as black text on a yellow background.

15 TEXT { var=TPS label=TPS bg=3 }


The TRILED widget occupies both columns in one row. It combines a TEXT widget on the left with three LEDs on the right. Only one LED is lit at a time. Typically the centre LED is the ideal range (for things like temperature or voltage) and a quick glance tells you if everything is in a good place.