Mar 24

Dual Band BITX40 Project Update

I’ve written about putting together a dual band BITX40 in the past and the methods I used had varying success. The idea was to augment the built in filters with switched in/out add-on filters from QRP-Labs. This is a sound idea, but the layout of Low Pass Filter on the BITX40 really didn’t allow it to work. The result was high losses and poor output.

The next step in evolution was the multi-band BITX40 which replaced both the Low Pass Filter and Band Pass Filter with socketed filters. This allowed me to change out the filters at will so that I could work any band I had the filters for. This worked well, but switching bands was laborious (compared to a Big Boy Radio) and error prone.

My ultimate goal over time has been to make a dual band BITX40 that automatically switched out filters based on the frequency on the VFO, and I’ve also wanted to make my own VFO that I could customize the firmware for. Last but not least, I designed a case for my BITX40 last year, and with the help of WolfLand Computers and Hobby, and their awesome 3D printed case designs, this became a reality. BEHOLD! The W7RLF case:

What’s awesome about this case is that there’s a version for the BITX40 and also the uBITX. It’s designed so that you can see the display easily whether it’s sitting on a desk or on your lap on top of a mountain. It was inspired by the 30-in-1 electronics kits that Radio Shack sold when I was a kid. Did you know you can get similar ones now? You can, and they’re perfect for the kids and grand kids to get started. Check it out here.

So now I’ve got this really cool case to build the radio into. I want to build my BITX40 so that I can put it in this case and not have to open it up any time soon. So, a rebirth of my BITX40 has begun!

Custom VFO/BFO

The number one thing I wanted to do was build my own VFO/BFO and replace the QRP Labs VFO. The QRP Labs VFO is amazing, and I absolutely love it, but I like building my own things as much as I can, and building my own VFO and get it running on custom firmware has been my goal.

Part of that is that I want to replace the crystal driven BFO in the BITX40 with a synthetic oscillator, just like we’ve already done with the VFO, such as the Raduino that Farhan sells with the kit or the QRP Labs VFO. The reason for this is fairly simple: To get Upper Sideband with the BITX40, using the stock BFO, you have to change the VFO from a negative offset (12mhz BFO – VFO frequency, ie 12mhz -5mhz = 7mhz Lower Side Band) to a postiive offset (VFO – BFO, ie 19mhz – 12mhz = 7mhz Upper Side Band).

This is a pain in the neck in my opinion. To remedy this, custom firmware is needed that lets you leave the offset in a positive state, and vary the BFO frequency so that it generates either a LSB or USB signal. The mechanics are crazy hard to understand, but think of it this way: Depending on what you feed the crystal filter, you get either the top half of the bottom half of a sine wave. That goes into a mixer that mixes the half wave from the BFO with a full wave from the VFO. The similar waves cancel each other out, and you’re left with a single side band.

How I got there

The hard way, that’s how. I grabbed a QRP Labs si5351 oscillator board, a QRP Labs Arduino Shield, and an Arduino Uno R3 board, and I proceeded finding out a way to build a VFO. As a side note, I highly recommend the  Elegoo EL-KIT-004 UNO Project Basic Starter Kit! I’d never used an Arduino, and this kit got me started and was super easy to use. It comes with great instructions. If I can do it, you can do it!

Of course I’m me, and so I’m always complicating things. I wanted a rotary encoder tuner, and I want edan I2C display, not the standard parallel display that takes tons of pins on the Arduino.

I went hunting for an Arduino sketch that was close enough that I could modify it without trouble. This was hard. Allard has some great sketches, but none fit my needs. But then I looked at the uBITX sketch. Rotary Encoder: Check. Band switching: Check. It even has its own si5351 library and compiles easily.

So, step one: Switch it to an I2C display. That turns out to be really easy and I almost felt like I had cheated somehow. It’s just a couple lines of code. Now you’re communicated to the display with I2C and it’s 2 pins.

The Rotary Encoder was already configured, but it was configured for the Arduino Nano which has more Analog ports. Boo. I ended up migrating the encoder button to a digital port, and left the encoders on Analog. Problem solved! And just for the record it took me HOURS to figure that out. H O U R S. This stuff can be difficult! But it’s also crazy amounts of satisfying enjoyment, so we’re still at it. Are you with me still? Great.

Definitely not a uBITX

While I did use the sketch for a uBITX, this is NOT a uBITX and the frequencies and even the math being done to tune the radio is all wrong. This was more agonizing hours of staring at the screen wondering where I went wrong and how to fix it. Eventually I cried “Uncle!” and posted on the BITX20 mailing list asking for help. I got some fantastic explanations that caused me to re-evaluate how I was doing things, and got me on the right track very quickly.

What I ended up with was continually running at a positive offset, so that even at 3.5mhz, the VFO is at 15.5mhz (15.5mhz – 12mhz = 3.5mhz) and then changing the BFO frequency to select either LSB or USB. I’m happy to report that this works very nicely. So, what’s next?

Automatic Band Switching Dual Band BITX40

The uBITX sketch is great because it has two VFO’s, VFO A and B. This allows quickly switching between two frequencies and is essential for building a dual band BITX40. I’ve hijacked this functionality and caused it to turn on a relay when VFO B is selected. I’ve built a board that has one relay and two filter sockets. and connects to the BITX40 board with short lengths of RG-174.

Of note with these boards is that the RG-174 is only grounded to the BITX40 on one side. This is to avoid ground loops. The relay is also grounded there for the same reason. In this way, only one wire needs to go to the VFO controller for each relay. A ground bus is run around the perimeter of the board, and the inside set of pins are switched using the relay. It works quite nicely and there’s no noticeable loss. A driver/isolation circuit (an emitter follower from the Arduino) is needed though, and will be added next. This way only one Arduino pin will be needed, and it effectively isolates the Arduino. Without it, the Arduino resets on transmit. Oops! I’ll follow up when that’s done and tested.

The Case

The last bit is going to have to be installing it in its case. The idea is that the filters will be easily accessible so that they can be switched out. I’m thinking something like 20m and 30m during the day, but 40m and 80m at night. Here’s what I’ve come up with while doing some test fittings:


The top panel that covers the filters will be hinged for easy access and probably use a magnet to keep it shut.

For now the radio works, but is by no means finished. More testing with the filter switching is needed, and some fine tuning of the sketch will be required too. But, I’ve made numerous FT8 contacts on 40m, 30m, and 20m. In one afternoon I worked Japan 3 times, all on 5 watts! The radio has real potential, and being multi-band really helps a lot. I guess you could say it’s a multi dual band BITX40, since it should work fine from 160m all the way to 15m, and can use any two bands at a time.

I’ll update when more has been done and I can show off a finished (or at least mostly finished radio. 73!