Challenges with AGC circuits

Finding an AGC mod that works, and works well (with sufficient AGC range, that does not impact on the dynamic range of the receiver, and that does not distort) is proving to be difficult.  Nobody has probably tried out more AGC mods than John VK2ETA.

See his thread here for his experiences with a range of AGC mods.

MAX 9814 Circuit

John VK2ETA has now settled on using the MAX9814 circuit for his AGC.

He used the Adafruit MAX9814 board but there are a few variations on eBay with some probably requiring less hacking than the Adafruit design. John had to solder a wire on an SMD component to access the CT (time constant capacitor) pin of the MAX IC, and remove the Electret capsule.

Refer to the schematic and a few pictures of the AGC circuit. The 5VDC required for the Adafruit board is taken from the Raduino.

John took two sets of measures, one with the AGC turned down low and one with the AGC turned one third of the way up.

He used an A/B comparison with an FT-817, with the pre-amp off, receiving  a carrier at 1,500Hz from local radio stations (with attenuation). The FT-817 S-Meter seem non-constant in the steps between the S-units, but nevertheless, this was John’s reference for calibrating the AGC. The AGC voltage was taken on the CT pin of the MAX9814.

The AGC voltage fluctuates quite a lot, so he used the average value shown over time.

To determine whether any saturation was coming from the AGC circuit or the uBitx upstream at high signal strengths, he would bypass the AGC and keep the volume down to prevent the audio circuit after the volume pot from saturating. If harmonics of the audio disappeared, the AGC alone was producing distortion, otherwise it appeared at least prior to the AGC, and possibly from the AGC circuit as well.


“Medium” AGC: input pot turned to about 30% of full scale.

FT817         AGC
S-Meter     voltage(mV)       Notes
S0                  0
S1               300
S2               350
S3               400
S4               460
S5               510
S6               650
S7               750
S8             1,700          Large variation. FT-817 S-meter S8 plateau issue?
S9            2,200          Some saturation of AGC noted (starts to appear in audio FFT, not noticeable)
S9+10     2,460           Saturation of AGC audible, but not unpleasant.
S9+20     2,460          Audible saturation of both uBitx and AGC (harsh sound).

The AGC kicks in early and keeps the volume pretty constant until saturation occurs. Saturation of AGC does limits the dynamic range of receiver.

“Low” AGC: input pot turned to about 7-10% of full scale.

FT817          AGC
S-Meter      voltage (mV)       Notes
S0 -S4               0
S5                50-200                  (100mv avg)
S6                  200
S7                  360
S8                  500
S9                1,260
S9+10         1,800
S9+20         2,300                 Saturation of both uBitx and AGC  (visible in audio FFT, but not really audible)
S9+30         2,400                 Audible saturation of uBitx and mostly of AGC.

This is the most “FT-817 AGC” like, from my perspective, and is what I have settled for.  I want to use the AGC voltage as an s-meter input and this setting does produce a gap at the bottom end, but this is not critical IMO.

In both cases I noted some small “clicks” when the AGC kicked in on strong sudden signals.

The maximum gain of the MAX9814 as set in the schematic attached is of 50dB and requires screened cables in the audio circuit. I originally had the input and output of the circuit fed to a two core “stereo” screened cable and I would get feedback. I had to use two single screened audio cables.


KD8CEC documentation

Ian Lee, KD8CEC has added further documentation on his website about his alternative firmware for the µBITx transceiver:

General features

Memory Channels

Reducing CW Key errors

You will also find additional resources on the website covering his AutoKey (built in software memory keyer), his uBITX Manager software and more.

Using the Adafruit si5351 Board

Many constructors are using the Adafruit si5351a i2c board with their µBITx as part of a Raduino replacement (often in conjunction with a processor upgrade and feeding the display with an i2c daughter board).

Note that the Adafruit board does not have 0.1uF capacitors on the outputs of the three clocks.   You will need to find a way to incorporate these capacitors in your circuit.

K9HZ Full Rig Power Control Unit

Bill Schmidt, K9HZ has  designed a fool-proof control circuit for the uBITx for power control.  This circuit prevents bad things from happening by shutting down the radio before any damage is done. 

It faults on:

  1. reverse voltage
  2. over power
  3. High SWR
  4. High PA Current 
  5. High voltage. 

It provides a visual indication of WHAT fault occurred, and the individual fault LEDs begin to flicker BEFORE the trip so you can fix the problem before you hit a hard trip. 

The fault conditions listed above can be expanded to any number by adding more SCR Trip components (they are set to trip at 1.8V whatever the fault is).

 When initially turned on, the transistorised RS Flipflop circuit comes up in the “Operate” mode.  If a trip occurs, it flips into “FAULT” and shuts down the PA. 

The circuit is reset with the “RESET” button, but ONLY if the fault has been resolved.  Turning the power off and on resets the circuit too.

Bill bread-boarded the circuit last week and has been using it on his radio for a while and found that it works flawlessly (yes transmitting and yanking the coax off the back of the radio shuts down the PA nicely!).  The circuit and a build list can be found in the BITX20 list’s files section.

Parts List for the uBITx Power Control Circuit

Capacitors Value Voltage
C1 10uf 16VDC
C2 0.01uf 50V
C3 0.01uf 50V
C4 0.1uf 50V
C5 0.1uf 50V
C6 0.01uf 50V
C7 0.01uf 50V
C8 0.01uf 50V
C9,C10, C11 0.01uf 50V
D1 Green LED
D2 1N4148/ 1N4001
D3 1N4148/ 1N4001
D4 Red LED
D5 1N4148/ 1N4001
D6 12V 0.5W zener 1N759, or 1N5242, or 1N6002
D10 BT149G SCR
D11 1N4148/ 1N4001
D12 1N4148/ 1N4002
D13 1N4148/ 1N4003
D14 1N4148/ 1N4004
D15 Red LED
D16 Red LED
D17 Red LED
D18 Red LED
D19 SB530
Q1 2N3904
Q2 2N3904
Q3 2N3904
Q4 2N3904
Q5 2N2222
Resistors Value Watts
R1 1K 0.125
R2 1K 0.125
R3 10K 0.125
R4 10K 0.125
R5 10K 0.125
R6 10K 0.125
R7 10K 0.125
R8 100K 0.125
R9 2.2K 0.125
R10 47K 0.125
R11 1K 0.125
R12 2.2K 0.125
R13 1K 0.125
R14 1K 10-turn POT
R15 10K 10-turn POT
R16 88K 0.125 Can just use a 100K POT set appropriately
R17 12K 0.125 Can just use a 100K POT set appropriately
R18 10K 0.125
R19 100K 0.125
R20 1K 0.125
R21 1K 0.125
R22 1K 0.125
R23 1K 0.125
R24 10K 0.125
R25 10K 0.125
R26 10K 0.125
R27 10K 0.125
R28 62 OHM 2
R29 1K 0.125
R30 1K 10-turn POT 0.125
R31 10K 0.125
R32 100K 0.125
SPST Momentary contact
Integrated Circuits
U1 LM339 (Make sure to connect Vdd and ground!!!!).
U2 BTS660P
Fuses Value Voltage
F1 1A Poly Fuse 50V
F2 4A Poly Fuse 50V
Your choice

Variable Power Control

Dave N4LKN has developed a potentiometer controlled version of his original zener power control.   He added high limit and lo limit resistors as illustrated in the circuit diagram below:

He says, “I will be adding a simple accurate circuit add on to this to report voltage and current supplied to the output stage using 2 analog inputs to my system health display.”


Debouncing a Rotary Encoder

N5IB reports, “ALPS, a maker of rotary encoders, recommends 10K pullup to Vcc, then 10K in series with 0.01 uF to ground. The internal pullup in the ATMega is loosely specified – somewhere in the tens of K, max 50K.

Jim Sheldon W0EB responded with, “This settled the really cheap and modified (to take the detents out) encoder on the test set right down. Tuning is extremely smooth and I don’t notice ANY digits showing up and then backing up again as it did before.

“I can highly recommend adding a 10K external pullup to both the encoder A and B inputs as well as an additional 10K in series with .1uF capacitor to ground on both the A and B inputs to the Raduino card.

“It was a nice surprise addition and I won’t leave them out again.”

Hans G0UPL responds, “Debouncing and pullups are also possible in the firmware. This is the method I use in the QRP Labs kits like QCX – look at the schematic: no pull-ups, no RC-debounce. Saves 6 components (4 resistors, 2 capacitors). It’s not important in a one-off build or modification but in a kit where you are trying to optimise cost, every resistor helps! The firmware method also gives you more control over how you do your debounce. I prefer the state-machine approach to rotary encoder handling, it implicitly debounces without involving any time constants.”


Guide to Arduino Coding

The best book around for learning how to program your Raduino was written by one of the BITX20 regular contributors Jack Purdum W8TEE.   It is entitled “Beginning C for Arduino”  and can be found on Amazon.

Jack says, “Make sure you get the 2nd edition…it’s a better book and has a chapter on C++ so you can “understand” most library code.”