Skip to main content

How to upgrade uBITX Firmware

uBITX is based on Arduino Nano. So uBITX's firmware upgrade method is the same as Arduino.
There are two ways to upgrade the firmware of uBITX.

The first is to compile the source from the Arduino IDE, and the second is to upload the compiled hex file using the Firmware Upgrade Tool.

I'll show you how to upload a compiled hex file as a second method.

1.Connect the uBITX's USB cable to the computer.

2.Run Device Manager on your computer.
  The way to open the Device Manager for each OS Version differs slightly.
  In most Windows, you can easily launch the Device Manager by running.

  On your computer, press the Windows key + R.

 Type devmgmt.msc and press OK Button.

On most operating systems, there will be a serial port named Ports with CH340. If so, the next step is skipped.

If the serial port is not installed as below, you need to install the driver.

Included in uBITX is the Adonano, which uses the CH340 USB To UART part.

Download the latest CH340 driver from the Internet.
I was able to find the download page provided by the ch340 manufacturer by typing 'arduino ch340 driver download' on google.

 Click Download to download the driver.

  If you can find the driver elsewhere, you can use it. The CH340 is a popular chip so   drivers can be found easily.

  Run CH340 Driver Setup files.

If the following window appears, click Yes.

When the following window appears, click the Install button.

If the following message is displayed, the driver has been successfully installed.

Click the OK button to close the installer. Then run Device Manager again.

Congratulations. You can upload your favorite firmware to uBITX.

Let's note the name of  Comport ( In the above image case, it is COM3) (Important)

If the driver is not installed properly, you may be able to find a solution on the internet.
More information can be found by searching on the 'Arduino Nano CH340 driver' rather than the 'uBITX driver installation'.

Now your computer and uBITX are ready to communicate.

2.XLoader Download
You need a tool to upload new firmware to uBITX.
There are a lot of tools for uploading Arduino firmware, the easiest to use is xloader.
(If you have experience and have already done a firmware upgrade, just use it)

I searched 'xloader' on the internet and found the following link.

I downloaded the XLoader by clicking on the first link.

Unzip the downloaded file into a directory.
It is probably an easy-to-find directory, as it will probably be used often.

3.Firmware upload

You will have the following hex file to upload.

The link below is the uBITX original firmware which can be used for practice or firmware recovery.

I downloaded the file at and compiled it without modification.

02/07/2018 add comment

I Release the CAT Support uBITX firmware CEC Version 1.01 Release
you can download firmware

Run XLoader.exe

Select the hex file as shown below.

After selecting the firmware (hex file), select the device as shown below.
It's important.

uBITX uses the Arduino Nano based on ATmega328.
Please select 'Duemilanove / Nan (ATmega328)'.

Select the comport connect with uBITX.
This is the com port (serial port) I saw in Device Manager above.

The baud rate is 57600 (Default)

Now you're ready.
Press the Upload button.

It looks like the program is frozen to the state below. Do not worry. The program is just not friendly.

After a while you will see the 'xxx bytes uploaded' line as shown below.

If uBITX was seen, uBITX would have seen reboot.

Important Note : 
A new version has been released 0.27.
Please use the link below to download the firmware.


  1. Thanks for posting this Ian - very helpful for those of us new to firmware-configurable radios.

    1. Thanks for reading. I'm glad you helped me.
      Enjoy with uBITX.

  2. Hi Ian, thanks for this Info. Very good step by step instructions. Haven‘t found this elsewhere so far. My uBiTX is still in the mail, can‘t wait to get it. Looking forward for your bug fixes and Updates.

    73 Stefan, DL7AOS

    1. Thanks for your interesting.
      I will post a new firmware beta test version today or tomorrow.

  3. Hi Ian
    I have just ordered the radio,
    So when I have received it, I will try your firmware, it will be good fun,
    Thanks for all of your good work,
    Thanks Dave 2E0DMB

    1. David
      I am also very happy to buy uBITX. Perhaps a lot of users will come up with various firmware. Open source seems to be that good.
      would like to use the firmware that others have created. That's why uBITX should be enabled.
      Ian KD8CEC

  4. Hi Ian. I have a couple of questions. One guy I know who also does some great work and mods said " the software is complex, and has a bunch of modules" leading us to believe that mods were tough because of the different modules. But, only one module actually runs the uBITX in native mode from what I can see. The other modules make it possible for the uBITX to do different jobs, such as the one making it possible to change the frequency of the CW tone and use it for WSPR. Most of the modules are complete running systems that do different jobs, correct ?
    But, now my embarrassing revelation. I have a uBITX and it was in the form of bench testing, just laying on the bench, not in a box, no switches. I was simply grounding the tx to talk. It touched a 12v source momentarily. I presume this would blow out the Nano ? The system still works with a partial text on the lcd but doesn't change frequency, and doesn't display frequency. I've got part of the Raduino out, have it set up to plug into a pc, its on the board with the regulator , hard mounted. Was going to check to see what is still programmed in the Nano. Any guesses and ideas would be appreciated. And yes, thanks for your work, but wishing we could hear you in your YouTube videos .

    1. The module for WSPR is yours of course. I am not much of a programmer though, so I do not do much of that.

    2. In software, module is called variously. We usually think of a module as a functioning unit. In uBITX, it seems to be about four modules. (I think people think differently), I usually call my module as a third party, but it is not necessary.Other uBITX modules (main, frequency control, display) are linked together and are essential.

      Now let's talk about your radio.
      I do not know how much 12volt is touching,

      The most sensitive parts in uBITX would be atemga (siuino) and si5351.

      If it is me, I will do it in the following order.
      1.Detach raduino from uBITX and connect it to your computer.

      2.Check that the serial port appears in the Computer Device Manager - If it appears, go to step 3. else go to step4

      3.Upload the original firmware using the firmware update tool here - If you succeeded, you will know that Arduino is alive, If it's a failure, it's an Arduino problem. Arduino is $ 3, so buy it and replace it.

      4.I think it's probably a problem with Arduino. Check with the tester for the 3.3volt out pin of the Arduino for testing.

      5.If step 3 is successful and the frequency is still not displayed on the LCD, it may be an LCD problem

      Good luck


    3. Ok, had done a couple of the things , connected to my computer, and got back into Arduino programming. Put the latest Arduino program on, tried several times with errors, went with the actual app from an app store and it worked somewhat. But, wouldn't upload to another Nano. So, Went with yours . and WHAT, it worked ! Xloader. You wrote it ? It works, but Arduino program won't, but, I don't care now. Uploaded a hex into a Arduino that has the other chipset. So, now to work with the original Nano in the Raduino, which , yes, I do think is bad. And, yes, CH240 has shown in the Device Manager. But not with the Nano I have here now, another Arduino used it. Got some CH240 type Nanos on the way. The one here now is a mega 328 with a ftdi chip, not sure if it will work in a uBITX ? So, I believe the display is working, gave me some text. But not the frequency ect that the uBITX has. The regulator is 5v so I can re-connect it and test in native uBITX mode safely.

      So, now going to step 3. Sorry about the ramble, but it had been a little time since I uploaded to an Arduino and had to get re-set up. Glad your Xloader works, not sure why the Arduino program doesn't. Says can't communicate. Saved program gave me a hex file so I could test your Xloader. So, that's where I am right now, seems like progress ?

  5. Incidently, the lights on the board mounted Nano , when plugged into the laptop, flash, pwr stays on, and the L light flashes. And then it stops, and both lights are red.

  6. And yes, CH340 is there in Device Manager. Incidently, for those wondering how to get there in Win10, just go to settings, search device manager, click on it.

  7. Trying to figure out how to create a hex file other than the compile (in the Arduino ide) which must produce a temp file. Wanted a permanent version of blink that I've modified so I can tell for sure I've changed a blink file already in an Arduino of some kind. I call it Blink2000 because it just has different timing. Maybe I should just rely on compile ?

  8. Ok. LCD seems to be functional as it gave me a uBITX 2.0 on boot up. But, no frequency. So, not sure if its the Arduino or the SI chip but did program the other Nano with the other type non CH chip on it. Seemed to take it fine. Could unsolder and solder that Nano into the circuit. Also have another SI chip. Itl be one or the other.

    1. First of all, I would like to congratulate you on your progress.
      What I would like to say is first check the board type and Com port in the Arduino IDE. Atmega 328p must be selected, and the port must also have the port to which the adapter is connected.

      Here's how to create a hex file.
      - Arduino Mainmenu -> Sketech -> Export compiled binanry
      - And wait
      - There will be two files in the source directory.
      - You can use a file that does not contain the word "boot loader".

      In addition, I will talk about my thoughts.
      1. If the voltage is normally maintained, it will not affect the LCD output even if the SI5351 chip is faulty.
      2.If the firmware is written normally, the type of CH chip or FTDI does not affect the LCD display.
      So, you should not suspect the problem of LCD to SI chip or CH chip yet.
      You know, there is a variable resistor on the back of the LCD.
      Turn it around and look at the LCD to see if the voltage to adjust the contrast is good.

      Let's think again with the results going so far.
      When I think about the LCD problem, I suspect two things.
      The first is LCD and the second is Arduino.
      If a 12 volt contact is made to the arduino pin, the whole arduino will not fail and only the contact pins will fail. This is often the case with competent firmware developers. In this case, other pins may appear normal.
      Both Arduino and LCD have about 5(+-) volts of voltage that can be input to the
      If you have a spare LCD, try replacing the LCD and then replacing the Arduino. It is compatible if only AT328P is written on the top of the Arduino.
      Pin. Arduino will have a pin spacing of 2.54 pitch and will be easy to remove.

      Good luck

      DE KD8CEC

    2. And xloader is not what I created. lol
      Also, xloader does not do that good job. A program called avrdude does the job of storing the hex file in the arduino.
      Because avrdude is command-based, it is not easy for people to write, So xloader will run avrdude instead with parameter.

    3. Thanks so much for coming back to me and your comments. OK. I unsoldered the directly soldered in original Nano and it was fairly successful, used a heat rework station I'm trying to get used to fairly successfully after trying to do it old school with a solder sucker. Lost a few through holes, which I repaired various ways. Got the new Nano in, the one with the other F chip. It works but gives the same USB 2.0 message , no synthesizer. So thinking it s the si5351 ...

      So, question, if I simply uploaded the software into the BITX40 Raduino and put the encoder on , should work, but I'm looking to make sure. I really need to get a printer going , its so much easier to compare to two Raduino shematics, if they are indeed different.

    4. Congratulations. I also disconnected the nano several times from uBITX today. It was too hard.

      I do not have a bitx40 so I do not know exactly. However, uBITX will work even if you separate Ruduno.
      What kind of firmware did you replace with nano?

  9. Thanks. Will try more tomorrow. Have a Nano programed with your 2.0. So, I am ready. Not sure why Ashar did not use a socket for the Arduino. Would have made this easier, a header. But I have what I need and a lot of experience with Chip ect Removal so, I'll do it. Thanks again. Yes, progress is sweet. I'm back with it.

  10. Regarding the Firmware, not sure that I put an upgraded version on, so, sorry, do not know. but. I will probably put the .27 version you just put out on the 40 meter Raduino, after checking it to make sure I can do this. Some time today. Going to town first, a 40 mile round trip.

    1. Incidently, the original uBITX Raduino now has headers so I can plug in a different Nano which is cool. To do that, the display had to be put on an extended DuPont system. I think that's what they call the longer wires. I think its 10 pins or so. Seems to work well. but the 40 meter Raduino doesn't have the extender set up yet. It's just plugging in a bunch of wires, can be done if I should choose to. Of course, Ashar doesn't recommend extending the board with the synthesizer on it.

    2. Hey Ian. Have uploaded the original uBITX software to a BITX40 Raduino purchased just before the uBITX ) after changing the five pin plug to a 90 degree header and I think its good. I had the .27 software in it and didn't take the time to figure out how to change between USB and LSB. There is a way to do that (I'll do research if I do not hear from you) . I have also received the synthesizer chip for the original Raduino in the uBITX and we shall see if I can replace it successfully. I'd like to see it do psk .

    3. You are doing a great job.
      I wrote the firmware for uBITX. I do not know BITX40 because I do not have it. You seem to be doing something awesome.
      Trying uBITX code on BITX40 is awesome
      I do not know BITX40 but I will tell you based on uBITX.

      uBITX has a 12Mhz filter. crystal. When passing the 12Mhz filter, LSB and USB are determined. It's a way of determining the IF frequency above or below the filter.
      If you look at the source, you'll find out more. Check out the uBITX original source on github. My source now has CWL (LSB), CWU (USB) mode added.

      You want to switch to USB for digital communication? good! excellent!

    4. Super. I uploaded ubitx_CEC0.271.hex and have it working right now. For some reason the hex file at Ashhars GitHub didn't work for me. LSB was USB on 80 and 40 (up to 10 MHz) , and then switches to LSB above that ?!? . So, tried the CEC0271.hex (from you) and walla, everything is fine. Its not calibrated yet, so its off, but, its clear, and lsb is lsb , usb is usb. Cool. Lots of features. Haven't tried cat yet. But will, because I'm interested in Digital modes. VERY NICE. And, as I thought, only difference between the BITX40 Raduino and uBITX is the right angle header. BITX40 doesn't use a lot of the pins. So has a five pin similar to the white five pin plug/sockets (flat) used elsewhere. And, I've seen folks changing the BITX's for many different bands . You should get one and play, their cheap. Probably available from old stock. Can't wait for your upgrades. Thanks.

  11. Hi Ian
    Great work. I am struggling though to find the actual code files to upload to my Nextion 2.8" display. If I click on the boxes on your page I just get another picture. Where are the actual files located?

    I would prefer also to upload your file from the Nextion editor, not via an SD card. Is that possible also?


  12. Hello Ian,
    I downloaded and installed xloader from because the xloader application on came back with an error stating that "the .zip could not be found on this server"

    I am trying to install the ubitx_20._org.hex file and have a question. When you click on the Upload button on xloader you say that it takes a while to upload the file to the Raduino processor. Approximately how long is " a while". I waited 10 minutes after clicking on the Upload button. It appears that the application had locked up. I had to use task manager to shut xloaded down. Should I be more patient.

    Thank you

  13. Hello again Ian,

    I figured out the problem with using xLoader to install firmware on the Arduino Nano board. It turns out that the board itself went belly up. I bought a new Nano compatible micro control (ELEGOO) via Amazon, installed it and had no issues thereafter.

    Thank you for all the great work that you are doing on this platform.


  14. I have sent the following comments to VU3SUA and Ashkar Farhan.

    I have constructed my second ubitx to your precise instructions. I have a problem with CW operation..It does not work!

    My first ubitx didn't work either on CW.

    Do you think, installing the KD8CEC software will solve the problem?

    Since I only use CW, it is very frustrating!

    Ray F5VKX/G3SRQ

    Can anybody else help?

  15. Thankyou for the clear, concise instructions Ian. I'm Loving the upgrades.. Thank you for sharing the fruits of all your expertise and hard work!
    Jes M0JSW.

  16. I made a little mistake with the uBitx v5 radio. I joined the arduinot CEC DSP, then USB tried to upload the program. There is no radio or menu and no response to VFO. I removed the wires, I tried to program the raduino again, but the situation does not change. Help SOS. HA8RD 73!

  17. This comment has been removed by the author.

  18. Follow these steps to upgrade the firmware of uBITX:
    Prepare the following tools: A computer with Arduino software installed, a USB cable, and the updated firmware file for uBITX are required.
    Connect the uBITX to your PC as follows: Connect the uBITX transceiver to your computer using a USB connection. Ascertain that the connection is safe.
    Start the Arduino software: On your computer, launch the Arduino software. If you don't already have it, go to the official Arduino website and download and install it.
    Navigate to the uBITX firmware: Go to File -> Open in the Arduino programme and navigate to the location where you saved the revised firmware file for uBITX. Choose the firmware file and press "Open." Regards: Fast Charging Power Banks


Post a Comment

Popular posts from this blog

Introduction to UV-K5 HF Fullband receive version 0.3

Introduction to UV-K5 HF Fullband receive Version 0.3 This is an introduction to UV-K5 HF full-band reception firmware 0.3HF using SI4732-A10. This version is released separately from the existing UV-K5 CEC firmware version. because space is needed to store a large PATCH file to use SI4732-A10's SSB. 0.3HF added several functions to use SSB for shortwave radio and amateur radio.

Introduction to UV-K5 HF Fullband receive version 0.41 (Changed from 0.40)

  Introduction to UV-K5 HF Fullband receive Version 0.41 (Changed from 0.40) This is an introduction to UV-K5 HF full-band reception firmware 0.4HF using SI4732-A10. This version is released separately from the existing UV-K5 CEC firmware version. because space is needed to store a large PATCH file to use SI4732-A10's SSB. 0.4HF added several functions to use SSB for shortwave radio and amateur radio.

Introduction to UV-K5 HF 0.5 (Fullband receive version)

 Introduction to UV-K5 HF 0.5 (Fullband receive version) This is an introduction to UV-K5 HF full-band reception firmware 0.4HF using SI4732-A10. This version is released separately from the existing UV-K5 CEC firmware version. because space is needed to store a large PATCH file to use SI4732-A10's SSB. This article only describes the features newly added in Version 0.5. Please check the links below for full features. How to modify your hardware Version 0.3HF (Most feature descriptions are provided) Version 0.41HF (Description of Band plan function and Dual RX function)