RGB matrix displays with SimHub

Last updated · SimHub 9.11.22

An RGB matrix is a grid of addressable LEDs — usually 8×8 WS2812b — driven from a single Arduino data pin, the same as a strip. What makes it different is that SimHub can draw characters and shapes on it, so one panel can show a gear number, marshal flags, and a proximity warning. Multiple effects are organised into groups with a priority order, which is what decides what you see when two things want the panel at once.

The interesting problem with a matrix is not wiring it. It is deciding what wins when a yellow flag and a gear change happen at the same moment, and that is what priority ordering is for.

The hardware

An 8×8 WS2812b matrix is 64 addressable LEDs on one board, wired internally as a single chain. From the Arduino's point of view it is a 64-LED strip — one data pin, one ground, one 5V.

Rotation and orientation

Matrix panels have no correct orientation. The data input is at one corner, and where that corner ends up depends on how you mounted it.

SimHub provides a rotation setting, and you will need it. Get the panel running, look at it, and rotate until the text is the right way up. There is no way to work this out in advance, and it is not worth trying — one setting, thirty seconds.

Set rotation before you design anything. Everything else — character placement, flag layouts, which end an arrow points — is expressed relative to the panel's orientation. Fixing rotation afterwards means revisiting all of it.

Fonts on an 8×8 grid

Eight pixels is not many. SimHub supplies fonts designed for exactly this constraint — THICK8x8 and others — and the choice matters more than it would at any normal size.

This is why gear indicators are the classic use for an 8×8: a gear is always a single character, and it is the single most useful character to have.

Effect groups and priority

One panel, several things that want it. This is the interesting part of matrix configuration and it is what separates a useful panel from a confusing one.

SimHub organises effects into groups, and groups have a priority order. When more than one effect is active, the higher-priority one is what you see. A typical arrangement:

A worked priority order
PriorityEffectWhy it sits there
1 (highest)Red flagSession-stopping. Nothing else matters.
2Blue flagYou are being caught and must act now.
3Yellow flagDanger ahead. More urgent than anything about your own car.
4Proximity / blind spotAnother car alongside — immediate and physical.
5 (lowest)Gear numberThe default. Always there when nothing else is.

The principle: the thing you would most regret missing goes highest. A gear number is useful and you already half-know it; a blue flag you did not see costs you a penalty.

There is also a "when game is running" distinction — what the panel shows in a session versus what it shows sitting in a menu. Setting the idle state stops a permanently mounted panel displaying a stale gear number for an hour.

What to put on one

Gear indicator
The default and the most useful. One large character, always visible, read without thinking.
Marshal flags
Full-panel colour for yellow, blue, red, white and chequered. This is where a matrix beats a strip decisively — a full panel of colour in peripheral vision is unmissable.
Spotter / proximity overlay
An indicator at the left or right edge when a car is alongside. Improves racecraft, and it is the thing a screen dashboard communicates worst.
Pit limiter and status
A symbol while the limiter is on, which is easy to forget and expensive to forget.
Fuel and tyre warnings
Sparingly. Anything on this panel competes with everything else on it.

A worked example

One 8×8 panel doing three jobs at once, with priority deciding between them: live marshal flags, a gear indicator as the resting state, and a blind-spot warning when a car is alongside.

That is the configuration on our iFlag, and it is offered as one implementation rather than the right answer. The useful part is the arrangement: flags outrank proximity, proximity outranks gear, and gear is what you see the rest of the time. That ordering is the whole design, and you can build it on any 8×8 panel.

Building your own is entirely reasonable — an Arduino, an 8×8 WS2812b matrix, a 5V supply and a diffuser. The priority table above is the configuration. Several other manufacturers make matrix units too, and a number of wheels have small displays that can do some of this natively; the device list is worth checking before buying anything.

Common mistakes

Common questions

What RGB matrix works with SimHub?

8×8 WS2812b panels are the standard, and larger 16×16 or chained arrangements work the same way. From the Arduino's point of view a matrix is a single strip of addressable LEDs — one data pin, one ground, one 5V.

Why does my matrix show text sideways or upside down?

The panel's data input corner ended up somewhere other than where SimHub assumes. Use the rotation setting — there is no correct default, because it depends entirely on how you mounted the panel. Set it before designing any layouts.

Do I need a diffuser?

Not technically, but it is the single biggest improvement you can make. Bare WS2812b LEDs are point sources, so you see 64 bright dots rather than a shape. A few millimetres of acrylic above the panel turns dots into a legible display.

How much power does an 8x8 matrix need?

Up to around 3.8A at full white for 64 LEDs. You will rarely draw that, but a full-panel white flag is a real case, so size the supply for it. An external 5V supply is mandatory — share ground with the Arduino and never feed 5V into its 5V pin.

What is effect priority on a matrix?

The order that decides what you see when two effects want the panel at once. The rule that works is that the thing you would most regret missing goes highest — flags above proximity, proximity above the gear number, with gear as the resting state you see the rest of the time.

Can an 8x8 panel show two characters?

It can scroll them, and you should not while driving. Eight pixels holds one character legibly, which is exactly why gear indicators are the classic use — a gear is always a single character and it is the most useful one to have.

What font should I use on an 8x8 matrix?

A thick one — SimHub supplies fonts designed for the constraint, such as THICK8x8. At this resolution the difference between a 6 and an 8 is one or two pixels, so legibility beats detail. Test at your real viewing distance, through the diffuser.

Sources

SimHub is developed independently by Wotever and is not affiliated with oesimracing. This page was checked against SimHub 9.11.22 on 4 August 2026; where the interface has moved on since, the version stamp tells you how far. More on what SimHub is and what it costs.