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.
- Power is the real constraint. 64 LEDs at full white is around 3.8A. You will never run all of them white at once, but a full-panel white flag is a real thing and you should size the supply for it.
- An external 5V supply is mandatory, not optional as it arguably is with a short strip. Share the ground with the Arduino; do not feed 5V into the Arduino's 5V pin.
- A diffuser transforms it. Bare WS2812b LEDs are point sources — you see 64 bright dots rather than a shape. A sheet of acrylic a few millimetres above the panel turns dots into a legible display, and it is the single biggest improvement you can make.
- Larger panels chain. 16×16 and multi-panel arrangements work the same way, with the power budget rising accordingly.
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.
- A thick font is more legible at a glance than a detailed one, because at this resolution the difference between a 6 and an 8 is one or two pixels.
- Test at your actual viewing distance, not on the bench. A font that reads perfectly at 30cm can be ambiguous at arm's length through a diffuser.
- Single characters only, realistically. An 8×8 panel holds one character legibly. Scrolling two is possible and is worse than useless while driving.
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:
| Priority | Effect | Why it sits there |
|---|---|---|
| 1 (highest) | Red flag | Session-stopping. Nothing else matters. |
| 2 | Blue flag | You are being caught and must act now. |
| 3 | Yellow flag | Danger ahead. More urgent than anything about your own car. |
| 4 | Proximity / blind spot | Another car alongside — immediate and physical. |
| 5 (lowest) | Gear number | The 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
- No diffuser. The single biggest difference between a panel that looks like a display and one that looks like 64 LEDs.
- Rotation left wrong, then compensated for in the layout. Fix the rotation setting instead.
- Too many effects. A panel showing five things is showing none of them — the priority order means four are invisible most of the time anyway.
- Priority backwards. Gear above flags means you never see a flag, because you are almost always in a gear.
- Underpowered supply. 64 LEDs is a real load, and a white flag is when it bites.
- Brightness set on the bench. A matrix bright enough for a lit workshop is blinding in a dark room.
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
Related guides
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.