uBITX now running on ARM Cortex M4

21 Feb

I bought a $10 ST Micro Nucleo-32 board and got the uBITX code running on it. This is a 70 mHz, 32 bit ARM Cortex M4 processor on a board that’s electrically and mechanically interchangeable with the original Arduino Nano board. This will provide a much larger memory space and much more computing power for the things I have planned for the uBITX. I installed the STM32 hardware support in the Arduino IDE and the code compiled and loaded almost effortlessly!  Later, I’ll move the code over to one of the cheaper ($2.50) generic STM32 boards that are available on EBay.

uBITX code running on Nucleo board

I can now move on to adding the things I have planned such as the 2.8″ TFT touch-screen graphics display and a separate, smaller color display that will be coded as an analog S meter. I purchased a nice painted aluminum cabinet and have a front panel layout and graphics that will make it look like the old Heathkit SB series equipment. All of that will unfold here as I progress.



Prototype touch screen

Nucleo-32 board


This is what it will look like with the color graphics display and the color graphics S-meter:


Front Panel with touch-screen display and S-meter

I’m planning to add a proper IF AGC circuit using the AGC amplifier described in my earlier posting. The AGC voltage will be derived by digitally sampling the received audio in the microcontroller’s 12-bit A-D converter and generating a control voltage using the microcontroller’s 12-bit D-A converter. An accurate software generated S-meter display will also be driven by the processor.


My new uBITX Is up and running

18 Feb

I got my UBITX a couple weeks ago, but haven’t had time to turn it on. For your information, the uBITX is an all-band HF SSB/CW QRP transceiver that comes tested and nearly ready to use for only $120 delivered. (http://www.hfsignals.com).

Today, I got a chance to do a preliminary hookup and it seems to receive. Over the next several weeks, I’ll do some instrument testing and report my findings on a regular basis. For now, I can report that it draws about 160 MA and the minimum discernable signal on 40M is about 1uV (-110 dBm). I would have hoped for a little better sensitivity, but this is fine for the lower HF frequencies where atmospheric and external noise predominates. Also, the 50 hZ tunlng steps are bothersome to me and the tuning acceleration feature is annoying. I’ll probably do a firmware mod to get 10 hZ tuning steps with some other way to speed up the tuning. There also appears to be a substantial low frequency rolloff on the received audio, but I don’t have measurements to back that up yet.


Later in the day update:

After some bench probing, I determined that the low end rolloff is because the BFO frequency isn’t set correctly and the lower audio frequencies are way down the crystal filter skirt. This was confirmed after a read of the BITX forum. I’ll calibrate it when I get some time.

Preliminary receiver spurious response testing with an HP8640B signal generator indicates the hard saturation point is about 3 mV (-40 dBm), so total usable dynamic range is about 70 dB. Since there is no IF AGC, this radio will overload on strong in-channel signals. This will be something I’ll want to address in a subsequent posting.

There are numerous spurious responses about 60-70 dB above MDS, including IF feedthrough, images and birdies. The latter are probably due to the well-known many spurious outputs the Si5351 generates when it’s  outputting multiple LOs, as it does in this radio.

These were all very quick and dirty measurents. Every one of these needs to be individually analyzed and dimensioned, but the preliminary results look like this is an “OK” receiver; good enough to have tons of fun, but nothing to write home about.

I hooked it up to an antenna for a quick listen on 40M. Plenty of band noise and signals heard, though the low frequency audio rolloff made listening to SSB difficult.

I see this little rig as a great bargain for what it does and a starting point for many worthwhile improvements.

This should be fun. Stay tuned…

High Performance AGC Amplifier

26 Jan

I’ve been looking for a high performance AGC amplifier. Some criteria are:

  • Wide control range with linear volts/dB.
  • Strong input signal handling capability
  • Decent noise performance

For a while, I thought the HyCAS amplifier developed Hayward et al was it. However, some LTSpice modelling followed by bench analysis indicated that the amp suffered from very non-linear gain control as well as completely collapsing with strong input signals when gain is set a minimum. This is because the circuit reduces gain by starving the input JFET stage of drain voltage. With maximum gain reduction, the FET has virtually no voltage to work with. That’s a no-no.

I developed an enhanced version of the HyCas that linearizes the gain control over a 70 dB range and suffers no loss of input dynamic range. It does this by varying the JFET  source voltage, driving the FET current towards pinchoff and decreasing the current. So far, it’s only been run as a LTSpice model, so it needs validation. Therefore, I present the circuit solely for your edification until I build it and test it. The amplifier in the schematic above is tuned for 9 mHz and has about 14 dB gain, but it can be re-tuned for most any frequency in the HF range.  The resistor across the tuned circuit is to limit the gain and prevent oscillations. The diodes on the control voltage, together with the input resistor,  linearize the control range, otherwise it gets way too sensitive at the bottom end of the control range. This is very important in AGC applications, as severe non-linearities can cause motorboating and other anomolies. The linearization of the control voltage also makes it much more useful to develop an S-meter from this voltage.

If  you decide to build it, keep in mind that it was developed for a U309 (J309 is identical), so it will perform differently for a more common J310. Also, JFETs can vary widely with respect to their pinchoff voltages, so some tweaks to the linearizer might be required.


2/1/2018 Update:

I got an LTSpice model for the J310 and confirmed it’s a different beast in this circuit. I ordered a bunch of ‘309’s and will report when I get a chance to try them in a real circuit.




QER Crystal Filter Designer

31 Jul

The QER filter is a special case of ladder filter that has a very smooth passband response and is very scalable just by adding additional center sections. All capacitor values are equal and it isn’t as termination sensitive as some other filter typologies. Note that the extra paralleled crystals on the end sections don’t count as filter poles, so a 4 pole filter has 6 crystals. I find that 6 poles are really necessary for good sideband rejection. This is a good rule of thumb and isn’t peculiar to this filter topology.

A simple way to build up a filter is to design a 2-pole unit (no shunt crystals, 1 shunt cap) first and get it working. Since all caps are equal, you can start off with arbitrary cap values, say 50-80 pf fo an SSB filter, proportionally higher for CW. For development purposes, put a 500 ohm pot in series with each of your 50 ohm test equipment outputs/inputs and initially set them to mid-way. Adjust the pots for minimum ripple, or better yet, best match in the passband, then measure the pot values. This is your desired termination impedance. It will be higher for an SSB filter and lower for a CW filter.  Lower or raise the cap values for wider or narrower bandwidth respectively, re-adjusting the termination resistor values as you go. Be aware that the filter bandwidth will shrink as you add xtal/cap sections. so start off with a bandwidth about 1.5 x what you want to end up with. This matching process using variable resistor terminations will have large filter loss during development (25-30 dB), but you’ll get it all back when you match the filter impedance to the circuit load using either a transformer or LC networks. Add xtal/cap sections one at a time until you get the filter complexity and performance you’re looking for.

Here’s a simple 4-pole, 2 kHz BW design. Note: If you build this design, use your own measured crystal parameters. When I analyzed this 9 Mhz design, I used the motional parameters from a 6 Mhz crystal I had data for.

For more theory about crystal filter design, see this page on this site: Crystal Filter Design Simplified



The LTSpice design file can be found here. After downloading, start LTSpice, then navigate to the file. There are notes in it that make it pretty self-explanatory and easy to use.

The “QSSR” Single Signal Phasing Receiver

15 Sep

I’ve always been interested in phasing-type DC receivers. The recent spate of software-defined radio (SDR) projects based on the Tayloe QSD detector got me wanting to build a phasing receiver based on a hardware implemenation, but using the QSD. I have a prototype running on my bench and it looks very, very good and is easily made to work on any HF band merely by using the correct pre-selector filter. It easily achieves well below 0.3uv sensitivity across the range and has an AGC’d front-end for gain control and antenna isolation. I’ll be unfolding this here in the next couple weeks.


Radio displayQSSR


Updated 1/24/2016



Slight Course Change on X1M AGC

29 Jun

Been pre-occupied with other priorities lately, so haven’t spent much time on any of my ham projects. This past weekend was a rain washout here, so I got a few hours to get on the bench and play around with the X1M project.

As I expressed previously, it was my intention to embed an Arduino Nano inside the X1M and use it to (among other things) implement a firmware controlled AGC process. After actually embedding a Nano and seeing how cramped the installation is, reality set in and I started considering another approach. I’m now thinking more along the lines of a ‘back-pack’ unit containing the Arduno and other enhancement circuits, connected to the main radio via the existing DB9 connector. The DB9 presently has about 1/2 dozen of its pins connected to points inside the radio that I don’t see myself ever needing. My plan is to re-purpose these pins so that the functionality I want to implement can be accomplished in a less intrusive, more flexible way outside the box. Also, I’m scaling back my ambitions (for now) and am planning on putting a hardware AGC board inside the radio, but bringing out the AGC voltage for the Arduino to measure and turn into an external software-calibrated S-meter function.

In the process of looking at the best way to do all this, I think I discovered a design flaw in the X1M having to do with gain distribution. It turns out that the SA612 product detector overloads on strong signals about 15dB before any of the previous IF stages and the following AF stages, becoming a bottleneck for strong signal handling. If the radio had AGC, this might not be so important, but in a fixed-gain radio it’s very important to have as much strong signal capability as possible leading up to the first gain-control element. In this case that’s the volume control, at least when there’s no AGC add-on. I think this problem is due to the use of the MC1350 as an IF amp which, in my estimation, has far too much gain for most IF applications. I plan to look at this some more to determine if my reasoning is correct, but I might be suggesting an IF gain reduction mod, even if AGC isn’t added.

Anyway, look forward to a change in direction as I implement the AGC and add the external Arduino.


Embedding the Arduino Nano Inside The X1M – Part 1

9 Jun

This weekend I got some time to try out my concept for embedding an Arduino Nano inside the X1M. You can find more details here.