Re: Nextion Display on uBITX #ubitx #nextion

Reed N

Hi Aaron,

Disclaimer: I don't have a Nextion screen, but have done my fair share of research on them.

First, some history. The v5 and older uBiTX models only had a 2-line text LCD, so this wonderful community decided to step it up a notch and add a nice touch screen (the Nextion), and KD8CEC's software added a bunch of additional functionality, like the memory manager. This was all possible because all of the screen rendering and graphical resources were stored on the Nextion itself, so the Arduino Nano just had to know how to send and receive serial commands. The Nextion is actually programmed separately, and has it's own coding and microprocessor to run the menus, and turn the raw touch inputs into meaningful desired action inputs. Furthermore, there are larger and smaller Nextion screens available, so if you want a different size, you can have it. If you're getting the stock v6 case, this probably isn't something important to you, since it'd would be difficult to resize the screen opening.

The uBiTX v6 added an ILI9341+XPT2046 touch screen. However, unlike the Nextion, this screen does NOT store ANY of the graphical resources, and does NOT store or render stuff automatically. This means that the Arduino Nano has to, in addition to running the radio, drive the screen output, and receive and process the raw touch inputs. The Arduino Nano was released in 2008 (source:, so at 12 years of age, it's fair to say it's long in the tooth as far as microcontrollers go, especially when trying to drive a color touch screen with 320*240*8*3=1,843,200bits of data to present. For comparison, the newest Arduino Nanos have just 262,144 bits (32,768 bytes) of flash memory, and only 30720 bytes of that is available for normal use! It's actually quite remarkable that the Arduino Nano works as well as it does in the uBiTX v6 - big kudos to Ashhar for making it work. That said, the relative lack of flash space and general processing power on the Arduino Nano means that you literally can't make the screen presentation match the speed or style of the Nextion, nor can you fit as many features, since those take up programming space too. I was able to squeeze in a bit more functionality in my branch (see full thread:, but ultimately there's just not enough space for all the features a person might want.

I'd recommend you give the stock software and then my software a go first. It costs you nothing, and if it's good enough for what you need, great! If not, then there are a couple options worth considering:
1) Buy a Nextion and install the KD8CEC software on the Arduino Nano. This solution is tried and true, and you can find several posts on here with people who have already done this conversion with their v6's
2) Buy a better microcontroller option. JACKAL is a Teensy 3.6-based upgrade path, with some additional hardware features too. TSW has their Teensy 4.0 adapter board, which leaves your system mostly stock. Both of these options include software that takes advantage of the much more powerful microcontrollers to give you additional features, and revised screen graphics. You can also spin up an ESP32 for the task like Ramón EA4GZI, although at the present you'll have to sort out the wiring yourself.


Join to automatically receive all group messages.