This is only a preview of the October 2026 issue of Silicon Chip. You can view 36 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. Articles in this series:
Items relevant to "Mighty USB-C Bench Supply, Part 1":
Items relevant to "Programmable USB-PD Modules":
Items relevant to "Audio Spot Frequency Oscillator":
Items relevant to "Phenomenal Pinball Machine, Part 5":
Purchase a printed copy of this issue for $14.00. |
Image source: https://unsplash.com/photos/blue-and-white-spiral-illustration-UnkJXtHKlsc
Audio Spot
Frequency
Test Generator
by Richard Kabzinski
Using just a few modules and not much else, this portable device
produces 1V RMS test signals at various frequencies with very low
distortion. It also has modes for testing RIAA preamplifiers, SSB
transmitters and amplifier intermodulation distortion.
B
eing something of a collector and
restorer of old test equipment, I
have three classic noise and distortion
(N&D) meters in my collection, along
with several vintage, retro and homebuilt valve and solid-state hifi amplifiers that I need to test. Two of the N&D
meters are AWA units, one a valvebased 3A56068, with the other being
a very capable all-transistor F240A.
The third unit I have is a Hewlett-
Packard 334A. At some point, these
have all served in a lab or maintenance workshop somewhere in Australia. Since acquiring them, I have
carefully checked and restored them
to full functionality.
The AWA F240 is the highest performing unit, able to measure noise
and distortion down to about 0.003%.
One thing I have been missing for
many decades, though, is a decent
low-distortion oscillator. While I
have a reasonably late-model digital function generator, with fairly
low sinewave distortion of 0.05% or
so (measured at 0.025%), I wanted
something at least an order of magnitude better, at say 0.0025% or better.
This need prompted me to design and
build one.
It had to be relatively cheap, easy
to build and easy to replicate, as I
wanted to share the design with my
fellow electronics hobbyists and home
constructors. There are a few analog
designs out there, but they have some
drawbacks:
• They require special op amps.
• They involve a fairly large number of components.
• They can typically only produce
a single, fixed frequency.
• They can suffer from poor frequency stability.
• It’s difficult to guarantee that cloning one will give the low distortion
results expected, especially if built on
a breadboard or Veroboard.
The digital design presented here
meets my criteria of being cheap and
easy to build, with excellent performance, requiring virtually no attention
to circuit layout. It’s easy to reproduce
and provides excellent performance
because it uses a digital-to-analog converter (DAC) to generate the required
signals with only a moderate need to
worry about circuit layout.
The only real downside is that it
requires programming. I didn’t want
to spend weeks or months designing hardware and writing code, even
though I am capable of doing it. This
project had to be relatively quick and
easy. That means using a software
development environment that is
widely known and supported, while
using off-the-shelf components.
I settled on the Arduino ecosystem
as there is a plethora of hardware and
software support available.
The feature list grew a lot during the
design phase. I wanted to make the
design super useful, easy to use and
Screen 1: the splash screen is shown
for two seconds at startup. Pressing the
FREQUENCY button during this time
will show the software license details.
Screen 2: it starts in Flat mode at
1kHz but muted. Hold the MODE
button for one second to activate it, as
shown here.
Screen 3: the second mode, Inverse
RIAA, adjusts the output level with
frequency to aid in testing phono
preamplifiers.
60
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
Features & Specifications
▶ Generates sinewaves at 20Hz, 50Hz, 100Hz, 400Hz, 440Hz, 1kHz, 10kHz & 20kHz
▶ 192kHz sampling rate for low distortion
▶ Extra spot frequencies of 50.05Hz, 500.5Hz, 2.122kHz with automatic level
adjustments for testing an RIAA preamp/filter
▶ Generates SMPTE intermodulation tones (60Hz & 7kHz with a 4:1 amplitude
ratio)
▶ Generates SSB two-tone of 700Hz/1900Hz for transmitter performance testing
▶ Flat mode output level: 1V RMS
▶ RIAA mode output level: 100mV <at> 1kHz after RIAA filter
▶ SMPTE/SSB output level: 2.828V peak-to-peak
▶ Produces DC calibration voltages for easy trimpot adjustment
▶ Simple two-button user interface (MODE & FREQUENCY)
▶ Modes: flat, inverse RIAA, SMPTE test tone, SSB two-tone
▶ Status is shown on a low-cost 128×64-pixel 0.96-inch (24mm) monochrome OLED
▶ Distortion: <0.0025% <at> 1kHz
▶ Frequency accuracy: better than 100ppm
▶ DAC: PCM5102 <at> 192kHz, 16-bit resolution (48kHz for SMPTE/SSB modes)
▶ Output loading: ≥1kΩ recommended (≥600Ω with the NJM5532D op amp)
▶ Power supply: 5V DC <at> 150mA from plugpack or USB (including power banks)
set up, and to appeal to a wide audience of users who need audio signals
for test purposes.
1. The YD-ESP32-S3-N8R2-DEVMODULE microcontroller board
2. The GY-PCM5102 I2S DAC module
Hardware selection
3. A 128×64 OLED display module
I had been exposed to the PIC16,
The addition of an output buffer op
STM32 and ESP32 series of devices amp also means we need a 5V to ±12V
and products over the years. Where I converter to power it.
work, we use the latter two platforms
Apart from these parts, little else is
in our products. They are both cost- needed. Two pushbutton switches are
effective, highly capable and sup- used for mode and frequency selection.
ported by the Arduino system. Low- Potentiometers could have been added
cost versions of various Arduino- for output level control, but I chose to
compatible modules are available vir- use trimpots so that a fixed output level
tually everywhere.
of 1V RMS can be set. I feel this level is
I settled on the ESP32-S3 as the con- most suited for amplifier testing.
troller because it has good support for
This means the generator can also
the I2S serial audio interface of the provide an accurate 1V RMS reference
DAC I chose. The DAC is a PCM5102 for checking the AC range of digital
by Texas Instruments (originally a multimeters and the like.
Burr-Brown device) and is available on
Resistive dividers can be used on the
a small board complete with a voltage buffered output to provide a suitable
regulator, filtering, and even a 3.5mm RIAA output level, in my case fed to
output jack.
separate RCA connectors.
The board also provides pads for
headers, which was useful for bread- Operating modes
boarding. All that was needed to comThe generator has four modes selectplete the design was some kind of able using the MODE button after an
display. I chose a 0.96-inch (24mm) initial splash screen (Screen 1): Flat,
monochrome OLED screen that’s con- Inverse RIAA, SMPTE and SSB Twotrolled over an I2C two-wire serial bus. tone. The unit starts up in Flat mode;
A quick look at the circuit reveals the pressing the MODE button changes the
low module count, belying the flexi- mode as shown in Fig.1.
bility and features of the design.
Three modules form the basis of the Flat mode
unit and are available at very low cost
On applying power, after two secfrom places like AliExpress:
onds at the splash screen, the unit
siliconchip.com.au
Australia's electronics magazine
Fig.1: pressing the MODE button
cycles through the four available
modes.
operates in Flat mode, with the frequency set to 1kHz and the output
muted. While in Flat mode, the frequency button cycles through these
frequencies on each press: 20Hz,
50Hz, 100Hz, 400Hz, 440Hz, 1kHz,
10kHz, 15kHz and 20Khz. These are
all produced at a 192kHz sampling
rate from the DAC for the lowest distortion.
To unmute the output, press and
hold the MODE button for more than
one second. The display will show
“ACTIVE” (Screen 2). Press and hold
it to MUTE again; the output will be
set to 0V and the display will show
“MUTED”.
Since the output of the generator is
perfectly flat at all spot frequencies, as
well as being used for audio frequency
response tests and such, the frequency
response of a DMM can be determined
up to 20kHz.
Normally, lower-cost DMMs don’t
have particularly accurate AC ranges,
with typical error ratings of ±1% or
so. The frequency response is usually
limited to a few kilohertz. One of my
hand-held DMMs, although True RMS
responding, falls off beyond 1kHz. My
October 2026 61
Keithley DMM6500 powers on beyond
20kHz with no problem.
Inverse RIAA mode
These signals are useful for checking the gain and equalisation accuracy
of phono preamps. In this mode, the
unit will default to a 1kHz reference
tone to allow an initial gain check and
the measurement of an output reference value from the preamp (Screen
3). Pressing the FREQUENCY button
will cycle through the frequencies at
the levels listed in Table 1.
Note that these levels are far higher
than a moving magnet or moving coil
cartridge will produce and thus will
overload most RIAA preamps if fed
directly to them. A resistive divider
and/or trimpots will be required to
achieve, say, 5-10mV RMS output at
1kHz to better match what a preamp
is designed to accept. The calibration
to achieve 1V RMS in Flat mode also
calibrates this mode.
The idea behind the Inverse RIAA
test is that the 1kHz tone is used to
check the gain of the phono preamp,
then the generator is cycled through
the other frequencies. A preamp with
correct adherence to the RIAA equalisation curve will give equal output
voltages at each frequency. For typical phono stages, the variation would
be in the order of ±1-2dB.
The 50.5Hz, 500.5Hz and 2.122kHz
tones correspond to the 3180μs, 318μs
and 75μs RIAA filter time constants,
respectively.
Table 2 provides a means to gauge
the deviation of a phono preamp from
the RIAA curve relative to a 100mV
output. If the phono preamp under
test exhibits a higher or lower gain,
the voltage ratios in the table can be
used to calculate the expected output
voltage once the reference point has
been measured.
Many classic consumer-grade
amplifiers were specified to be within
±2dB, with higher-end units giving
Screen 4: the intermodulation
distortion test mode produces two
signals at different frequencies mixed
in specific ratios.
62
Silicon Chip
Table 1 – Inverse RIAA mode output levels at specific frequencies
Frequency
Gain
Ratio
Output level
(RMS)
20Hz
-19.27dB
0.1087
11.4mV
50.05Hz
-16.94dB
0.1422
14.9mV
500.5Hz
-2.64dB
0.7377
77.5mV
1000Hz
0dB
1.0
100mV
2122Hz
+2.87dB
1.3910
146mV
10kHz
+13.73dB
4.8609
510mV
20kHz
+19.63dB
9.5723
1.05V
Table 2 – phono preamp output variation
Output relative to 100mV
dB variance
Voltage ratio
Change
141.3mV
+3.0dB
1.4125
+41.3%
125.9mV
+2.0dB
1.2589
+25.9%
112.2mV
+1.0dB
1.1220
+12.2%
105.9mV
+0.5dB
1.0593
+5.9%
101.16mV
+0.1dB
1.0116
+1.16%
100.00mV
0dB
1.0000
Baseline
98.86mV
-0.1dB
0.9886
-1.14%
94.4mV
-0.5dB
0.9441
-5.6%
89.1mV
-1.0dB
0.8913
-10.9%
79.4mV
-2.0dB
0.7943
-20.6%
70.8mV
-3.0dB
0.7079
-29.2%
±1dB. These days, some high-end
phono preamplifiers achieve ±0.5dB or
even ±0.1dB. However, the very tight
component tolerances to achieve this
result in a much higher cost.
SMPTE Intermodulation
Test mode
The SMPTE Intermodulation Test
tone uses a 60Hz tone combined with
a 7kHz tone at an amplitude ratio of
4:1 (Screen 4). This test is one of the
accepted tests to measure amplifier
intermodulation distortion and is
included for the more adventurous
among us.
This type of distortion produces
unwanted signals at 7kHz ± 60Hz, ie,
6940Hz and 7060Hz. A very linear
Screen 5: this two-tone test mode is
intended for testing single sideband
(SSB) radio transmitters.
Australia's electronics magazine
amplifier will produce less of these
additional signals. They can be measured using spectrum analysis or with
deep notch filters tuned to 60Hz and
7kHz, allowing the residual signal
amplitude to be measured with an
audio millivoltmeter or similar.
I thought this would be a useful
inclusion, but it requires an external
audio spectrum analyser or FFT analyser of some kind. The Room EQ Wizard
(REW) computer program, combined
with a reasonable external audio interface, could fit the bill for some users.
SSB Two-Tone mode
I’m not a ham, but I spent over a
decade in radio communications in
my early years and tested many SSB
Screen 6: calibration mode produces
a DC output with either polarity that
can be measured accurately with a
DMM.
siliconchip.com.au
transceivers with a two-tone signal
applied (Screen 5). The SSB two-tone
signal is well-known, comprising
two tones of equal amplitude mixed
together.
The choice of the two-tone frequencies varies somewhat throughout the
world, but the 700Hz & 1900Hz combination generated by this unit is
broadly accepted. This unit generates
those tones to a high degree of accuracy, unlike many designs out there.
The two-tone test provides a means
of checking the quality of the modulator and the final output of an SSB
transmitter, to arrive at a measure of
linearity and the peak envelope power
(PEP) output of the transmitter. Further information on these tests can be
found on the internet.
Circuit details
As you can see from Fig.2, there is
not much hardware involved. MOD1,
an ESP32-S3 module, is the brains. It
runs an Arduino sketch to scan the
two switches, distinguishing between
short, long and dual presses to provide
the various functions. It also drives the
OLED screen via a two-wire I2C serial
interface and sends I2S data (similar
to SPI) to MOD2, the PCM5102 DAC.
The PCM5102 is used in 16-bit resolution mode, as a cursory glance at
the data sheet will reveal there is nothing to be gained from using the higher
24-bit and 32-bit modes. Its distortion
and signal-to-noise ratio specifications
are limited by the internal DAC architecture. The lower resolution reduces
the computational load on the ESP32
chip.
This is a stereo DAC, so it provides
left and right channel outputs, which
are fed via trimpots VR1 and VR2 to
op amp IC3, which is used as a buffer
to provide low-impedance outputs.
The sampling rate is set to 192kHz
in Flat and RIAA modes, while SSB
and SMPTE modes use 48kHz. This
reduction in sampling rate is due
The front and underside of the Audio Spot Frequency Oscillator PCB. The PCB
mounts to the enclosure via four 30mm standoffs. This provides enough height
so that the switches S1 & S2 protude through the front panel by approximately
2.5mm.
While most of
the components
mount on the PCB,
the DC power input
jack, two RCA output
connectors and power switch
mount to the enclosure.
Screen 7: the DC output calibration
mode with the output voltage
switched to negative.
siliconchip.com.au
Australia's electronics magazine
October 2026 63
Fig.2: the circuit primarily comprises four modules connected
together: the ESP32 microcontroller (MOD1), PCM5102 stereo DAC
(MOD2), OLED screen (MOD3) and split-rail generator (MOD4).
Added to those is dual buffer op amp IC1, two trimpots, two
pushbuttons and a few capacitors.
to the complexity of generating and
maintaining the phase alignment
between the two tones. The 2.828V
peak-to-peak output level is the same
in this mode as Flat mode,
but because of
the mixed
We have
not installed
a power
switch, as it is
optional.
64
Silicon Chip
tones, it is no longer equal to 1V RMS.
Using the NE5532 as a buffer presented a bit of a challenge, since I
wanted to be able to also generate DC
voltages for trimming the AC output
level, meaning I couldn’t use AC-
coupling via capacitors. This forced
me to use a split supply to power the
op amp so I could DC-couple the
signals.
I decided that a DC-DC converter module was the easiest
solution, so I used a 5V DC to
±12V DC converter device.
At first, I was concerned
about the cost, but
the A0512S-1WR3
module does the job
nicely at a very modest price.
No power supply
is complete without
a selection of electrolytic and ceramic
capacitors scattered
around the schematic to
filter/bypass the various power
Australia's electronics magazine
supplies appropriately. The DC-DC
converter allows the unit to be powered from a single 5V DC power supply, drawing around 150mA.
A word of caution on the OLED
display module. There are variants
that swap the Vcc and GND pins, so
pay attention when wiring it up. The
circuit shows the pinout for the version I used.
DC calibration
A typical multimeter is more accurate on DC ranges than AC, so it’s ideal
to be able to use DC measurements
to calibrate the unit. The calibration
feature provides a DC output from the
DAC at nominal levels of +2.828V and
-2.828V DC. These levels are fed to the
trimpots, allowing the user to set the
DC output from the left and right buffered outputs to ±1.414V DC.
This trims out DAC variations and
also accounts for the 470W resistors
(internal to the DAC IC) in series with
the DAC outputs on MOD2. Since
the AC peak output from the DAC
siliconchip.com.au
Fig.3: fit the
components
on both sides
of the PCB
as shown
here. MOD1
and MOD2
should ideally
be mounted
via headers
plugged into
sockets; IC1
can also use
a DIP socket.
The OLED
screens can
have pin
1 be +3.3V
or GND;
check yours
and use the
appropriate
header row.
The terminal
block wire
entries face
into the
middle of the
board.
precisely tracks the DC values, after
this adjustment, the AC output voltage will be very close to 1V RMS.
To use this feature, power on the
unit and wait until it starts up in Flat
mode, then press and hold both the
MODE and FREQUENCY switches
together for two seconds. The unit
will enter CALIBRATE mode with the
DAC output set to 0V. Press and hold
the MODE switch to unmute the unit.
The output voltage will change to a
nominal +2.828V (Screen 6).
Use a DMM to measure the left and
right outputs while adjusting the trimpot to achieve readings of +1.414V.
After that, press the MODE switch to
switch the polarity of the output to
a nominal -2.828V (Screen 7); check
that the readings are close to -1.414V.
Pressing MODE will toggle the polarity
of the output so a fine adjustment can
be made to counter the op amp offset
voltage if desired.
Once you are happy with the settings, press the FREQUENCY button
to exit CALIBRATION mode.
siliconchip.com.au
PCB assembly
I initially built my prototype on a
breadboard and powered it with 5V
from a bench power supply. Even with
such a crude setup, the AWA F240
noise and distortion meter yielded
a reading of 0.0026%, which is at its
noise floor. When I checked the bridge
output (null circuitry) of the F240 with
a DSO, I could still see a small residual 1kHz signal plus the inherent noise
of the F240.
This suggests that the theoretical
distortion of the PCM5102, specified
as 0.0022%, is being achieved or even
exceeded. The good thing about this
design is that this distortion figure and
the output voltage are both constant
across all the spot frequencies. The
frequency is precise as well, since it
is crystal-controlled.
Since then, I have designed a 95
× 65mm PCB to make things easier to build and to package up into
an enclosure, coded 04111261. The
PCB holds the majority of the components, save the DC input jack, RCA
Australia's electronics magazine
output connectors and optional power
switch.
The PCB mounts in the enclosure
via four 30mm standoffs directly
screwed into the bosses. This sets the
height of the PCB so that the tactile
switch actuators protrude through
the front panel/lid by around 2.5mm.
The PCB overlay diagram, Fig.3,
shows which components to fit on
which side. The display and switches
are on the opposite side to the other
parts. Begin construction by soldering
the headers onto the modules if they
were supplied unsoldered.
Some PCM5102 modules are not
supplied with jumpers installed on
links on the underside, so it is a good
idea to check these and add solder
bridges if needed. The links should
be 1-L, 2-L, 3-H and 4-L (see Fig.4).
I recommend using header sockets for mounting the ESP32-S3 and
PCM5102 modules. This allows access
to the ESP32-S3 USB COM port for programming in situ, since the screw terminals are normally in the way. This
could be useful for the experienced
among you to modify the code to add
other features.
For example, you might want to add
a white or pink noise option, or design
a WiFi web server interface to control
the unit. The op amp can also be socketed, allowing you to try different op
amps to see how various types perform
if you are so inclined.
When fitting components, solder
the header sockets first to make aligning them easier. If these are not used,
mount the OLED display and tactile
switches, then all other components
before finally fitting the modules. It
generally works best to start with the
lowest profile components, working up
to the highest.
When installing the electrolytic
capacitors, pay attention to their
polarity. The screw terminals are
optional, but they make wiring up
easier because wires don’t need to be
Fig.4: the black rectangles show the
required solder bridges on the bottom
of the PCM5102 module if yours
doesn’t come with them in place.
October 2026 65
directly soldered to the PCB. The terminal blocks result in a much neater
result in my view.
Putting it all together
Fig.5 shows where to drill holes
in the lid for the switches and the
suggested locations for the DC input
socket and RCA sockets. The measurements are referenced to the centre of
the lid. Add some masking tape to
make it easier to set out the markings
and to prevent scratching the clear lid.
Use a nail or centre punch to make an
indent in the plastic to help keep the
drill centred.
A step drill is ideal if you have one.
Otherwise, start small with a pilot
hole of around 2mm and work up to
the required hole size in 1mm steps.
Take it slow and easy, as plastic can be
a challenge to drill with normal drill
bits (it tends to ‘grab’ the bit).
The placement of the DC jack and
output connectors is only a suggestion,
as you may want to use the buffered
outputs, unbuffered outputs or both.
You may also want a separate RIAA
output to which divider resistors have
been added. I prefer to use a single
pair of outputs with inline attenuators
I made myself.
To mount the PCB, first screw the
threaded end of the standoffs into
the four outermost corner bosses in
the case. The M3 screw section will
cut into the plastic bosses well, but
it will require firm downward force
to ensure that the thread doesn’t strip
on the way.
A nut driver will help here if you
have one; if not, use the screws as a
tap to cut the threads first, then screw
in the standoffs. The bosses are deep
enough to accommodate the full length
of the thread. Now you are ready to
wire up the PCB to the DC and audio
connectors.
Light-duty hookup wire is suitable
for all the connections since the voltages and currents are low. The common and signal wires of the left and
right outputs can be twisted together if
desired. Start by connecting the wires
to the screw terminals, as that will help
to get the lengths uniform when soldering to the connectors later.
Don’t tin the wire ends to make them
easier to insert into the terminals. Solder ‘creeps’ or ‘cold flows’ and over
time, forming bad connections, so it’s
a bad habit to get into. For a reliable
connection, use the bare stranded wire
Fig.5: where to
drill the holes in
the lid (for the
button stalks)
and the top end
of the case (for
the power and
output sockets).
Since the power/
output sockets
are chassis
mounting, you
can move the
holes or come up
with a different
arrangement
as long as they
won’t interfere
with mounting
the assembled
board in the case.
66
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
end and twist it before inserting into
the terminal.
Before soldering to the DC input
socket, double-check the polarity on
the DC plug to make sure the DC input
socket is wired the right way. Most
commonly, the centre pin is positive,
but that is not always the case, so check
using a DMM to be sure.
A quick check of the socket pins
would not go astray either. This will
also verify that the power supply is
putting out close to 5V DC before you
plug it into the unit, as AC or some
other voltage could cause damage.
Program the ESP32 if you haven’t already (see the adjacent panel).
Once wired up and with the board
not mounted, power up the unit. If
all is well, once power is connected,
red LEDs will light on the ESP32-S3
and PCM5102 modules, and the OLED
display will come to life. Check it is
functional by pressing the MODE and
FREQUENCY buttons.
Once you have confirmed everything is working, go through the DC
calibration routine to set the buffered
outputs to 1V RMS.
The PCB can now be screwed down
onto the standoffs with four short M3
machine screws. Usually, you can
do without washers, but for the purists among us, these can be added –
slightly longer screws may be required.
If one or more of the standoffs don’t
quite align with the PCB holes, a gentle push in the right direction should
solve the problem.
If you find the buttons are a bit low
for your liking, you can either unscrew
the standoffs a little to raise them, or
add washers under the PCB to raise it.
It is possible to mount the PCB to
the lid; that may be required if using
a different enclosure. You can use offboard momentary switches, wired via
CON2 if you prefer.
Before fitting the lid, it’s a good idea
to power the unit up again and check
that it is working as expected. If you
want to power the unit from a battery, a
USB power bank is ideal; all you need
is the appropriate USB to 2.1mm DC
plug cable.
This unit could have incorporated
more functions such as white and
pink noise generation, IHF dynamic
headroom testing, logarithmic sweeps
and others. These could be added by
modifying the code if desired. If there
is sufficient demand, I may revisit the
SC
design and add these in future.
siliconchip.com.au
Programming the ESP32-S3
To program the chip, you will need the Arduino IDE installed on your computer, which
can be downloaded from www.arduino.
cc/en/software
Make sure you have the ESP32-S3 DEV
and a USB-A to USB-C cable on hand, or
a USB-C to USB-C cable if your computer
has a USB-C port. The steps are:
Screen 8: the result of the Get Board
1. Install the ESP32 Board Core. If you Info menu item if the ESP32-S3 board
have not programmed an ESP32 before, is connected correctly via USB.
open the Arduino IDE, go to File → Preferences, and paste “https://espressif.github.io/
arduino-esp32/package_esp32_index.json” into the “Additional Boards Manager URLs”
field. Then go to Tools → Board → Boards Manager, search for esp32 by Espressif and
click Install.
2. Download the INO file from the Silicon Chip website at siliconchip.au/Shop/6/3651
3. Connect the cable to the ESP32-S3 USB port labelled COM, not the USB OTG port.
4. Connect the other end of the cable to your computer.
5. If using Windows, open Device Manager to find the COM port number that has
been assigned to the board.
6. Start the Arduino IDE.
7. Click the File → Open menu and select the downloaded INO file.
8. Select the board type by going to Tools → Board → ESP32 and choosing ESP32-S3
Dev Module, with the COM port identified in step 5.
9. Configure the USB settings: go to Tools and ensure USB CDC On Boot is set to
Disabled.
10. Click Tools → Get Board Info to confirm communication is established with the
microcontroller hardware (see Screen 8).
11. Install the Adafruit_GFX library by navigating to Tools → Manage Libraries, searching for it by name, then clicking install.
12. Install the Adafruit_SSD1306 library from the same Library Manager window. If
the IDE asks to automatically install missing dependencies like “Adafruit BusIO”, select
Install All.
13. Click the Upload arrow icon to compile the code and flash it into the ESP32-S3.
Parts List – Audio Spot Frequency Oscillator
1 double-sided PCB coded 04111261, 95 × 65mm
1 125 × 85 × 55mm Ritec/Hammond RP1135C plastic enclosure with clear lid
[Altronics H0324]
4 3-way terminal blocks, 3.5mm pitch (CON1, CON2)
1 2.1mm ID panel-mount barrel socket (CON3)
2-4 red/white panel-mount RCA sockets
1 ESP32-S3 microcontroller module (MOD1)
[AliExpress 1005012092039320]
1 PCM5102A DAC module (MOD2) [AliExpress 1005012157224842]
1 GME12864 or GM009605 0.96-inch OLED display module (MOD3)
[AliExpress 32638662748]
1 A0512S-1WR3 DC/DC converter (MOD4) [AliExpress 1005006491073871]
2 6×6×15.3mm tactile pushbutton switches with 12mm-long actuators (S1, S2)
2 5kW 3296-style top-adjust multi-turn trimpots (VR1, VR2)
2 22-pin socket strips (for MOD1)
1 6-pin socket strip (for MOD2)
1 4-pin socket strip (for MOD2)
1 8-pin DIL IC socket (for IC1)
4 M3 × 30mm male/female tapped hex spacers [Würth 971300354]
4 M3 × 6mm panhead machine screws
6 150mm length of light-duty hookup wire
Semiconductors
1 NJM5532D or LM833 dual low-noise op amp, DIP-8 (IC1)
Capacitors
1 47μF 16V electrolytic
2 10μF 16V electrolytic
2 100nF 50V ceramic
Australia's electronics magazine
October 2026 67
|