Towards the end of 2015, I was contacted by ITead Studio after they read my Arduino blogs. Based on what they saw in my blogs, they asked me if I’d be willing to take a look at a couple of their related products. The first product they asked about was their HMI Display. My curiosity piqued, I quickly rummaged through their website and a few relevant Google searches. What I discovered had me pretty excited—it looked to be a product right up my alley.
The HMI (Human Machine Interface) Display is a cost-effective TFT touchscreen which can be controlled via an on-board serial port. The Nextion Editor is used to design an interface which is saved to a Micro SDCard and then loaded on the device. There’s quite a bit of interface logic built into the editor: you create pages and place objects (buttons, sliders, text boxes, etc.) within the page and include whatever control is needed to move between the pages you create.
More importantly? The serial interface on the devices also allow you to control the display from something like a Arduino, Raspberry Pi, or any other system-on-a-chip with the ability to communicate over a serial port. The ability to create a user interface in front of one of my Arduino creations piqued my curiosity the most.
Initial Thoughts and Impressions
Because the manufacturer claimed they were low cost, the first thing that I did was go out on Amazon to find out how much resellers were selling them for. I found the 2.4” Nextion HMI Displays for $17.99, 4.3” Nextion HMI Displays for $49.98, 7.0” Nextion HMI Displays for $79.99, and other sizes (both bigger and smaller) priced in a similar fashion. About my only complaint about what I found on Amazon is that there don’t seem to be many vendors selling the displays yet, which means they’re in and out of stock pretty quickly. Worse, there are unscrupulous vendors attempting to capitalize on the scarcity within Amazon by gouging buyers with exorbitant prices. Considering what’s going price-wise on Amazon, I’d suggest trying to buy through the ITEAD Studio Store or eBay until the Amazon vendors get their acts together. But for what you’re getting it certainly seems like a good value. Especially when you consider that the Nextion Editor will allow you to build a fully independent user interface without hooking up an Arduino or Raspberry Pi to control it.
After getting the editor installed, I started poking around Google, Youtube, and the Itead Studio website. There’s no shortage of information out there, but my initial impression is that it was a bit difficult for me to consume. It was pretty apparent that the authors of most of the content and the designers of the editor do not speak English as a primary language—quite a bit of the documentation and software dialogs were poorly written, sparse, and in some cases in Chinese.
This wound up being a bit of an obstacle, but nothing that I couldn’t overcome with a few dozen tabs open in Google Chrome and some trial and error.
Putting it to Use
The first thing I did was install the Nextion Editor and start tinkering around. It didn’t take me very long to figure out how to add a page, put some naughty words on that page, and get that profanity displayed on the 2.4” Nextion HMI Display. I learned a few things in the process:
- From within the editor, you needed to “compile” your file and locate the build output (File –> Build Output) to find the *.tft file that gets copied to your Micro SDCard.
- The HMI Display will process that file after being turned on.
- You may need to remove the MicroSD Card and power it back on in order to see it work the first time. I’m not 100 percent positive about this, but it seemed that if I left a Micro SDCard in the slot, it wouldn’t ever run what I loaded.
After having that success, I wanted to design something a bit more complicated that showed off a feature or two of the display. In the editor, I created a new project that had three different pages. In the lower left-hand corner of each page were three buttons labeled as 1, 2, and 3. Clicking on those buttons would take you to the page it corresponded to. And naturally, I added three images as a background for each page so that I could tell if the buttons were working.
Apart from the fact that the touchscreen isn’t particularly responsive, I pulled this off pretty simply. I found the editor a bit difficult to get started with, but once I got a bit more familiar with the display I was able to create this example in just a few minutes. Naturally, this was just my initial attempt at using the Nextion HMI Display. My basic interface wasn’t really good for much at all unless you’re an Animal fanboy like I am! In order to abstract the most value from the Nextion HMI Display, I’d want to be able to control it from an Arduino.
I am thoroughly impressed with the Nextion HMI Display. The device falls right in a gap that I think exists between the Arduino and RaspberryPi devices; the Arduino lacks the processing capability to power much in the way of displays. Some of that can be offloaded onto the Nextion HMI Display. Along those same lines it can be done relatively inexpensively, and the Nextion Editor makes creating that interface a bit simpler. If you are an Arduino tinkerer, I think at the very least you should have one of the 2.4” HMI Displays in your inventory of spare parts.
Here in the very short term, I can think of two projects where the Nextion HMI Displays will come in handy:
Firstly, I recently got into home brewing my own beer in the home-brewing group at TheLab.ms, a Plano-area makerspace. As a result of the home brewing I wound up building a keezer to serve our beers from. My original design was that I’d simply write on the keezer which brews are in each faucet using dry-erase markers. However, thanks to the Nextion HMI Displays, I’m now entertaining the idea of building an interactive menu that describes what’s in each tap and features some photos to set atop or mount to the keezer somewhere.
Secondly, I’m using curl on my Nexus 6 to display some of my web traffic metrics in an Android Notification. I think it’d also be pretty neat to have that data displayed and kept up to date in real time somewhere other than right on my desktop.
I’m pretty excited with what you can do with the Nextion HMI Displays, both as a standalone device with an interface that you design and load on it yourself, and as a “smart” display with an Arduino or RaspberryPi behind it adding additional features and functionality. The Nextion HMI Displays have a nice set of features and present quite a bit of value considering the price points of their various-sized displays.
What kinds of projects would you build around a Nextion HMI Displays? Please share your brainstorms in the comments below!