This is only a preview of the September 2026 issue of Silicon Chip. You can view 35 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "Semiconductor Analyser":
Items relevant to "Stereo FM Transmitter":
Items relevant to "Phenomenal Pinball Machine Part 4":
Items relevant to "Battery BackPack for GPS Clocks":
Purchase a printed copy of this issue for $14.00. |
By Charles Kosina, VK3BAR
Low-power, digitally-controlled
FM TRANSMITTER
» Short-range stereo FM transmitter tuneable from 87.5MHz to
108MHz in 100kHz/1MHz steps
» Variable RF output in eight steps, under the 25μW legal
limit with the specified wire antenna
» Variable audio gain in eight steps
» Usable range: about 10m
» Power: various battery options, 1-3 cells, primary or
rechargeable
» Current consumption: about 26mA with a 4.2V battery
» Optional integrated battery charger
» A small OLED screen to show the status
» Inexpensive and straightforward to build
This small FM broadcast-band transmitter
has frequency, gain and output power
controls. It shows the current frequency
and other settings on a small OLED and runs
from a battery of three AA cells or similar.
T
his FM Transmitter uses just a
few parts as it’s based on a small,
inexpensive, digitally controlled stereo FM transmitter module. The only
major parts required in addition to
that are an Atmel microcontroller, a
small OLED screen, a small switchmode boost module, a rotary encoder
and two potentiometers.
Such a module allows you to test FM
radios, play music remotely, or use an
FM radio as a basic type of intercom.
The transmitter module uses a
KT0803L chip and is not expensive;
you can order it from the AliExpress
link in the parts list or our Online
Shop. However, it is not a ‘plug and
play’ device. It has 18 8-bit registers
that need to be set up each time it’s
powered on. These are all accessed
over an I2C two-wire serial bus.
To choose an appropriate microcontroller, we need to consider how
many I/O pins are required. The rotary
shaft encoder requires three pins, the
I2C interface needs two, the power
and audio level pots need two analog
inputs, plus one for battery voltage
measurement.
That’s a total of eight I/O pins
needed. There are plenty of inexpensive microcontrollers that will handle that. I chose the ATMega328 in a
52
Silicon Chip
32-pin TQFP package as I have several available but the ATMega168 or
even ATMega8 can be used as well.
They all have more than enough pins
for the task.
To expand the battery choices,
I added a boost converter module,
which gives a 5V DC output for an
input ranging from 1.5V to 4.5V. This
means it can run from two or three AA
alkaline cells (one would work, but it
would be ‘flat’ very quickly).
The advantage of using three over
two is that they can be discharged
down to 0.5V each. Cells that have
been discarded from other equipment
can be used.
Rechargeable batteries can be
used too, either three 1.2V rechargeable NiMH cells or a single Lithium-
ion cell. In both cases, they can be
recharged from an external 5V supply.
The current drain with a 4.2V battery is 26mA. As battery voltage goes
down, the current drain will rise in
proportion. If using alkaline cells,
once each gets below 1V, it will be
discharged fairly rapidly.
This project’s inspiration
This project was inspired by a competition being run by the Historical
Radio Society of Australia (HRSA)
Australia's electronics magazine
to build a low-power AM transmitter using valves. The original design
was published in Electronics Australia in May 1989. Such a device could
be used to connect to a sound source
and transmit to nearby AM receivers
on an otherwise unused frequency.
The May 1989 circuit is shown in
Fig.1. It is an extremely simple design:
two inputs are mixed and amplified by
a triode, which is coupled to a second
triode that modulates the third triode acting as an AM broadcast band
oscillator.
It obviously works, but there are limitations. The antenna is connected to
the oscillator coil and would detune
the frequency. The oscillator coil has
to be wound with about 100 turns.
Great care has to be taken working
with a circuit running at such a high
voltage (250V).
I briefly considered building it as
I have a sufficient stock of valves in
shoe boxes. But these days, I no longer
have the high-voltage capacitors and
1-2W resistors, as most of my designs
run from low voltages (typically 3.3V
or 5V) and use surface-mount components.
I thought about making a solid-state
transmitter on the FM broadcast band
rather than AM. I quickly sketched up
siliconchip.com.au
Fig.1: the May 1989 low-power
AM transmitter circuit that
inspired this project. Triodes
V2a & V2b are stacked in
series; the HT supply passes
through the secondary of T1
to the anode of V2a, then
through V2 to its cathode and
onto V2b’s anode. So V2b’s
anode current comes from
V2a’s cathode. Thus, the audio
signal at V2b’s grid modulates
V2a’s supply voltage and so the
output amplitude.
Fig.2: the analog FM transmitter circuit I originally considered
building before I settled on the digitally controlled version.
Lacking a stereo modulator, it necessarily mixed the two input
channels down to mono and would have been fiddly to set up.
such a transmitter using a couple of
transistors, which is shown in Fig.2.
The oscillator is a JFET and its output
is amplified by an NPN transistor. A
pi-coupler on the output is connected
to an antenna.
Two inputs are provided, which
could be two channels of a stereo
source. They are applied to a varicap
to produce the frequency modulation.
I went as far as building a prototype of
this circuit, but abandoned it for the
following reasons.
Setting the frequency with a slug in
the oscillator coil would have been a
fiddly job, and getting the right level
of modulation would require a lot of
trial-and-error. Also, it would only
produce a mono FM signal; one of the
benefits of FM radio is that it supports
stereo encoding.
I then thought about the fact that
there are plenty of FM transmitters
cheaply available at various shops,
designed to plug into a car power
socket, for listening to music in a car
siliconchip.com.au
with an FM radio. I could use one of
those ‘off the shelf’. Looking on AliExpress, I came across a very simple
module that transmits a stereo FM signal, leading to this project.
Circuit details
The full circuit is shown in Fig.2.
There are three main parts: an FM
transmitter module (MOD1), a microcontroller to configure it and provide
the user interface (IC1) and a power
supply (REG1).
Both the FM transmitter (MOD1)
and OLED screen (OLED1) are controlled over a shared I2C bus using
two wires: SDA (data) and SCL (clock).
These are driven by the hardware I2C
interface within the microcontroller.
An 8MHz crystal has been provided,
connected between pins 7 (XTAL1)
and 8 (XTAL2), with appropriate load
capacitors. This isn’t strictly necessary as the microcontroller has an
8MHz internal RC oscillator and the
frequency is not critical. However, if
Australia's electronics magazine
you set the ATmega328 fuses to use an
external crystal and none is present,
it’s effectively ‘bricked’, so it’s safer
to have one.
Rotary encoder RE1 is used to set the
frequency. It has two Gray code outputs, A & B, plus an internal switch
that’s activated when the knob is
pressed in. All three outputs switch
to ground when active, so they have
33kW pull-up resistors and 100nF
capacitors to ground for debouncing.
They are sensed and decoded by IC1’s
PD2-PD4 digital inputs.
The gain and power output potentiometers (VR1 & VR2) connect across
the 5V supply, and their wipers connect to two analog inputs pin on IC1
with 100nF filter capacitors.
IC1 uses its internal analog-to-
digital converter (ADC) to convert
the wiper voltages to a number from
0-1023 corresponding to the rotational
position of those pots and then sends
appropriate commands to the FM
transmitter.
September 2026 53
Power supply
Whatever battery is used, its voltage will typically be in the range of
1.5V to 4.5V. This is fed to the input of
switch-mode regulator module REG1
via power switch S1. REG1 produces
a 5V output as long as the battery is
within the 1.5-4.5V range, which powers IC1, MOD1 and OLED1.
CON1, D1, D2 and the 10W resistor provide a means to recharge the
battery without removing it. If using
a rechargeable battery, you have two
options: one Li-ion/LiPo cell (3.7V
nominal, 4.2V fully charged) or three
NiMH cells in series (3.6V [1.2V per
cell] nominal, 4.2V [1.4V per cell]
fully charged).
In both cases, the 10W resistor limits the charge current while the diodes
prevent the battery from being charged
above 4.1V – it’s critical that Li-ion/
Table 1: Chip
ATmega328PB
ATmega168(P)
ATmega8
Fuse Extended Byte
0xF5
0xF9
×
Fuse High Byte
0xD1
0xD5
0xD1
Fuse Low Byte
0xFF
0xFF
0xFF
(Low Byte int. osc.)
0xE2
0xE2
0xE4
LiPo types are not charged above 4.2V.
That requires a well-regulated 5V DC
supply to be used for charging, as the
charge termination voltage depends
on the source voltage being close to
5V (5.1V maximum).
If a rechargeable battery is not used,
these parts can be left off. Alternatively, you could opt for external DC
power and forego the battery, powering it via CON1 instead.
CON5 provides the optional 38,400
baud serial debugging interface. Only
serial output is supported, using
Mosfet Q1 with a 1kW pull-up resistor as an inverter and isolator. If you
don’t need the debugging interface
then CON5, Q1 and the pull-up resistor don’t need to be fitted.
Panel preparation
Before mounting parts on the PCB,
use it as a drilling template. Attach it
centrally to the front panel using tape
(eg, masking tape). Use a 3mm drill bit
to make two diagonal holes and attach
the PCB to the panel with 3mm screws
and nuts.
Fig.3: the circuit of the final FM Transmitter design. IC1 loads the required configuration into MOD1;
the audio signal is fed directly into MOD1 from an external source. Rotary encoder is used to change
the configured transmission frequency, while VR1 sets the
output power level and VR2 adjusts the modulation level.
54
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
Next, use a 1.5/1.6mm drill to mark
the position of the four holes for the
encoder, potentiometers and switch,
and then a 3mm drill for the two
remaining corner mounting holes.
Remove the PCB and drill out the four
1.5/1.6mm holes to 6.5mm.
Another hole has to be drilled in
the side to line up with the 3.5mm
audio socket on the Elechouse module, plus one for the barrel socket if
you are using it.
Programming IC1
You have three options for programming the microcontroller, IC1:
1. Purchase a pre-programmed
microcontroller from our Online Shop
(siliconchip.au/Shop/9/7724) and it
will be ready to solder to the board.
No further programming will be necessary.
2. Program it before you solder it
to the board. You will need an Atmel
serial programmer as well as a TQFP32 programming adaptor, such as the
one we published in the October 2023
issue (siliconchip.au/Article/15977).
The PCB for that adaptor is available
from our Online Shop.
3. Program it after soldering it to
the board. In this case, you will need
a serial programmer with a six-pin
socket or ribbon cable. You will also
need to solder the six-pin programming header, CON2, to the board.
Cheap Atmel programmers are
available from AliExpress, such
as this one for about $6, including postage: www.aliexpress.com/
item/1005005962442597.html
Jaycar also sells a suitable program-
Table 2:
CKDIV8
1
Do not divide clock
frequency by eight
CKSEL
1111
Low-power crystal
oscillator, 8-16MHz
SUT
11
fast rising power,
14 clock + 4.1ms
delay
EESAVE
0
EEPROM memory
is preserved
BODLEVEL
101
Brownout detector
= 2.7
All fuse field differences from defaults
mer, Cat XC4627. Make sure to get the
10-pin to 6-pin adaptor (or you can
make one yourself). In both cases, the
required software is a free download.
Three versions of the HEX file are
provided in the download package
(siliconchip.au/Shop/6/3643) depending on the exact microcontroller used.
Be sure to select the right one.
Connect the programmer to the
6-pin header (or if using the TQFP
adaptor, wire it up to that board) and
use the software to program the HEX
file into the chip, then set the fuses to
the values provided in Table 1. Note
that if you’re using the TQFP adaptor,
once you set the fuses, you won’t be
able to make any more changes as the
chip will need the crystal connected
to work.
Fuses
All three supported chips have at
least two fuse bytes (low and high),
each with eight bits of configuration
data. After you’ve programmed the
HEX file into data memory, set them
as shown in Table 1.
The low byte value for internal oscillator operation is provided in case you
haven’t fitted crystal X1. If you have,
use the 0xFF value.
How you set these depends on the
software you’re using, but it should
show you the values that will be programmed in hexadecimal, so make
sure they match the values given. The
differences from the default values are
shown in Table 2.
Construction
The components used are a combination of through-hole and surface-
mount devices (SMDs). Fit all the SMD
devices first; most of them are on the
board under the OLED display. Start
with the 32-pin microcontroller, IC1,
which has pins on all four sides.
Make sure the microcontroller has
the correct orientation and is positioned centrally on the pads before soldering it. There should be a dot or divot
in one corner, indicating where pin 1 is.
That corner goes at upper-left, as shown
in Fig.4, the PCB overlay diagram.
Tack one pin first, then re-check the
orientation and placement, verifying
the pins on all four sides are correctly
centred on their pads. If not, re-melt
the joint and gently nudge the chip into
position. Repeat until you are happy,
then solder the diagonally opposite
pin. Proceed to solder the pins on one
of the other two sides, first adding a
thin layer of flux paste along the pins.
With good-quality flux paste on the
pins, all you need to do is clean your
soldering iron tip, add a bit of solder,
then gently drag it along the pins and
solder will flow onto them. Another
The underside and top of the FM Transmitter PCB. Note that the
antenna cable on the FM transmitter module connects to a pad on the underside of the PCB.
siliconchip.com.au
Australia's electronics magazine
September 2026 55
Fig.4: assemble the FM Transmitter by mounting the parts on both
sides as shown here. Solder the SMDs first, then the through-hole
parts on the same side, then the rest. Note how the OLED screen fits
over the top of IC1/X1. The antenna wire from MOD1 goes to a pad
on the main PCB just under the lower-right corner. Make sure REG1
is fitted with the orientation shown.
Fig.5: this shows where to
drill the hole in the right
side of the case so you
can plug into the audio
input socket of MOD1.
All dimensions are in
millimetres (100% scale).
technique is to add a little solder to
the tip, then touch the tin to the end
of the pin and let the flux draw the
solder onto the pin and pad. Repeat
until all pins on one side are soldered.
Don’t concern yourself too much
if you accidentally bridge pins while
soldering the first side, since it’s easy
enough to fix later. Once one side is
soldered, do the other side, then repeat
for the other two (where you originally
tacked one pin).
Check carefully for bridges (eg,
using a magnifier) and if you find any,
add a bit of extra flux paste, then use
solder-wicking braid pressed down
with the tip of the soldering iron to
draw off the excess solder. Once all
bridges are cleared, clean off the flux
residue (eg, using alcohol and a lintfree cloth) and then go over the joints
again to verify they all look good.
After that, use a similar technique
to solder Mosfet Q1 (if you are fitting
it) but it only has three pins to solder.
Once that’s finished, move onto the
passives (resistors and capacitors).
These are not polarised so you don’t
have to worry about their orientations
as you solder them.
56
Silicon Chip
The resistors should be marked with
their values in scientific notation (eg,
33kW = 3302 or 333), while the capacitors will be unmarked but there are
only two different values. Ensure the
22pF capacitors go into the right locations as marked.
Through-hole parts
Now install the through-hole components on the front of the board, using
the front panel as a guide to make sure
the two potentiometers, encoder and
toggle switch are positioned accurately. The OLED screen and transmitter module are plugged into socket
strips and attached by screws with
standoffs.
The OLED can come in slightly different sizes and can have either 2mm
or 2.5mm mounting holes. Don’t try to
drill out the 2mm holes to the larger
size as it would most likely wreck
the module. Although four mounting
holes are provided for the modules,
only two are actually required.
Use a short piece of insulated wire to
connect the ANT terminal on the transmitter module to the antenna pad on
the main PCB, which is near the pads
Australia's electronics magazine
for the debug header mounted on the
other side (CON5).
Now that you’ve soldered all the
parts, inspect the board for any shorts
between pins and bad solder joints,
and clean off any remaining flux residue.
On my board, I fitted an SMA socket
to connect the output to a spectrum
analyser (CON3) but it is not necessary.
Instead, you can simply solder a wire
to the central pad provided from CON3
and attach it to an antenna socket on
the back panel of the case. That can be
an RCA panel-mounting socket.
The external antenna just needs
to be a piece of wire about a quarter
of a wavelength, which is 75cm at
100MHz. There is no ground plane
as such, but the shielded wire to the
sound source can be looked upon as
the other half of a dipole. We are not
after any great efficiency here, as the
required range is only some meters.
Besides, the maximum allowable radiated power (EIRP) to operate in this band without a license is
just 25μW. You don’t need a high-
efficiency antenna to achieve that. In
fact, you don’t want a high-efficiency
siliconchip.com.au
antenna to ensure you aren’t exceeding the legal limit!
Parts List – FM Transmitter
Battery selection
1 double-sided PCB coded CSE260501C, 76 × 59.5mm
1 black front panel PCB coded CSE260502, 86.5 × 80mm, 0.8mm thick
1 5V DC regulated plugpack (optional, unless using a rechargeable battery)
1 115 × 90 × 55mm case with clear acrylic lid [AliExpress 1005009896550305]
1 3 AA battery holder OR
1 3.7V Li-ion or LiPo rechargeable cell (and holder if required)
1 panel-mount DC barrel socket (CON1) ●
1 3×2-pin header, 2.54mm pitch (CON2; optional, for programming IC1 in-circuit)
1 4-pin vertical polarised header or two 2-pin types, with matching plugs and pins (CON4)
1 3-pin vertical polarised header (CON5) ◆
2 4-pin female socket headers (for OLED1 & MOD1)
1 Elechouse FM transmitter module (MOD1) [SC7712 or AliExpress 2840333316]
1 0.96-inch OLED display module with SSD1306 or compatible controller (OLED1)
[SC6936 (white) or SC6176 (cyan)]
1 five-pin vertical rotary encoder with a 20mm-long shaft (RE1)
1 ND0205MA 3V to 5V DC step-up converter module (REG1)
[SC7713 or AliExpress 1005006176918158]
1 miniature SPDT toggle switch with solder tabs (S1)
2 9mm 10kW linear PCB-mounting vertical potentiometers with 20mm shafts (VR1, VR2)
1 8MHz crystal, HC-49 (X1)
3 small knobs to suit RE1, VR1 & VR2
Hardware
4 M3 × 16mm tapped hex spacers
2 M3 × 10mm tapped hex spacers
2 12mm-long 2-3mm inner diameter untapped spacers
12 M3 × 6mm panhead machine screws
2 M2 × 16mm panhead machine screws
2 M2 hex nuts
Semiconductors
1 ATmega328PB-AU microcontroller programmed with CSE0501A.HEX, TQFP-32 (IC1) ■
1 2N7002 N-channel Mosfet, SOT-23 (Q1) ◆
1 1N4004 400V 1A diode (D1) ●
1 1N5819 40V 1A schottky diode (D2) ●
Capacitors (all SMD M2012/0805 50V X7R MLCC unless noted)
1 4.7μF
6 100nF
2 22pF NP0/C0G
Resistors (all SMD M2012/0805 ±1% metal film unless noted)
3 33kW
1 1kW ◆
1 10W 2W ±5% axial ●
■ ATmega8 or ATmega168 variants are also suitable
◆ optional; for debug interface
● for use with a rechargeable battery (3 NiMH AA cells or one Li-ion/LiPo cell)
As mentioned earlier, there is a
choice of batteries. In my prototype,
I used a triple AA cell holder, which
I attached to the inside of the case
with double-sided tape. This can take
either alkaline non-rechargeable cells
or NiMH rechargeable cells, which can
be recharged via CON1 if it’s fitted.
An alternative is to use an 18650size Lithium-ion cell. These have a
nominal voltage of 3.7V and a capacity of up to 3500mAh (although
2-3Ah is more typical). You may find
these advertised by overseas suppliers with ludicrous capacities of up to
19,900mAh. This is sheer nonsense, so
don’t buy them (if in doubt, stick with
a local supplier like Jaycar or Altronics). A single 18650 cell holder can be
glued inside the case.
Testing
If you haven’t already programmed
IC1, do it now using in-circuit serial
programming header CON2. Refer to
the “Programming IC1” section above
for instructions.
Initial testing is with the board not
yet installed in the case. Before connecting power, check with an ohmmeter to make sure there are no short
circuits between pin pairs 1 & 2 or 3
& 4 of CON4. Apply power and you
should see a splash screen showing
FM TX on the top line and the version
number on the bottom line.
After a second, this is replaced by a
four-line display. The top line shows
the frequency, line 2 the power level,
line 3 the audio gain, and line 4 the battery voltage. Rotating the encoder knob
will change the frequency in 100kHz
steps. Pressing the knob will toggle to
1MHz steps. Rotating the potentiometers will vary the power and gain levels from 1 to 8.
Connect the transmitter to an audio
source using a stereo cable with a
3.5mm TRS plug at one end. Find a
clear channel on a nearby FM radio
and tune the transmitter to that frequency. Try different transmit power
settings and use the minimum that
gives good results.
If you have a spectrum analyser,
such as a TinySA, you can fit CON3
and connect it there. You should see
a spectrum like the one shown in
SC
Screen 1.
siliconchip.com.au
Screen 1: the Transmitter’s output spectrum. The second harmonic is -23dB
compared to the fundamental. The EIRP is under 25μW with the specified
¼-wavelength wire antenna.
Australia's electronics magazine
September 2026 57
|