Ever since lua was introduced to Jeti transmitters there was one thing that kept banging in the back of my head. “Would it be possible to re-design the look and feel of main-screen?” I’ve had Lua on my transmitter over a year now, so it really was time to take a crack on it.
So, let’s see some possibilities!
Problems with traditional main screen
Problem is obvious. The screen estate is wasted to big gaps, frames and most important the “model-box” in lower left corner:
Since I am flying heli’s I like to have BIG numbers due the fact that I can only take a fast look to screen and with normal main screen I get three values. I wan’t more. (Yeah, there’s announcements, I know, I use them too, but they’re slow)
Lua – Full Screem to rescue!
We know that in lua we make a telemetry window with size-attributes “small”, “double”, “user selectable” and “full screen”. So let’s make a full screen:
system.registerTelemetry(1,"Logo 800 Xxtreme - Powered by RC-Thoughts.com",4,display)
The last number “4” tells the screen-size. Basically after that it’s time to write the app with needed information. Since I wanted to make myself a “all-in-one” app I started with my RFID-app and simply added more sensors.
So the menu-forms got quite big:
The timer almost became an issue. I’m used to have a flight-time timer that counts the time when motor is active. That means some logical functions to keep the timer not counting in hold- or autorotation-mode. And we are not allowed to access transmitters timers from lua so I had to make the timer completely in lua. My lua-timer starts and resets with same switches my transmitter-timer does. And yes, they keep the same time :)
Just in case anyone is interested here’s the core of the timer-code:
if(timerGo == 1) then -- timerGo is the start switch if(timer) then if(pause) then pauseTimeTemp = pauseTime end timeNow = system.getTime() timeNowRaw = timeNow - timeStart - pauseTime fTimer = flightTimer(timeNowRaw) pause = false else timer = true timeStart = system.getTime() timeStart = timeStart end else if(timer) then pause = true timeStampNow = system.getTime() pauseTime = timeStampNow - timeNow + pauseTimeTemp end end if(resetGo == 1) then -- resetGo is reset switch timeStart, pauseTime, timeNow, timeNowRaw = 0,0,0,0 fTimer = flightTimer(0) timer = false end
After that it’s basically to begin drawing the text on the main screen. I wanted something extra, so I made the transmitter work in a little bit different way. So, I took an image and used it as an “idle”-screen. So when I power up the transmitter or select my Logo 800 as model my transmitter’s screen looks like this:
Why would I look some empty telemetry-screens? I can do a subtle advertising on field instead :)
How does it look like in use?
Thanks for asking, it works. The brilliant part is that you can do what ever you want. You can draw whatever you want, position things as you like and so on. So I’m pretty sure this is not the final look but I gotta start from somewhere. After powering on the model the main screen automatically changes to empty telemetry-screen:
And after a second or so when all sensors are online we are ready with full flight-packs and ready to go:
I still have four main values that I like to have on screen when flying. On top of that there is clearly visible battery-charge bar that is easy to have a fast look on when flying. Some values have min and max-values stored, just like in normal double-sized telemetry windows.
Neat thing is, I get more information, remember that original screen has room for three “big” values, I have now four. On top of those I have four more values shown, RX-voltage, Q-value and temperature of both 7S batteries.
Here’s the screen after a spoolup:
Of course the functions from original RFID-app is there, like a warning when powering on my heli with empty batteries:
I’m sure I’ll be tinkering with the looks before spring is here…
I don’t know. Make more screens perhaps. The lua-timer gives me some ideas, I may be having some fun with that. And since you ask, yes this works in 14/16 too, just be careful when writing the app, monitor the memory-usage. My quick’n’dirty screener takes ~80KB in memory so it’ does not run in 14/16. Also, this one is made for me so it will not be downloadable, all the components are here on RCT website, just grab them and go wild! If you think my screen is ugly remember that it’s made for me, make your own! :)
As always, the point of this hobby is to have fun!