All posts by Mike

I keep an electronics test bench and I love repairing old radios or building other electronic or amateur radio projects, usually late at night listening to shortwave or talking with other hams. My Amateur call sign is KM5Z.

FM Stereo Broadcaster

Part 15, Low Power, FM Stereo Transmitter on a Budget

I have two good AM transmitters – one I’d built using a single 6888 Tube plus an old KnightKit Broadcaster that I’d refurbished, as well as a high-quality solid state transmitter from SSTRAN that I use to play music over the several antique AM radios I’ve repaired or refurbished.
I wanted a high-quality FM Stereo transmitter to stream iPod / iTunes output around the house and to my FM-band radios.

FM Stereo, however, is a bit more difficult to home-brew. I wanted to avoid the poor frequency control of the Ramsey FM-10C (with the BA1404 chip), and the low modulation of the little iPod FM transmitters you find for use in the car – although frequency control is quite good on these, the audio on these is just terrible. I’ve had about 3 of these iPod transmitters and they were all completely unusable.

You can get really GOOD FM transmitter kits but you have to go on up to $140+ to find a kit with suitable audio quality and frequency stability (think: Ramsey FM-25B).
To home-brew, first you have to build a stable exciter, preferably PLL synthesized, but the ICs for doing so are simply no longer readily available (Motorola MC145170, Plessey NJ88C30). Secondly, you’ll need to encode the left and right channels into Left+Right, Left-Right and tack on the 19 khz pilot tone, the 38 khz sub-carrier (See: Wikipedia, FM Broadcasting, FM Stereo).



The NS73M FM Transmitter module from Niigata Seimitsu Co. is ideal for this task. Unfortunately,
it needs a controller to setup the pre-emphasis, modulation level, frequency and power level.
And, if you’re going to use a controller, you might as well include an LCD so you can know what
frequency you’re on. I named this the “FM Stereo Broadcaster” since it reminded me ofthe old
Knight-Kit Wireless Broadcaster of the 1950’s (I have one of those too!).

The Plan

I selected a Bare-Bones Board (BBB) from Modern Device Company (that I had on hand) to provide an Arduino controller.
The Arduino is an open platform, the development tools are free, and can be programmed in a variant of “C”
language. The LCD is a 16 x 1 device from AllElectronics.com
made by Varitronix. Finally the NS73M is provided on a convenient breakout board from
Sparkfun Electronics.

The Code

I found some initial code built by Cai Maver (Arduino + NS73M = ARRRduino!)on the SparkFun forum. The original (ur-code?) sample BASIC code from Sparkfun / ZAPNSPARK (Jim G.) gave the original ‘protocol’ for interfacing with the NS73M.

The code was first built with 3-wire mechanism using 3 digital pins (after the sample code)..
After some back-and-forth collaboration, he changed the Arduino to NS73 communication it to use
the I2C protocol (Arduino Wire.h library).
I added the 4-bit LCD interface and did some fancy-schmancy handling of the up/down/set buttons so you can
take the transmitter offline, change frequencies, and put it back on the air, and I added some code to save
and restore the frequency in EEPROM so the last frequency is restored on power up. The Feature-List
includes:

  • Power-up and recall the last-known frequency
  • Provide access to the entire FM-broadcast band (USA; code is easily modified for other markets)
  • Allow the FM Carrier to be taken ‘off-air’ or ‘on-air’ as needed
  • Show the current frequency and carrier state on an LCD Display

The project becomes a matter of not assembling discrete components so much as putting together 3 highly integrated modules.

The LCD4bit library was altered in only two spots:
1. Disable the RW Pin – the LCD RW pin is tied to ground (LOW). We’re only ‘writing’.
2. Change the Enable Pin from ‘2’ to ’11’ (use the unused RW pin).


				The Arduino pins are budgeted this way:
				Digital Pins -
				D12 = RS (from LCD)
				D11 = RW (NOT USED - The RW pin on the LCD is tied LOW)
				D11 = Enable (from LCD)
				D10, 9, 8, 7 = 4 data bits for LCD
				D6, 5, 4 = UP, DOWN, SET buttons
				
				Analog Pins:
				A4 = SDA, A5 = SCL
				
				There are a few pins remaining for future expansion.

FM Stereo Broadcaster - Frequency Stability
Final code is in this
Arduino Sketch for An FM Stereo Broadcaster.
As currently configured, the NS73M transmits at 2 mw power output, with a 75 us pre-emphasis, and 100% modulation to occur at 200mV of input audio. The first time it powers up, it will start at 97.3 mhz.
Afterward, the start-up frequency is remembered from the last time.

Everything is reconfigurable for other countries, including the FM Broadcast band edges
(87.5 mhz to 107.9 mhz USA), and the channel spacing (200khz USA). The 4-Bit LCD interface is as follows:

LCD is being used as Write-only, so we can save a pin by tieing RW LOW and disabling RW in the LCD4bit library.
Also the LCD4bit library was slightly modified to move the ENABLE pin from Arduino Pin 2 to the (now unused)
Pin 11.
The Two LCD4bit library changes are two lines:


				int USING_RW = false; // make sure the USING_RW value is set to 'false'...
				
				... and Change THIS Line:
				int Enable = 2;	
				TO:
				int Enable = 11;	  // making use of the now unused RW pin...
				

Results

  • Frequency stability is tip-top – I connected a frequency counter and it NEVER drifted.
  • Transmitted Audio quality is superb – I don’t hear much hiss at all and the audio has great dynamic range, so FM modulation is quite good.
  • Range – I didn’t expect much, but with proper input volume (iPod nano, about 60% volume), and a short (read: legal!) antenna it reaches my living room about 50 feet away!
  • Frequency Agility – I’ve tested it down to 87.5 and up to 107.9 and other than some very small ’rounding’ inaccuracies, it reaches all of the channels on the US FM broadcast band.
  • Cost – compares favorably to the Ramsey FM-10C ($45): the Bare-Bones Arduino($15), the FM module ($15, Sparkfun.com),
    an LCD module ($5, Allelectronics.com), and some parts on hand (buttons, a 3.3v regulator,
    resistors, trimpot for LCD contrast), but has the features of a Ramsey FM-25B ($139.95).
  • I still need to package it in a suitable enclosure.

FM Stereo Broadcaster - Breadboard Version
Finishing: since this is an RF project, an enclosure should be metal. I’ve settled on a Hammond 1455N1201 extruded aluminum enclosure – they’re easy to work with and I like the style. The datasheet indicates the RF Output is 50 ohms impedance, so a BNC Connector would be suitable. Each of the separate ‘modules’ (LCD, Arduino, FM Transmitter) can be mounted to a perf board and interconnected. Breadboard power is from a 5-volt lab supply, so a 5-volt regulator (and filtering) will be added to power the Arduino and the LCD; the NS73M uses a separate 3.3-volt regulator.

I initially forgot to add a level-shifter between the Arduino and the NS73M. The Arduino will produce 5-volt swings and this needs to be buffered to 3.3-volt swings in the Clock and Data. A great guide for this is SparkFun’s Tutorial on 3.3v Sensor Interfacing.
However, I avoided the more complicated solution (BS170’s on each side) and simply used a pull-up resistor to +3.3V on both I2C
pins of the NS73M. Connecting these to the +5V Analog pins (4 and 5) now restricts the up-side voltage to +3.3V, but allows enough
of a swing to assure a good I2C signal.

Finally, connecting the buttons (or the rotary control) requires debouncing of the mechanical switches.
A good look at this great tutorial on debouncing: http://www.ganssle.com/debouncing.pdf
will turn up the RC method (on or about page 12-14). I chose this for it’s simplicity and it’s quite good at
cleaning up either pushbuttons or a mechanical encoder.

Schematic

Updated May 7, 2009 – Schematic. Finally!

FM Stereo Broadcaster - Schematic (partial)

Eagle CAD Schematic

    Notes on the Schematic

  • 1/18/2011 Discovered a MISSING connection on the Schematic: Note that for I2C operation, “LA” must be pulled ‘high’ or 3.3V. So: Change U1, Pin 7 (LA) to go to +3.3V
  • This is by no means a pre-bottled solution; you’ll probably want to tinker with it a bit, depending on what components or
    enclosures you have handy (switchs, power choices, LCD types).
  • I used the simple, cheater-way of handling the I2C – just two 10k pullups … to 3.3V! This limits the up-swing since the
    Arduino is at +5V.
  • S1, S2 and S3 – can be switches (version 1 of the code), or a Rotary Encoder (with a set switch) (Version 2).
  • LCD code is written with a 16×1 in mind; 16×2 LCDs are now more readily available and cheaper. This just gives you
    more display real-estate to use; tinker with the LCD output lines
  • Not shown on the schematic – I used the ‘TEB’ output on the NS73M to provide an ‘On-Air’ LED. Just use a current limiting
    resistor (maybe 1000 ohms to start). The TEB goes HIGH (+3.3V) to signal a LOCK (Low for Unlock), so this is a good visible check for ‘On Air’.
  • Some builders put a small electrolytic (10 or 22uf) between the LCD Contrast and Ground.
  • Remember this is an RF application; shield audio inputs, bypass early / bypass often.
  • This is my first EagleCad schematic and I’m too new at it to know any ‘best practices’; please email any suggestions or errors. Thanks.

Source Sketch Files

  • Version 1 – works with Arduino-0011, uses buttons for UP, DOWN and SET.
  • Version 2 – works with Arduino-0012, replaces add-in LCD4bit library with the new built-in LiquidCrystal library, uses a single Rotary Encoder for Frequency change and Set.
  • Version 3 – works with Arduino-0017, works with new, improved LiquidCrystal library.

I used a Bourns rotary encoder with a built-in push-button to replace the 3 buttons with a single control.

FM Stereo Broadcaster - Enclosure Final arrangement with an LCD, ‘On Air’ or PLL-Lock LED (in blue), and a rotary encoder with push-to-set switch for tuning.
Initially used a 16 x 1 character LCD from AllElectronics.com — A Varitronix #MDL16166.

If I were making another unit, I’d use a 16 x 2 display.

FM Stereo Broadcaster - Enclosure - Rear
From left-to-right: female BNC Antenna Connector, a 5-way binding post for ground, 3.5mm stereo input, 2.5mm coaxial power jack (9 volts, 1 amp wallwart), and
a power switch.

Ground seems an optional item, as it works very well with just a short whip.
Here the FM Stereo Broadcaster is connected to a TM-100 Clone
for an antenna.

Screws are standard-head, socket-cap screws with a black-oxide finish (McMaster-Carr: 91251A148)

FM Stereo Broadcaster - Inside This is the essance of a ‘modular’ project: The FM Transmitter IC, the LCD, the Arduino that controls them all, along with a bit of inter-module glue: a 3-to-5 volt interface from the FM IC to Arcuino, 3.3 volt and 5 volt regulator ICs, and a RC-debounce circuit between the mechanical rotary encoder and the Arduino.

FM Stereo Broadcaster - Front Panel The 16 x 1 character LCD from AllElectronics appears very faint when looking directly on, or from above. Investigating other LCD options turned up some similarly sized LCDs that will probably work better; the final version (at left) uses an LED backlight and had the exact same measurements as the Varitronix MDL16166 (to fit the opening!).

Screws are flat-head, socket-cap screws with a black-oxide finish (McMaster-Carr: 91253A148). They work well and look great with these
extruded aluminum enclosures.

What’s it take to get the nice, square, straight LCD hole in the front panel? About 30 minutes with a Nipper tool.

  • Mark the exact opening, making sure it’s square. I use a red Sharpie, but on the back side.
  • Drill a hole large enough to admit the end of the nipper tool.
  • Nip, Nip, Nip. Nip around the edges, always – ALWAYS – noting the position of your nipper against your red line.
    This is for consistency more than accuracy in size.
  • Nip slightly small; you can always use a file to ’embiggen’ the opening a bit. It’s less desirable to have
    the exact-sized opening than an even, square one.

Epologue

Any mistakes are probably my own. Thanks very much to Cai Maver for his original work on the Arrrduino FM – I’ve only extended his code a bit to include EEPROM store and some of the LCD behaviors. Many thanks to all the superb folks on the Arduino.cc website and their libraries, code samples and tips.
This project is not guaranteed for any specific outcome or purpose. I cannot be held responsible for illegal uses. This project is solely for educational, hobbyist, and experimental purposes.
Please check your local (and national) regulations regarding unlicensed transmissions. Do not interfere with other, licensed transmitted signals. FCC’s Part 15 Regulations are recommended reading, particularly

Bulletin 63 (October 1993)
“Understanding the FCC Part 15 Regulations for Low Power, Non-Licensed Transmitters”. This project describes an “Intentional Radiator” and as such (operating in the band 88 – 108 Mhz), according to Section 15.239 (b): “The field strength of any emissions within the permitted 200 kHz band shall not exceed 250 microvolts/meter at 3 meters.” Using their calculations, this works out to about P = 0.3 E2 watts, or 0.3 x (250 x 10-6V)2,
or 0.3 x 0.0002502, or: 0.00000001875 watt (.01875 μ-watt).

Updated May 13, 2009

Don’t know how I missed this one, but there’s a great rule-of-thumb allowance for AM and FM, unlicnesed, low power broadcast transmitters. The Document is from July 24, 1991:

“Permitted Forms of Low Power Broadcast Operation”

Page one has the technical power rule: AM – .05 watts (or 100mw to the final RF), and FM – 0.01 microwatts. But since these are difficult to measure since calibrated RF meters are expensive, the general intent of the rule is defined as an ‘Approx. Maximum Coverage Radius’ or 200 feet (radius) for both AM and FM low power transmitting.

Updated May 13, 2009

Found a swell link that produces a list of unused FM Frequencies in your area. Searchable by City / State, or by Zipcode, it will return a graphic showing the signal strength of the stations in your area, plust a list of “best”, “better” and “good” frequencies. For example, in Dallas / Ft. Worth, Texas, there AREN’T any unused frequencies (!), but it gives a list clear of all but the weakest stations.

http://www.radio-locator.com/cgi-bin/vacant

Update:
This made it to HackaDay.com. The project has an enclosure now, although I wish I’d used a back-lit and 2-line LCD. Too bad – the hole is already cut.

FM Broadcast Antenna

A Cheap Clone of the Ramsey Electronics TM-100

After the success of the FM Stereo Broadcaster, I decided I’d like to have a proper antenna for it – rather than the usual ‘piece of wire’ hanging out the back.

Consider the options:

  • A collapsible whip antenna – Radio Shack offers a few. Simple, cheap, but not what I’m looking for.
  • A Ground Plane – nice, but the ground-plane takes up a lot of space. Arrow Antennas will cut one for a specific FM Broadcast frequency (GP Custom model).
  • A Yagi. Great if I’m trying to send in one particular direction OR increase the effective radiated power in that direction – a no-no, given FCC rules for Part 15.
  • Ramsey Electronics offers a TM100-Tru-Match FM Broadcast Antenna Kit(PDF) for only… $69.95! I like that one – it’s a real 3-meter, folded-dipole and is mostly ‘flat’, except for the PVC housing.

Taking Stock

I like the appearance of the TM100 and it doesn’t take up the space of a ground-plane. So our new antenna will be the TM100 – but wait: the cost ($70.00 + shipping) is a bit high for what’s in the box. If you live where you don’t have DIY resources this will have to do; but, perhaps we can do better.

The assembly manual for the TM100 is provided online (PDF File). A close examination shows what you get for your $70 (plus shipping):

  1. A length of 300 ohm twin-lead, typical: Radio Shack 15-1175 (100 feet), about $18.69.
  2. A 75-to-300 ohm balun (transformer).
  3. A 3′ length of coax.
  4. A Ferrite choke core – ostensibly to keep any transmitted RF from reflecting back to the transmitter on the outside of the coax.
  5. An “F” Connector – specifically, a panel mount “F” connector to feed through the PVC enclosure
  6. Some bits of PVC to provide the “fancy” enclosure. Eh, call it a Radome if you like.

The Plan

Most of the parts are things I already have on-hand. But let’s do a cost analysis if we had to buy everything.

AntennaBits - Supplies to Make Our Antenna
AntennaBits – Supplies to Make Our Antenna

Various Antenna Bits – I had several VHF baluns in my cables, cords and wall-wart box, but I bought another Balun for about US$2.75.

Twin-Lead: I have a factory-supplied, 300-ohm twin-lead, probably provided with some FM receiver I bought years ago.
Estimated $3.50 if you had to buy one. It measures 57 inches and that should work and will allow me to trim for the middle of the FM Broadcast band.

Balun for 75-to-300 ohms: Ditto – from my big box of antenna / connector / cable / wall-wart bits in the garage. Free to me, but I actually priced one at Fry’s for $2.75 (see above).

Coax: – Ramsey specifies RG-174U (which is pretty lossy) and is 50 ohms – an odd choice. It can’t be much of a “Tru-Match” if you feed a 300 ohm antenna through a 75-to-300 ohm transformer, with a 50 ohm coax. I actually tested this using RG-174
and had quite a bit of coax radiation, so I opted instead for 75 ohm RG-59U. Again, free to me, but probably around $3.00 and you’ll have several feet left over.

Ferrite Choke Core: I’ve got the on-hand, but they’re also readily available. Parts onhand, but I used a snap-on version just like this one from All Electronics $1.25

A trip to Lowes provided the 1″ PVC bits (about $5), and Altex supplied a panel-mount “F” connector $0.95). Not listed is a ring-mount, solder-tab to fit the “F” connector: we’ll have to solder the coax shield to something, since PVC is non-conductive. I think it was $0.10.

TV Balun
TV Balun can be used as a COAX to twin-lead 300-to-75 ohm transformer

Crack open one of the ‘Quick-Connect “F” Plug and Transformer’s and you’ll find a little 300-to-75 ohm VHF balun.

The tiny transformer can be clipped out of the plastic case (above) and used inside the FM-Antenna’s PVC enclosure. Solder the TwinLead Antenna to the left-hand side of the above transformer. Then note which pin goes to center and shield of the coax-side and solder to the 75-ohm coax.

So, with a little PVC glue and some fender washers thrown in the TM100 Tru-Match FM Broadcast antenna can be cloned for about $16.55. My Cost is quite a bit less since I had most of the parts on hand: about $6.05 for 10-feet of 1″ PVC, three caps, one “T”, one “Elbow”, a panel-mount “F” connector and a solder-tab. Ramsey provides the PVC tubing in short pieces (10″ or 12.625″ pieces), so we’ll come out a bit ahead not having to use couplers to join small pieces and the final result will be just a bit tidier. I’m guessing the reason for this is to get the product small enough for shipping.

Not bad — and for the cost, the darn thing will be rather impressive to look at.

So, since anything worth doing is worth over-doing — Let’s clone that antenna!

The Math

The antenna is a full-wave (3 meters) dipole, but folded in half. So, the principal formula used here is the formula for the length (L) in feet, of a half-wave dipole when given the desired frequency (F) in Mhz.:

Starting with this Formula:
wavelength (in meters) = 300 / frequency in MHz

This formula will give us the length of the antenna, end-to-end (as folded), for a given frequency.
Since a Folded Dipole has a relatively good bandwidth we’d really just like to put the tuned length of the antenna in the center of the FM band, since the FM Stereo Broadcaster will probably not be set to a single frequency, will probably move to different frequencies to avoid nearby strong broadcast stations or localized noise.

Let’s calculate a typical folded-dipole, made of twin-lead, centered on the FM Broadcast band at 98.0 Mhz. Our twin-lead should have a velocity factor (the speed at which radio waves travel down the wire) which will correct our ‘calculated’ length for ‘real-world’ length:

  • Velocity Factor of typical Radio Shack Twin-Lead is .82 (or 82% of the speed of light)
  • A Full Wavelength (in meters) = 300 / frequency in MHz
  • 1/2 Wavelength (in meters) = (.82) * 300 / 98.0 MHz / 2 = 1.255 meters
  • 1 meter = 39.3700787 inches, so 1.255 m = 49.41 inches
Calculated Half-Wave Dipole Lengths – FM Broadcast Band
FM Frequency (Mhz) 88 Mhz 98.0 Mhz 108 Mhz
Calculated Length (inches) 55.0″ 49.4″ 44.8″

But experimental measurements (at least for my materials and configuration) indicated that possibly, my OEM Twin-Lead was a bit too long. I started with the OEM length, 57″ (or 28.5″ each side) and this seemed to peak at around 90.3 Mhz.

This could be due to additional capacitance in the setup or some other vagary in the makeup of the materials. Your mileage may vary. I shortened the antenna by about 1.5″, or about 3/4″ at each end, making the new antenna 27.75″ on each side or 55.5″. I found the new length appears to peak at around 101 Mhz.

Results

FM Stereo Broadcaster - Front Panel

Finished Product is Identical to the Ramsey TM100 – a Clone!

Epologue

Any mistakes are probably my own. This project is not guaranteed for any specific outcome or purpose.

Warning! If you intend to mount the antenna outside, please pay attention and do not locate the antenna near overhead power lines or other electric light or powered circuits, or where it can come into contact with any high voltage.

Also: Anything mounted outside, on or above a roof, should have a lightning protection system, such as an in-line spark-gap and a coax shield ground, bonded to house electrical ground (as per National Electrical Code). NEC Article 810 (A) thru (K) covers radio transmitting and receiving equipment and is intended to prevent (or reduce) voltage surges caused by static discharge or nearby lightning strikes from reaching the center conductor of the coax lead-in.

I cannot be held responsible for illegal uses. This project is solely for educational, hobbyist, and experimental purposes.

Please check your local (and national) regulations regarding unlicensed transmissions. FCC’s Part 15 Regulations are recommended reading, particularly Bulletin 63 (October 1993) “Understanding the FCC Part 15 Regulations for Low Power, Non-Licensed Transmitters”. This project describes an “Intentional Radiator” and as such (operating in the band 88 – 108 Mhz), according to Section 15.239 (b): “The field strength of any emissions within the permitted 200 kHz band shall not exceed 250 microvolts/meter at 3 meters.” Using their calculations, this works out to about P = 0.3 E2 watts (where E is field strength in volts/meter), or 0.3 x (250 x 10-6V)2, or 0.3 x 0.0002502, or: 0.00000001875 watt (.01875 μ-watt).

Epologue

  • 3 August 2010 — Updated ‘typical’ Twin-Lead Calculations, including a Velocity Factor for Twin-Lead.

A $10 Scope

My B+K 1435 Oscilloscope went down over Thanksgiving weekend. Really, it went down – it fell against my chair (I shouldn’t keep it propped up like that, I guess). However – the “A” channel input went bad. I took it all apart – screws everywhere on the carpet.

I was so close to parting it out then W5AAN (Ginger) urged me to keep trying on fixing it. Turns out these old scopes are old-school. The traces are nice & wide and the parts aren’t surface mount (SMT). I wound up fixing a total of three problems with it.

The pot for the “A” channel vertical positioning had two broken traces right near the pot. I was able to easily scrape and short ’em with a bit of component lead wire. Soldered those on and it worked just great.

Got it all back together and found that now the “B” channel didn’t work. Well by this time, I know where everything is – opened it back up and the lead to the center conductor on the BNC connector had broken. Soldered THAT back into place and now the scope works great.

It works so well I’m considering buying some new Gel batteries for it – it’s a portable model and while it was all apart, I tested the charge circuit to be working.

Perseverance. My $10 scope soldiers on…

Heathkit IG-102, Solid State Edition

I’d recently heard about a conversion of a tube Signal Generator to Solid State. I found the original article in a great old book called ’99 Test Equipment Projects You Can Build’, by 73 Magazine. I snagged the book from eBay for only $2.00 (plus shipping). My copy is a small hardback, red cover. Print’s kinda small.

Same article mentions adding a three-range (10khz, 1mhz, 10mhz) crystal calibrator on-board (since you now have boatloads of room inside without the tubes and the transformer).

Each ‘half’ of both tubes is replaced with a FET Pin numbers are mentioned, so you go underneath (unfortunately sticking the leads in the tube socket holes won’t work…) and solder a FET lead to a Socket Hole. I think there’s one socket hole (besides the filaments) that remains unconnected.

I’ve written on the schematic which FETs appear to work. I settled on MPF-102s, although I tested a couple of versions. The book project specifies four 2N5951’s.

An IG-102 FET Conversion Schematic

There are two resistor changes (actually mods) due to the lowered voltages:
Solder a 75 ohm resistor across the existing 33k (see left of ‘BF Front View’ switch.
Solder a 90 ohm resistor across the existing 4.7k (see above V2A 1/2 6AN8). On some models the existing resistor may be a 10k.

There are no other changes other than what’s marked at bottom of the schematic (removing the cord and power supply. Replace w/9V battery. I also did the fancy LED thing. Nice to know if it’s ON so you don’t run down the battery.

I also added a ‘wall wart’ plug for outside power. Fancy.

IG-102 FET Version – Tinkering with Tubes

I’d recently heard about a conversion of a tube Signal Generator to Solid State. I found the original article in a great old book called ’99 Test Equipment Projects You Can Build’, by 73 Magazine. I snagged the book from eBay for only $2.00 (plus shipping). My copy is a small hardback, red cover. Print’s kinda small.

Same article mentions adding a three-range (10khz, 1mhz, 10mhz) crystal calibrator on-board (since you now have boatloads of room inside without the tubes and the transformer).

Each ‘half’ of both tubes is replaced with a FET Pin numbers are mentioned, so you go underneath (unfortunately sticking the leads in the tube socket holes won’t work…) and solder a FET lead to a Socket Hole. I think there’s one socket hole (besides the filaments) that remains unconnected.

I’ve written on the schematic which FETs appear to work. I settled on MPF-102s, although I tested a couple of versions. The book project specifies four 2N5951’s.

IG-102 - FET
Schematic for the FET version of the Heathkit IG-102

There are two resistor changes (actually mods) due to the lowered voltages:
Solder a 75 ohm resistor across the existing 33k (see left of ‘BF Front View’ switch.
Solder a 90 ohm resistor across the existing 4.7k (see above V2A 1/2 6AN8). On some models the existing resistor may be a 10k.

There are no other changes other than what’s marked at bottom of the schematic (removing the cord and power supply. Replace w/9V battery. I also did the fancy LED thing. Nice to know if it’s ON so you don’t run down the battery.

I also added a ‘wall wart’ plug for outside power. Fancy.