Three of the things we make are screens. The panel on the wall, the bigger display in the living space, and the small one up front in the tow vehicle. They are the part of this system most people actually touch, and until now they have all been drawn the same way since we started on them back in February. The tools we used have moved on a long way since. So we are going back to the start on how the screens get built, and the reason is simple enough to say in one sentence: we want them to look like instruments instead of like software.
What is actually being changed
Two pieces of software sit behind every TrailCurrent screen, and both are free and open source, same as everything else we build on.
The first is EEZ Studio. It is the drawing board. You lay a screen out in it, place the buttons and readouts, set the colours, and it produces the code that runs on the display. We wrote a whole feature tour of it back in June, because it deserves more attention than it gets.
The second is LVGL. It is the part that does the actual drawing, on the chip, many times a second. When you drag a slider and it follows your finger, that is LVGL.
Our screens have been built on version 8 of LVGL. Version 9 has been out for a while, and it is a genuine rewrite rather than a tidy-up. EEZ Studio has spent the last year growing into it, adding support for the new pieces one release at a time, and it is now far enough along that staying put costs us more than moving does. So Milepost, Fireside, and Spotter are all going across.
Round things, done properly
Here is the change that started this.
A lot of what a rig has to tell you is a quantity between empty and full. Battery charge. Fresh water. Grey and black tanks. Solar coming in. How much is left in each, right now, at a glance from across the room.
Your eye reads that faster off a dial than off a number. It is the reason fuel gauges look the way they do and not like a spreadsheet cell. The angle gives you the answer before you have read anything, which matters when you are glancing at a panel on your way past with your hands full.
So we already draw rings wherever we can. Here is the driving screen on Spotter as it stands today.
Those rings are about as far as version 8 goes. It can draw an arc and fill it, and that is genuinely most of the way there. What it cannot do is any of the things that turn an arc into an instrument.
There are no tick marks. No labelled divisions around the edge telling you where half is. No way to say that the last fifth of a tank should read red and the middle should read amber, short of stacking arcs on top of each other and hoping. And where the sweep begins and ends is fixed when the screen is drawn, rather than being something a live value can move.
Version 9 has a component built for exactly this. Ticks, labelled divisions, and coloured bands across a range, all of it as settings rather than as workarounds. The arcs themselves got better too, with the start and end of the sweep now driveable from live values. That sounds like a small detail. It is the difference between a ring that moves smoothly and one that snaps.
There are also proper gradients now, including ones that radiate out from a centre and ones that sweep around a circle. A ring that shades from green through amber to red as it empties becomes a handful of settings instead of an afternoon of tricks.
The short version: the gauges are about to stop being approximations of gauges.
One layout, every screen
The screens we build are not all the same size. The wall panel and the main display are seven inches. The one in the tow vehicle is four and a bit, and a different shape besides. Historically that meant laying out each screen for each display, by hand, and then doing it again every time anything moved.
Version 9 brings a layout system where you describe a screen as rows and columns and say which parts should stretch to fill the space, rather than placing every element at a fixed spot. The layout then works out the arithmetic for whatever display it lands on.
You will never see that directly. What you will see is the same screen looking right on the small display instead of looking like a big screen squeezed down, and new screens arriving sooner because they do not have to be drawn three times.
Smoother, on the hardware we already have
The bigger of our displays runs on a newer chip that has a small piece of dedicated graphics hardware inside it, sitting idle. Version 8 had no way to reach it, so every pixel was pushed around by the main processor.
Version 9 knows how to hand some of that work over. Filling, blending, moving blocks of screen around: the sort of thing that happens constantly when you swipe between pages or slide a dimmer. Offloading it frees the processor for the work that actually matters and takes the stutter out of the animations.
No new hardware. Nothing to buy. The chip could always do this, and now the software knows how to ask.
Seeing it before it is on the wall
This one is for us rather than for you, but you get the benefit of it.
Until recently, judging whether a screen looked right meant building the firmware, flashing it onto a physical display, and going to look at it. Every colour tweak, every nudge of a button, was a cycle of several minutes. You end up making fewer changes than you should, because each one costs something.
The current EEZ Studio can run a full simulation of the screen on a desktop computer, using the real drawing code rather than an approximation of it. What you see is what the display will show. That turns a several minute cycle into a several second one, and things get fixed that previously got shrugged at.
It also means anyone can look at our screens without owning any of our hardware. Clone the repo, open it, press run. If you have been curious about what is on these displays but not curious enough to buy a board, that is now a five minute detour instead of a project.
What this costs you
Nothing, and that is the whole point of doing it this way.
The displays you already have are the displays this runs on. No new board, no new panel, nothing to send back. The screens change because the software changed, and the software arrives over the air the way every other update does.
This is the part of a software defined vehicle that is easy to say and harder to believe until it happens to you. The thing on your wall is better this month than it was last month, and you did not do anything. Most gear in a rig is as good as it will ever be on the day you bolt it in. This is not that.
Being honest about where it is
This is the start of the work, not the end of it.
Everything shipping right now is still on version 8, and it stays that way until the replacement is genuinely better rather than merely newer. A screen rebuild is a good opportunity to break things that used to work, and the last thing anybody needs is a panel that looks lovely and drops a touch every so often.
So it goes in order. Screens get rebuilt, they get run on real hardware for a while, and they ship when they have earned it. Spotter is the smallest of the three and the most contained, so it is likely to go first. Expect the visible changes to arrive gradually rather than all at once, and expect us to say so here when they do.
There is also a fair amount of unglamorous work involved. Every font, every style, every screen in three separate projects has to come across, and version 9 renamed a great deal of what version 8 called things. That is the bulk of the effort and none of the fun, and it is worth naming so nobody reads this as a weekend job.
Thank you, and a note on how we build these
EEZ Studio is made by a small team at Envox, given away free, and it is genuinely good. LVGL is likewise free, and it is behind an enormous number of screens you have touched without knowing it. Neither one has ever asked us for anything, and both of them are a large part of why our displays look the way they do rather than like a hobby project. If you build things with screens in them, both are worth your time.
The way we work with EEZ Studio may also be worth mentioning, since we get asked. We use an AI agent to do the repetitive part, the hundreds of small placements and settings that make up a screen file, and then a person opens EEZ Studio and looks at the result with their own eyes before any of it gets near a display. The drawing board stays the place where humans make the calls. The written instructions that teach the agent how to behave itself are published on our GitHub along with everything else, and there is a post about why if that side of it interests you.
The screens themselves are open source too, as they always have been. The project files, the layouts, the fonts, all of it. If you want to take our battery gauge and put it on something we have never heard of, that has always been fine and it stays fine.
We will post the new screens here as they land, and the longer look at them goes up on the open source channel.