Our Blog

2106, 2021

The Sunday Blog: Thank you, dear attentive readers and users!

By |June 21st, 2021|

We, which means in this context, the Nextion developers, consultants, forum administrators, technical writers, and beta testers, are only normal human beings, like anyone else. Although we do our best, for example beta testing new versions of the Nextion editor, or developing example projects and code for this blog, to check and check again everything thoroughly, it happened (and will for sure happen in the future) that we oversee a little detail or a rare or specific use case. That's why we are happy with and grateful for our attentive readers and users! In this article, I will cite two examples of how our readers and users help us making a good product still better.

1406, 2021

The Sunday Blog: Advanced programming techniques – Input validation

By |June 14th, 2021|

Sometimes, when developing a project, we discover that a specific functionality for our specific use case seems to be missing. As an experienced developer, you would think of solving this by quickly overloading a component object with new member variables and functions as you'd do for example in Java. But, unfortunately, the embedded MCU on the backside of our Nextion HMI display can not offer you enough space for code and variables on one side, and a full fledged object oriented runtime interpreter on the other side.  That does NOT mean that components can't see their functionality extended by user code. Although I showed you already last October how this can be done, extending a progress bar component into an animated progress bar, not everybody read this post or can adapt the procedure to another component.  So, today, let's have a look onto how to enhance the number component in combination with the on-screen keyboard, so that inputs can be limited between a minimum and a maximum.

706, 2021

The Sunday Blog: The new factory demo – Hidden secrets

By |June 7th, 2021|

Each Nextion HMI comes with a factory demo preloaded. This demo has many functions. First of all, it serves as the very last step (of many) of quality control before leaving the factory, and thus proves that .tft files can be uploaded and run. Second, it is made to be an eye catcher, to demonstrate impressively many of the functions and capabilities of this specific Nextion HMI model or series.  From time to time, we update the factory demo, mostly to show new functionalities of new Editor or firmware releases. These firmware releases come as back pack with new editor versions. When you first compile and upload a file with a new editor release, you might see "Firmware will be upgraded" on your screen before the usual upload progress is shown. This time, we even added a (not so hidden) secret! Telling you what it does and how you unhide it, requires a few explanations before.

3105, 2021

The Sunday Blog: Developing and debugging – How can I… (step by step)?

By |May 31st, 2021|

Having a look onto different internet forums and Nextion HMI related pages and groups on the well known social networks, almost every day, I stumble over questions like “Hey guys. I want to send a scroll text from arduino to nextion. Can someone tell me what code do I need to use? I'm kinda a noob in nextion.” My first (inner and silent) reaction is often: “How can one ask such elementary things? Everything is so well documented in the Nextion Editor Guide and in the Nextion Instruction Set documents online and the rest is easy-peasy coding in the almost oversimplified C/C++ dialect by Arduino!” But then, I must tell myself that most probably, not all of our valued customers and my valued readers have a master or engineer degree in software developing or any other IT domain. I hab furthermore to learn that most people who use the Arduino IDE aren’t even aware of the fact that when they compile a .ino file (a sketch), the compiler goes through up to 200 hidden or invisible files which come with the Arduino IDE, to handle all the startup action of the CPU like activating the different clock generators for the CPU core and the integrated peripherals, then initializing these peripherals (GPIO, I2C, SPI, USB, etc.) and finally set up the internal interrupt vectors table, before setup() and then loop() is executed. So, it’s easy to say that, if you want your system to take a specific action, you just have first to think like your system an then simply find the right words to tell it what it has to do. Naturally, a single blog post or even a series of these can not replace 5 years spent at whatever polytechnic university. But by picking example questions like the one cited above and by cutting the desired action down into small steps, providing enough background information from time to time will hopefully help the one or the other of my readers to come closer to “think like your system does”.

2405, 2021

The Sunday Blog: Nextion news – and (again) a new editor version

By |May 24th, 2021|

Yes, the Nextion Editor has seen a new release - v. 1.63.1. While there are no new components or functions with whistles and bells, many things have evolved (and had to evolve) under the hood. It may sound crazy but this is due to the COVID-19 pandemic. Today, I’ll try to shed some light onto the things going on behind the scenes, mostly in Shenzhen/China, but also in our outposts on the North-American and the European continents.

1705, 2021

The Sunday Blog: Multilingual GUI design – More than three ways

By |May 17th, 2021|

Inspired by a recent question from a Swiss user in the Nextion forums, I decided to explain four of the many ways which lead to Rome when it comes to localized or multilingual GUI design. There are static (design time) and dynamic (runtime) ways to create multilingual HMI applications. And, naturally, depending on your specific application, you will decide for one of these ways or for a mix of the different techniques. One trivial workaround is simply not using text but only pictograms and symbols. But this is not always recommended, there are culture gaps which may lead to ambiguous interpretations and there are legal security concerns in some countries which require unambiguous button captions in some cases. So, let's look at three different text based solutions, the multiple sub-application, the code based translation, and the dynamic filter method.