New Firmware for X6100

There’s a new person building onto Oleg’s R1CBU firmware. He first made a patch TGZ available, and then an entire image.

He has a repo for this work, and it includes some build instructions which reference the buildroot and submodules. I think I’m close to being able to build it, but I’m seeing some errors trying to find the xkbcommon headers.

I did patch his source with my DB changes. I built the DB: sqlite3 params.db < params.sql, mounted the DATA partition, and copied my custom params.db to it.

It’s looking nice so far. I can use flrig and have wsjtx and fldigi both talk to it simultaneously. That’s the main improvement in my mind, but it includes some other fixes:

  • volume encoder can be spun quickly now
  • smoothing of the TX/SWR graphs
  • finer detail in the waterfall

EFHW Test 2

I ran out to Susquehanna Riverlands State Park (US-9719) to test the EFHW again. This time I tied it to a bush and a picnic table and raised the center with the fishing pole mast.

I took the time to sweep all the bands with the X6100’s built-in analyzer app. 40m looked like it could stand to have the wire slightly shorter, but when I transmitted, the SWR looked fine. I saw about 1.5:1 SWR on 40, 20, and 15. 10 was a little off, so I guess I’ll add the 100pf capacitor that most people use.

The tuner made 12m and 17m work, so I made FT8 contacts on 40m, 20m, 15m, and 17m.

I was also trying out some of the combo winder/unun I 3d printed and made some notes. I’ll post my remix soon of another person’s OpenSCAD code. I like the all-in-one designs that wrap up into one package, but I wonder how much that will hinder my random experimentation with antennas.

While transmitting, I noticed the Evolve 3 laptop’s mouse would stop responding. I had seen this on other laptops using the 1/4 wave HF vertical. I added the common mode choke to the feed line near the radio, and that cleared up. There was already a choke near the antenna, but I guess it wasn’t enough. I love when I can see a clear cause and effect or problem and solution.

Revisiting Power Noise

When I first started with the X6100, I’d see some noise that buried real signals when plugged into AC power.

Running on battery was fine, and running on the external lead-acid 12V battery was OK too. For weeks, I used the battery to smooth the noise. I’d run an AC power supply in parallel with the battery and turn it up just high enough that I didn’t see noise in the waterfall. The battery smoothed the power.

I switched to a LiFePO4 battery, and I found the built-in charging circuit made it hard to balance input power and output power just right to keep it smooth.

I asked around on the X6100 mailing list and I got 2 suggestions I took:

  • a filter I can use with any cheap power supply I already have
  • a cleaner, and inexpensive, switching power supply from Ateck that puts out a fixed 12V/5A

I purchased both to try, and both helped immensely, each on their own.

I wired up the filter with some 5525 connectors and printed a case for it. I use the filter in combination with my adjustable 24V/5A power supply on the go. That higher-voltage power supply is also useful to charge the LiFePO4 battery at 14.1V. The battery also lives in my box for portable operation.

I use the Ateck power supply on my desk by itself to power the radio at home.

Adjusting Bands on R1CBU

I updated the bands on my X6100 running R1CBU to follow the US band plan/privileges:

  • Clone source:
  • Update sql/bands_ham.csv to break bands by plan and privileges for US
  • Update sql/params.sql to not import band_params.csv, but to instead build it from the bands table
  • Rebuild the db: sqlite3 params.db < params.sql
  • Copy the new params.db to the DATA partition of the SD card

Rebuilding the database loses all your settings on the radio, so you have to put those back, but I can now see where the general privileges start and end on each band.

[Read More]
r1cbu  x6100  bands 

R1CBU 0.20.1

I updated my X6100 to R1CBU 0.20.1. Oleg provided a tgz with only the updated files, so I dropped the file into /DATA partition, started up the radio, and it unpacked the update. The tgz contained the x6100_ui binary and params.db.

This can be an interesting way to make my own updates without needing to know how to rebuild the entire image. I see the changes applied to his x6100_gui github repo, so I know that’s a good base for making future changes.

Learning to do make updates is interesting, because the original maintainer, Oleg, is likely done updating this firmware in favor of building his own radio in the image of the X6100. He’s frustrated trying to get help and documentation from Xiegu. I run the R1CBU firmware full-time.

r1cbu  x6100 

R1CBU 0.20.0

A new R1CBU firmware is available for the X6100.

I wrote the image to the micro SD card:

$ sudo dd if=x6100_r1cbu_v0.20.0_sdcard.img bs=1M of=/dev/sdb status=progress

It’s working fine. Auto levels for waterfall and spectrum seems useful, but it still shows the min/max level settings that do nothing while in auto. I had to set up all preferences again, since it comes with a new database on the image.

x6100  r1cbu 

R1CBU on X6100

I’ve loaded the R1CBU UI on the X6100. Reading the manual exposes all sorts of great features and conveniences:


  • Large waterfall
  • Lots of options on MFK and VOL knobs, and it’s customizable
  • SWR scan is very fast
  • CW decoder is robust
  • ALC starts at 0.0
  • Serial console access: minicom -D /dev/ttyACM0, root, 123


  • Setting time down to the second is weird. I used serial console and CLI instead.
x6100  xiegu  r1cbu 


Here’s a good demo of what ALC is doing. It’s clipping off the top of the signal, so turn the power up to just before ALC reacts, whether it’s 0->100 like the radio in the video or 100->0 like Xiegu radios.

alc  x6100  xiegu 


Tuned to 8416khz, I received a Navtex weather report. I tuned the X6100, CW, FIL2 set to be really narrow, and I let fldigi decode the transmission as Navtex.

[Read More]
navtex  hf  x6100 


I originally had wsjt-x and js8call talking directly to X6100 to do CAT, but fldigi wants flrig, so I set it up. Now i have flrig running all the time, and have wsjt-x talk to that. Maybe it’ll be more reliable with fewer hiccups and disconnects.