Nextion 3.5″ touch display

After somewhat disappointing results with the 3D printer (XYZPrinting makes crap printers, fyi), I’ve had a display gathering dust. Namely the 3.5″ touch display from Nextion. This display has a builtin touch functionality and comes with a piece of software to upload images, buttons, gauges and whatnot to the screen. The screen than handles all the clicking and dragging and you get some clean out put to your Arduino or other serial device, neat!!

Too bad the software is, how to put it nicely, the biggest piece of crap you have ever seen. To proces things in the builtin controller of the screen there is something of a “programming” language available without much documentation. You’d suspect there would be something like a for-loop huh? Well, no … they can handle not too complex IF-statements but that’s about it.

But after messing around a bit, it started to make sense. Global variables are not global, and post/pre-actions don’t make sense, spaces between filling variables are of course leading to compilation errors and much more misery.

So, lots of work left there … the hardware seems really nice though. In the end I managed to setup a little LCARS interface with buttons who actually remember their settings and it even has a fade-in/fade-out sequence with a timeout! Don’t ask how I made the timers do the fading though. Normally you would load a little library in the Arduino and control the screen from there, but I want to put as much functions in the screen itself as possible so I can have the most juice in my Arduino or ESP to handle important things, like running my coffeemaker.

Anyway, here is a little piece of footage to let you see what I made. It’s not too fancy, but it shows a little of what this neat screen can do (if you stop thinking about everything you learned when programming …). In the end it makes it worth.

The next step is getting things to work with the Arduino and my favorite Arduino App, Blynk. I’ll probably be using  https://github.com/bborncr/nextion this library to read/write to the screen. Very light and simple, I like that 🙂