5″ Nextion screen files

Mark AJ6CU has added an updated version of the KD8CEC Nextion code for the 5″ screens (Basic and Enhanced) to the files sections of GROUP IO BITX20 list. (Only the 5″ Enhanced has been tested, as he doesn’t have a 5″ basic screen to test with.¬† This work is an extension to the “heavy lifting” already done by Joe Puma (KD2NFC).

Mark couldn’t help himself and did some “improvements” to the user interface that you may or may not like. He has included the HMI file in the directory as well, so you can adapt it how you would like it to look if you know how to edit HMI files.

If you have a 7″ or 9″ screens, you should be able t load up the HMI, set the device to match your screen and regenerate the TFT file. If you have one of these larger screens and can’t figure it out, it is suggested you contact Mark.

Files: AJ6CU Nextion 5-inch files/5inch June 10

A summary of major changes that were made to Joe’s original effort”

  1. Home page
    • Correction of scale for histogram (have more space, so let’s use it!)
    • Addition of direct access to memory STO/LOC screens (had to eliminate the Radio tower logo, sorry)
  2. Various
    • In case you had not noticed, the button to get “Home” was in various locations, although not done, I am in the process of moving it to a consistent place (upper right)
    • Scaling changes to Bandscan and Spectrum
    • Various pages required you to hit “read” or “refresh” to go get the data. I made this happen on page entry. Kept the refresh button as this seems to be a little flakey.
    • Tried to introduce a consistent color scheme. Blue background, white letters where you can change, yellow for titles.
    • All screens (except home screen) will eventually have the name of screen in upper right in red.
    • Button pushes go green when pushed and return to grey when released
    • Added a few more scrollbar slider sizes so that the slider fit the slide bar better.
  3. Frequency entry (touch the middle 3 numbers on home page) is now a little more obvious. When you are in direct frequency entry, you only see numbers, When you are in Band select, you only see the bands.
  4. Memory to VFO redesigned. Seemed easier to use for me.
  5. VFO to Memory – Mark still doesn’t like this one. He would like to make it more like Memory to VFO where you can see all 10 memory slots and then select the one you want to overwrite. For now, he has just replaced the keyboard with a standard one that pops up when you click in the name and some fancy arrows to spin the mem#.
  6. Although it is against his better judgement, he did make available KD8CEC’s debug screen. Tried to warn you off, but i am sure someone will do something awful to his/her poor ubitx using this screen. ūüėČ
  7. CW setup screen redesign (and it automatically fetches data on startup)

There are some issues remaining … The biggest issue being that when you go into a submenu (e.g. CW setup/MemtoVFO, etc.) the Spectrum Histogram in lower left corner doesn’t always automatically restart.

If you change any control VFO/Freq, mode, etc.) it restarts.

This is going to be a pain to debug because of the extensive use of timers and state machine in the Nextion code…. Would welcome anybody that can make a suggestion here.

I have also not tested it on a Basic 5″. There may be performance issues, especially since the scale of the graphs has increased.

Mark says there is still lots of work, as he also wants to get rid of some of thebackground pictures in the control screens that really don’t match the others. The bandscan is something he would really like to “adjust” because it is really not obvious how it works. And perhaps even a “?” in upper right of some screens for a little help?¬† He plans to¬† put together another update shortly.


CEC Firmware Release v1.200 for all versions of uBITX

Ian KD8CEC has released his latest firmware.¬† This requires a minor configuration flag to be set to your ¬ĶBITx version (3, 4 or 5) in the sketch before compiling and uploading the code to your ¬ĶBITx.

Earlier ¬ĶBITx versions do not require upgrading as no new features have been added to the firmware other than compatibility with the new v5 board.

CEC beta release for v5 board


Ian KD8CEC has announced a beta version of his firmware (Version 1.12) for the uBITX V5 board.  He has written an article about it here.

All existing firmware functions for V3 and V4 are available on the V5 beta.

The same version of uBITX Manager will work with the v5 Board.

Only the LPF control and the frequency control part are changed in the V5 code.  Ian has released firmware V1.121 for V5.


Release of CEC firmware v1.1 (non-Beta)

Ian KD8CEC has released version 1.1 of his CEC firmware.  This the first major release since Beta version 1.097.    He has also released new versions of uBITx Manager (for Windows) and Nextion screen firmware.

Version 1.1 includes all additions or improvements from the last non-Beta release version 1.08.   This includes features and bug fixes addressed in Beta versions 1.09, 1.093, 1.095,  and 1.097.   No further changes have been made to the Version 1.097 Beta version.

You do not need to upgrade if you are using Version 1.097. This is the version with only the version number changed.

Major Changes since the last official release

  • ¬†The firmware supports additional features for the Nextion¬† and TJC LCDs
  • ¬†Read & Backup uBITX, ADC Monitoring, ATT, IF-Shift and more on Nextion LCD (TJC LCD)
  • ¬†Factory Reset (Both Character LCD and Nextion LCD are applicable)
  • Signal Meter using ADC (A7 Port)
  • I2C Signal Meter
  • Spectrum display
  • Band Scan
  • Memory Control on Nextion LCD (TJC LCD)
  • Speed Change CW-Option on Nextion LCD
  • Fixed Band Change Bug (Both Character LCD and Nextion LCD are applicable)
  • ¬†uBITX Manager removed the Encode and Decode buttons. The procedure has become a bit easier.
  • I2C Device Scan on uBITX Manager ( Both Character LCD and Nextion LCD are applicable)
  • Si5351 I2C Address can be changed
  • Recovery using QR-Code Data from Server
  • Nextion LCD and TJC LCD can display Spectrum and CW Decode (using Stand alone S-Meter)
  • Fixes for other Minor Bugs

Please refer to the link below for details.

Please download the related files from the link below.

Nextion LCD or TJC LCD’s GUI have not changes since the 1.097 (Beta) distribution. If you are using a different GUI that is customized by other helpful developers, you should not need to upgrade the firmware.¬† Some screen sizes are still not supported in ver 1.097 (and therefore in version 1.1).

For further details see Ian’s blog at www.hamskey.com

Why has KD8CEC’s firmware been so successful?

There are several alternative firmware versions available for use with the ¬ĶBITx transceiver.¬† ¬†So why has the KD8CEC firmware been so successful with uBITx owners?

Some key reasons put forward by uBITx.net:

  1. KD8CEC firmware is fully compatible with the standard issue kit.  No hardware changes are required to make it work.  This is a critical point of difference with all of the other variants, and probably the most important factor associated with the success of CEC firmware.
  2. No custom wiring changes are required when using the firmware.  This is a further significant factor in widespread adoption.
  3. The firmware fixes problems that come with the factory firmware – although some argue that CW modes are still not fully addressed in the CEC firmware.
  4. Using CEC firmware means no loss of features from the default factory firmware.   Other alternatives offer fewer or different features from the factory firmware.
  5. Users are familiar with the¬† user interface, as it reflects the default firmware’s “look and feel” with the standard display supplied with the kit.
  6. It is easy to upload a hex file to the Raduino. Constructors without a working knowledge of the Arduino IDE can upload files easily.
  7. All full releases of CEC Firmware are available as open source firmware.  This follows the same structure as the original code, although most of the code has been replaced.  Open source is not released for beta versions (and for good reason).
  8. No additional processor is required, unlike other firmware variants.¬† A mechanism for adding additional processors has been added in ver 1.097 (Beta).¬† ¬†This promises a future where multiple processor support will be available.¬† You won’t be locked into a single processor type.
  9. Addition of a Nextion display or additional processor is relatively straightforward.
  10. The firmware on the Nextion display can be edited by others to provide a different “look and feel” or to add or subtract features.¬† ¬†This is independent of the firmware for the transceiver.

Using uBITx Memory Manager with the HF Signals v4.3 Firmware

Remi F1MQJ has modified the manufacturer’s v4.3 original firmware (published on may 23 2018) to include communication with KD8CEC memory manager.¬†¬†

This could be very useful for those wanting to stick with the HF Signals latest firmware, while making it easier to view or update initialisation settings, such as calibration of frequency or setting the BFO injection point, in the original firmware.

Modifications are the same as those described by Ian KD8CEC  here but are adapted to the HF Signals V4.3 original firmware.

The file removes all text after .ino in your firmware directory replacing the original ubitx_cat.ino file.   

You can access this file at the following URL:

KD8CEC v1.097 Beta will be released shortly

Ian KD8CEC has been busy again in conjuring up new features in his CEC firmware.   He is tempting us with descriptions of two new features:

  • Nextion display update that makes it easy to adjust keying speed and to select the keyer type (Iambic A, Iambic B or Straight Key) even while in TX
  • Adding an additional arduino, connected to the Raduino via i2c, to provide an S-meter function.

The first feature is well explained by the photo above. The second feature is a bit more difficult to describe.¬† ¬†By adding a US$3 additional arduino the ¬ĶBITx now has double the number of analogue and digital ports and another 32K of program space.¬† ¬†This could be a fun ride!¬† The first function is a basic one, but an important one.¬† ¬†A much more sensitive S-meter.¬† ¬†But wait there’s more, as yet to be fully described.¬† If you already have a Nextion screen, it looks like you may be in line for a half decent signal analyser function.

Connecting up the arduino

The circuit is pretty straight forward, and involves just a couple of resistors and a capacitor, along with wiring to +5v and ground, and the two i2c lines.

Freeing up a pin on the arduino

Previously Don ND6T used pins D0 and D1 as a means of accessing two additional digital pins on the Raduino for other purposes. These are used in USB and serial communications and are mostly available for use (except when programming the arduino or using CAT).

Another interesting approach is to use another arduino nano as an i2c slave while at the same time functioning as a backpack to your 1602 display.

 Allison KB1GMX has come up with another way of reclaiming pins. 

Looking at the relay tree it is notable there are only 4 used states and one that is “don’t care”.¬† That “don’t care” state allowed me to remove C155, R151, and Q17. That is replaced with two diodes¬†to the collector of both Q18 and Q19 (cathode to the collectors) and anodes to the formerQ17 collector.

What that does is any time Q18 or Q19 is active KT1 is activated.  If that seems odd the relays are a partial decoding tree so if we encode the controls correctly we get the needed result and one free IO pin. To make it work Relay KT1 must be activated when we leave the 20-30mhz region for 20/17M or lower. Since to go lower than 20mhz we must have a signal the TXC is used as that controls the 40/80M relay KT3 but means nothing unless KT2 is activated Using two diodes as a logical OR we can then use Q18 and Q19 to force KT1 to be active. So for 20M and down KT1 is active and the other three select what bands below that. I got the IO pin and the firmware got simpler.

The code changes from:
* Select the properly tx harmonic filters
* The four harmonic filters use only three relays
* the four LPFs cover 30-21 Mhz, 18 – 14 Mhz, 7-10 MHz and 3.5 to 5 Mhz
* Briefly, it works like this,
* – When KT1 is OFF, the ‘off’ position routes the PA output through the 30 MHz LPF
* – When KT1 is ON, it routes the PA output to KT2. Which is why you will see that
* the KT1 is on for the three other cases.
* – When the KT1 is ON and KT2 is off, the off position of KT2 routes the PA output
* to 18 MHz LPF (That also works for 14 Mhz)
* – When KT1 is On, KT2 is On, it routes the PA output to KT3
* – KT3, when switched on selects the 7-10 Mhz filter
* – KT3 when switched off selects the 3.5-5 Mhz filter
* See the circuit to understand this
void setTXFilters(unsigned long freq){
if (freq >= 21000000L){
digitalWrite(TX_LPF_A, 0);
digitalWrite(TX_LPF_B, 0);
digitalWrite(TX_LPF_C, 0);
else if (freq >= 14000000L){
digitalWrite(TX_LPF_A, 1);
digitalWrite(TX_LPF_B, 0);
digitalWrite(TX_LPF_C, 0);
else if (freq >= 7000000L){
digitalWrite(TX_LPF_A, 1);
digitalWrite(TX_LPF_B, 1);
digitalWrite(TX_LPF_C, 0);
else {
digitalWrite(TX_LPF_A, 1);
digitalWrite(TX_LPF_B, 1);
digitalWrite(TX_LPF_C, 1);

To this.

* this version version uses two diodes to get rid of needing TX-A
* and takes advantage of TX_LPF_C having an meaningless state
* unless KT2 is active (TX_LPF_B=1).
* tx-b tx-c band
* 0 0 10m
* 0 1 20M we enable TX-A, and get 20m, KT2 is not active.
* 1 0 40m make KT2 active and KT3 selects 40 or 80m.
* 1 1 80m
void setTXFilters(unsigned long freq){

if (freq >= 20000000L){
digitalWrite(TX_LPF_B, 0); // 10m
digitalWrite(TX_LPF_C, 0);
else if (freq >= 14000000L){
digitalWrite(TX_LPF_B, 0); // 20M
digitalWrite(TX_LPF_C, 1);
else if (freq >= 7000000L){
digitalWrite(TX_LPF_B, 1); // 40m
digitalWrite(TX_LPF_C, 0);
else {
digitalWrite(TX_LPF_B, 1); // 80m
digitalWrite(TX_LPF_C, 1);