BaoFeng UV-5R Programming on Linux



About a year ago I purchased a Baofeng UV-5R as my first dual-band handheld radio.  Being a newbie to the ham radio hobby, I didn’t want to invest several hundred (or even thousands) of dollars just starting out.  I basically wanted something inexpensive that would allow access to the local repeaters I have in my area.  A fellow ham friend of mine (my Elmer – if you don’t understand the term “Elmer” just click here) pointed me towards the UV-5R as the radio I should possibly start out with.  I was attracted to the price immediately.  It was under $60 shipped to my door.  As of the date of this posting, the current price on Amazon is $29.40 plus shipping.  You cannot beat that!


Overall Impression:

After using this little rig for a year I have to admit I really like it.  Now I must say that once I purchased and installed a mobile rig in my vehicle the 5R got little use, and was kept in my backpack that I carry to work every day.  During this time it wasn’t even powered on.  It was fully charged when I put it in the backpack, and I recently pulled it back out to spend some time trying to program it.

Powering it on for the first time in about 8 months I was amazed to see a full 100% charge on the battery.  I wanted to see how long the battery would last, so I left it powered on continuously for over 24 hours while scanning the thirty-some repeaters and other frequencies I have programmed, and the battery meter only went down about 30%.  Due to a snow storm that was approaching my area I decided to stop the test and place it back on the charger in the event I needed it, but I’m fairly confident that it would last another 24-36 hours.  During the battery test I did transmit a few times, but it wasn’t anywhere near constant usage.  So the battery test results should be viewed as scanning\standby life.

Out of the box you are able to program it from the on board keypad.  That being said, it’s not a fun process if you have more than five repeaters to put in.  Being a computer nerd by day, and primarily using Linux operating systems at home, the programming software that is\was available at the time did not support Linux.  I carry an Asus netbook pretty much everywhere I go, so the logical thing to do was figure out how I can program this radio using my netbook.

The Linux distribution of choice for my netbook is CrunchBang.  It’s debian based and uses Openbox for the window manager.  My netbook seems to run extremely well with this distribution.  It’s very responsive and makes good use of the arm processor and 2gb of ram.

If you’re a ham operator, run Linux on your desktop\laptop, own a UV-5R and want to program it, you owe it to yourself to check out CHIRP.

CHIRP is a free, open-source tool for programming amateur radios.  It’s updated quite often and currently supports 11 different radio manufacturers, the UV-5R being one of them.  However, there are some things to note before installing.

First, there is a page setup specifically for running CHIRP on Linux.  Check that out first.  I followed the instructions and used the repository to install it, but I found that whatever version is currently in the repo doesn’t support the UV-5R.  So in order to get CHIRP to communicate with your radio, you need to download and install from source.  This link will take you to the source code for the daily builds.  Just download the tar file, extract (tar xzf chirp-0.1.X.tar.gz), cd to the directory it creates, and run it by executing the ./chirpw file.

Once you’ve tested and see that it works, you can install it permanently by doing sudo python install from the CHIRP directory.  If you’re using CrunchBang you can open a terminal and run ./chirpw to start it, or right-click the desktop, select run program, and type in chirpw.  Below are a few screenshots of launching the application and what settings you’ll need to connect to the radio.  Once communication to the radio is established, the application is fairly straight forward to use.  The first thing I did was to go under the Radio menu and select “Download from Radio“.  This pulled in the few frequencies I had already manually programmed in.  Then, once you add all the frequencies you want, just click the Radio menu again, and “Upload to Radio“.  This will write the changes to the memory on the radio.  After this I make sure to do a File > Save As and give the file a name with a date.  That way in the future when I buy a second UV-5R I can quickly program it and have the same frequencies as the first one.


When you install from source, you’ll see the following warning message when you first run the program.  You can ignore and continue.



Once the radio is connected via the usb programming cable, you want to select Radio from the menu bar and choose “Download from radio“.  The following menu will open and you need to make some selections.  Below is my current configuration options that work for me.  If you do not see UV-5R listed, from my experiences, it won’t work.  Try to download the latest build and install from source.




Once you click “OK” from the above menu, you will see another message with instructions for connecting the radio;



Select “OK” and you should be on your way.  A spreadsheet type form should open, and if you’ve already programmed in some frequencies you’ll see them listed.  You can go to the bottom of the frequency list and start adding additional frequencies.

One accessory I’ve purchased for my UV-5R is a speaker mic.  This is very useful when working events or out on a hike.  Another accessory I highly recommend is a SMA female to UHF female adaptor.  This will allow you to remove the rubber duck antenna that comes with the radio and attach a more powerful dual-band mag mount antenna for extended range.

I hope this post helps some of you that maybe struggling to program your UV-5R from a Linux platform.  From my internet searching there wasn’t much assistance in the way of getting the radio talking to Linux.  Again, my platform is debian based, so these instructions should work with any debian distribution.  I have not tested on any other distros.  Please feel free to post comments below if you’re having issues and I’ll do my best to respond.

12 Responses to “BaoFeng UV-5R Programming on Linux”

  1. Willie says:

    Thanks for the info. I just got two Baofengs off Amazon the 888 model and the UV5R. I wanted them for a SHTF scenario so I’m planning on using the first 8 or so channels for FRS frequencies then some local ham channels just to listen to and do some APRS with my Android once I get a tech license.

  2. dj says:

    Thanks for the help. I had chirp running on win10, but I live in linux again.

    Windows would automatically discover the correct port and radio IF the drivers were installed correctly.

    Linux Mint made me select:

    It failed until I ran:
    sudo usermod -aG dialout username

    Now runs great!

  3. Hnat says:

    Thanks a lot, it worked! I’m on ArchLinux. Had to install from source, because the version in AUR was deprecated and could not connect to the radio.

    Do you happen to know, if the data cable can be used to activate PTT, transmit and receive audio from a computer? And if yes, then how? I’m guessing this has to be pretty easy from the technical standpoint.

    • Horizon_Brave says:

      I’m wondering the same thing! I know the Baofeng’s have VOX, is that the same thing?

      • Hnat says:

        Probably not. VOX means Voice Operated eXchange. When activated, it automatically activates transmission when you speak (or by any other sound).

  4. Spanky says:

    ..or you can just install it from Debian backports, if you’re running the stable Debian tier.

    sudo apt-get -t jessie-backports install chirp

  5. Mark says:

    Hey, Josh, thanks for posting this. I am curious to find out if the programming cable you bought worked right out of the box or did you have to enter a few commands to have Ubuntu recognize the cable? I am looking at purchasing a programming cable for the uv-5r and wondered if you had any issues with the one you bought. The one you bought is still available online.


    • newlife007 says:

      I will ask Josh about the cable.

    • Josh says:


      I don’t remember doing anything special for the cable to work. Almost certain it worked OoTB. Granted it has been about 2 years since I’ve messed with it. I’ve since purchased some new HT’s and actually just leave the UV-5R in the bug out bag. If you have issues let me know and I’ll dig it out and see if I can assist.

  6. gutzie.j says:

    Hello, so I downloaded chirp, verified that my linux machine has recognized the usb cable but as soon as I press OK to begin cloning procedure, nothing happens. no error message just nothinhg begins to download. Did you ever have or know of anyone that has ran into this issue?

  7. Guyster says:

    I am running Ubuntu 22.04, with Chirp from the repository. I can’t seem to get chirp to recognize /dev/ttyUSB0. Is there something I’m doing wrong?

  8. Guy Schlosser says:

    I forgot to add, that I used DMeSG | Greg FTDI, I see where the cable is detected, but then it seems to be disconnected soon after. Very confused. Thanks in advance for your help.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.