Project under
development
Arduino based Johnson KW
Matchbox Autotuner
I **LOVE** the old Johnson KW
Matchbox. It is a great balanced tuner. It is a great
bandpass filter. It will tune about anything. The
problem is that they are fairly high-Q and requires tuning even with
small frequency changes, especially on 80 meters.
80 meters is a large band in terms of percentage bandwidth, and the
small value of capacitors in the matchbox yields very high Q.
So...
I thought, what about putting stepper motors on a Johnson KW
Matchbox and controlling it with an Arduino. The first step was to
mount stepper motors, which I did by mounting them on the back of the
chassis. I also arranged an opt coupler, which is interrupted by a
swinging arm such that the ‘home’ position can be found.
(Hint: for more detail download the images by
clicking on them.)
I originally had the Matchbox installed
and operating in what I call pure "Table Mode" where the
tuner has table and the stepper motors tune to a position based on
the table that was hard coded. This is done by reading Icom
CI-V frequency messages and going to a look up table to determine
where to set the knobs. It is only as accurate as the table.
I first implemented the code on a Arduino Uno.
The problem
with a table based approach is that if the feeder is wet,
tuning will not be the same as when it is raining, but it works
quite well when things are dry and stable.
When the tuner
is not tuning, the operator has full control over the tuner by
turning the knobs, so it still operates as a normal Johnson KW
Matchbox.
Watch a video
showing how it works
The motor drivers are done
through an I2C interface, using an 8 bit I/O expander,
PCF8575N. For each motor, there are two lines that define the
phase, and one line that is an enathe motor . The other three
lines are used to enable power to the LED in the two opto-couplers
and two sense transistors are brought back to the controller to mark
where home is located. The N channel FETS for the motor
drivers must easily be able to handle the current of the motors.
NOR gates should have enough drive current to operate the power
FETs, suggest HC or HCT parts.
Rough
schematic
This was done about 15 years ago, since then
there are much better stepper motor controller ICs, Including Arduino
shields, like the WWZMDiB CNC Shield V3 Engraving Machine Expansion
Board A4988 Driver Expansion Board for Arduino. But, having already
built a working controller, I used that.
In 2025, I decided to revisit the code, this time using the new Arduino Uno R4 WiFi. The R4 are much faster, with plenty of EEPROM space, much more RAM and program memory, 32 bit processor, and speaks standard C, as compared the slightly strange Atmel C. With the new processor, I could store the tables in EEPROM, change them without rebuilding the code. I also added the ability to interpolate between data points. With WiFi, I was able to have the control be done through a web browser. Also, rather than getting the frequency data directly from the CI-V interface, it gets the frequency data from a MQTT server. I also put in a temperature and humidity sensor just for grins.
There are three main pages… The first is status screen. Where
you can enable or disable following the received frequency data, or
go to Manual screen, used adjust the table, or go to a table mode to
see what the data looks like and to delete outliers.
Manual Control is used to update and create table entries. First
hit use table, which puts the tuner in the current table setting.
Then manually adjust the Tune and Match knobs using the buttons. Once
it is happy, then hit Save Data.
Enter Tuning Data, is a way of direct entry of data, but the
Manual method is quicker. This does give you a way to look at the
actual data and evaluate if another data point might help, or if
there is an outlier data point that needs to be deleted.
If you have any questions contact jim at k9jm dot com