This is only a preview of the April 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 "PicoSDR Shortwave Receiver":
Articles in this series:
Items relevant to "DCC/DC Stepper Motor Driver":
Items relevant to "Calliope Amplifier":
Items relevant to "Micromite-based Music Player":
Purchase a printed copy of this issue for $14.00. |
Project by Gianni Pallotti
These days most mobile phones can play
audio files (in formats like MP3 and WAV) but
sometimes you just want something simple to
play some music or sounds. This circuit uses
little other than a Micromite LCD BackPack
and a DFPlayer Mini module, and it can play
such files from a microSD card.
Micromite-based
MUSIC PLAYER
S
ome potential uses for this design
include playing sounds or white
noise to drown out a noisy environment (such as construction noise),
or playing calming music before bedtime, which can benefit some children
or those with insomnia or tinnitus.
Depending on personal preferences,
options like coloured noise, soothing
music or natural sounds such as running water, animal sounds or rain can
help you to relax and fall asleep easily. A consistent sound, like running
water or waves crashing, can help
to mask background noises without
being intrusive.
I have succumbed to tinnitus (commonly known as ringing in the ears)
and, after trying some possible solutions, I have found the best one is listening to soft sounds during the silent
part of the day and night.
Although there are various ways to
listen to such sounds, including apps,
websites and dedicated devices, I liked
the idea of building my own player. I
am using it to play the calming patter of rain on a window, soft rustling
leaves, birds chirping, plus wind and
ocean wave noises. They also help to
focus our attention outward rather
than on our own anxiety or obsessive
thoughts.
This project could also function as
a digital MP3 music player, capable of
storing and playing plenty of songs.
The DFPlayer Mini MP3 player
module (data sheet: siliconchip.au/
link/ac83) used in this design was
described in detail in the article
titled “A stamp sized digital audio
player” (December 2018; siliconchip.
au/Article/11341). I also used it in a
previous design, the Slot Machine
project (May 2022; siliconchip.au/
Article/15310).
microcontroller and LCD, effectively
turning it into an ‘audio BackPack’.
For the first two options, most components used are obtainable from
the Silicon Chip Online Shop, such
as the Micromite LCD BackPack kit
(see siliconchip.au/Shop/20/3321)
and DFPlayer Mini (siliconchip.au/
Shop/7/4789). The only other required
Fig.1: very little needs to be added to
a Micromite LCD BackPack to turn it
into an audio player. The audio files
are stored in MP3 format or similar
on a microSD card plugged into the
DFPlayer Mini module.
Assembly options
An enlarged view of the DFPlayer
Mini’s underside. The module is
shown at actual size in the lead photo.
78
Silicon Chip
The circuit is quite basic, as shown
in Fig.1. There are three ways to build
the Music Player:
1. You can wire up the DFPlayer
Mini module and other parts (there
are just a few) to a Micromite LCD
BackPack using jumper leads or by
soldering wires.
2. You can build my small add-on
board that hosts the DFPlayer Mini
and other parts, and plugs into the
LCD BackPack.
3. I have also designed a board that
has everything onboard, including the
Australia's electronics magazine
siliconchip.com.au
An empty cotton bud
container is an inexpensive
way to house the finished
project.
The add-on board
for the Music
Player. It’s a
simple design
due to most of the
work being done
by the Micromite
BackPack. There is a
single 1kW resistor on
the underside.
component is an adaptor for linking
the DFPlayer to the BackPack.
The optional PCB coded 01110251
(38.5 × 30.5mm) plugs into the BackPack and hosts the DFPlayer Mini
plus a handful of other components,
making both the construction and wiring easy.
The optional all-in-one board,
which uses a 2.4-inch touchscreen
rather than the 2.8-inch one used on
the BackPack, is coded 01110252 and
measures 87 × 52mm.
Besides connecting the audio
player module to the BackPack, both
boards also facilitate connections to
a loudspeaker and the input power
supply.
The whole assembly will easily fit
inside a small container measuring
110 × 80 × 55mm or so. I have found
it very economical to use an empty
cotton bud container for this. It costs
just $2.99, and you get 200 cotton buds
as a bonus! I painted the inside of the
clear box to minimise any light from
the LEDs on the DFPlayer Mini module showing through it, but you might
like that effect.
The cutouts required for the LCD
panel, speaker, USB power input and
on/off switch when using this container are shown in Fig.2.
I used a 2.8-inch Micromite LCD
BackPack V1 as it’s the simplest and
cheapest of the BackPacks that use the
2.8-inch TFT touchscreen. You can
use the V2 (with onboard USB interface and PWM backlight dimming)
or the V3 (with even more features,
although we don’t need any of them
here). In the following description, I
will assume you are going to use the
V1 like I did.
As there is no PWM option to reduce
Fig.2: these are the cut-outs required in the specified 110 × 80 × 55mm box. You could use a larger box, but will need to
adjust the hole positions.
the LCD panel backlight on the V1
Micromite LCD BackPack, the unit
can simply be placed face-down if you
don’t want bright light from the screen.
This will have the added advantage of
better dispersion from the speaker hole
in the rear of the case.
If you use the larger all-in-one board,
you don’t need to assemble a BackPack; it’s integrated into that design,
as shown in the Fig.3 circuit.
If you are using the separate BackPack, build the BackPack first, then
assemble the add-on board as per Fig.4.
80
Silicon Chip
It’s pretty straightforward. If building
the all-in-one version, mount the components as per Fig.5 now.
For the all-in-one version, either
fit the 13W resistor and omit Q1 & Q2
for fixed touchscreen backlight brightness, or omit the 13W resistor and fit
Q1 & Q2 for PWM backlight brightness
control. Importantly, if your touchscreen has yellow plastic on the 16-pin
connectors, it will run at full brightness regardless of the value of the 13W
resistor, unless you opt for PWM backlight control.
Australia's electronics magazine
Note that if you are using Micromite
LCD BackPack V3, or the all-in-one
PCB with PWM backlight brightness
control, by default, the backlight will
be driven with a 50% duty cycle. It’s
possible to have touchscreen controls
to adjust the brightness, but they are
not part of the supplied software. So
if you want such controls, you will
need to add them.
Once the board(s) have been assembled, wire them up and mount the
components in the case as shown in
Fig.6 (overleaf). This shows the wiring
siliconchip.com.au
Fig.3: this is the
simplified circuit
of the larger
all-in-one PCB that uses the
2.4-inch touchscreen. The other
difference is the BUSY signal from
the DFPlayer Mini module goes to
pin 6 of IC1 instead of pin 24.
Fig.4: it’s easy to build the
add-on board; it basically
exists just to connect the
DFPlayer Mini module (via
two header sockets) to the
BackPack and loudspeaker.
Fig.5: this board has all
parts onboard so doesn’t
require the BackPack,
although it’s sized for the 2.4-inch touchscreen rather
than 2.8-inch (they have the same pixel resolution).
The screen plugs into CON4 & CON5 and mounts on the
three tapped spacers.
for the add-on board version. Note that
the speaker wiring polarity is unimportant.
Keep in mind that, if you use a
USB-C socket like I did, and it doesn’t
have any onboard resistors (most
don’t), it isn’t guaranteed to work if
you use a Type-C to Type-C cable.
It will work with Type-C to Type-A
cables, though.
If you’ve built the all-in-one version,
the USB socket is onboard, so position
it to be accessible through the hole in
the case. There is no power switch in
siliconchip.com.au
this case; you unplug it to switch it off.
The speaker wiring is the only external wiring required.
Software
Once the board(s) have been built,
assuming the PIC32 chip is programmed with the Micromite firmware, you just need to load the BASIC
code onto it. You can do this by using
a USB/Serial adaptor or, if your BackPack has a USB socket, via that socket.
Refer to the Micromite and BackPack
articles for detailed instructions on
Australia's electronics magazine
doing this. The basic procedure is as
follows.
You will need a serial terminal
program, such as TeraTerm on the
Windows operating systems. The
AUTOSAVE command is probably
the simplest way to load the BASIC
code. You will also need to configure
the Micromite OPTIONs to enable the
LCD panel and touch sensor, then calibrate the touch sensor.
If you haven’t used a Micromite
processor before, Geoff Graham’s
Micromite webpage includes all the
April 2026 81
information you might need on the
Micromite (see https://geoffg.net/
micromite.html). The Micromite manual, which you can download from
that page, includes instructions for
configuring LCD touch panels.
The BASIC files list the OPTIONs
in comments near the start. There are
two different files. “Sound Player.bas”
is used with the Micromite BackPack
PCB, while “Sound Player2.bas” is
used with the All-In-One PCB.
Parts List – Micromite-based Audio Player
Common to all versions
1 plastic box, 110 × 80 × 55mm
1 DFPlayer Mini audio player module [Silicon Chip SC4789]
1 4W 3W miniature loudspeaker [Adafruit 3351]
1 microSD card
1 2-pin right-angle female header socket, 2.54mm pitch
4 10G × 10mm self-tapping screws
4 M3 × 25mm panhead machine screws
4 M3 × 12mm tapped nylon spacers
4 M3 × 3mm untapped nylon spacers
2 M1.6 × 6mm machine screws and nuts
1 50cm length of twin medium-duty red & black cable
Operating the Player
Add-on PCB version
The Micromite program is controlled through touch commands on
the LCD screen.
All-in-one version
These include the following main
buttons (see Screen 1):
PLAY: start playing a track
PAUSE: pause playback of the current track
<PREV: play the previous track in
the same folder
NEXT>: play the following track in
the same folder
FOLD: change to the next available
folder and play the first track
−VOL: decrease the volume, from a
maximum of 30 down to 0
+VOL: increase the volume, from a
minimum of 0 up to 30
1 2.8-inch Micromite LCD BackPack programmed with MMBasic V5.05.05 [SC3321]
1 single-sided PCB coded 01110251, 38.5 × 30.5mm
1 SPST panel-mount switch (toggle or slide)
1 1kW SMD resistor, M2012/0805 size
Connectors
1 panel-mount USB socket with breakout board
1 14-pin female header socket, 2.54mm pitch
1 2-pin right-angle header, 2.54mm pitch
1 double-sided PCB coded 01110252, 87 × 52mm
1 2.4-inch ILI9341-based LCD touchscreen module
1 PIC32MX170F256B-50I/SP microcontroller, DIP-28, MMBasic V5.05.05 (IC1)
1 28-pin DIL IC socket (optional; for IC1)
1 MCP1703AT-3302E/MB 3.3V LDO voltage regulator, SOT-89 (REG1)
1 2N7002 N-channel Mosfet, SOT-23 (Q1)
1 AO3401(A) P-channel Mosfet, SOT-23 (Q2)
4 10µF 50V X5R SMD ceramic capacitors, M3216/1206 size
2 100nF 50V X7R SMD ceramic capacitors, M3216/1206 size
1 10kW SMD resistor, M2012/0805 size
3 1kW SMD resistors, M2012/0805 size
1 13W SMD resistor, M2012/0805 size (optional; fixed backlighting; omit Q1 & Q2)
Connectors
1 PCB-mounting 4-pin USB mini Type-B miniature socket (CON1)
1 4-pin female header socket, 2.54mm pitch (CON4)
1 14-pin female header socket, 2.54mm pitch (CON5)
Screen 1:
the default
screen of
the Audio
Player in
use.
The round buttons provide the following options:
PLAY ONCE: play the selected track
once only
REPLAY: continuous looping of the
selected track
2HRS: stop playback after two hours
SAVE: saves the current folder, track
selection, play mode and volume
The SAVE button changes to yellow each time a setting is changed,
then reverts to white when the button is touched, confirming that the
new settings have been saved. This
is a reminder to save the changes.
At startup, the stored data (if saved)
is loaded and the MP3 is set accordingly. Otherwise, it uses the defaults:
volume = 15, folder #1, track #1, no
repeat (play once).
The list of folders is hard-coded in
the Micromite MMBasic program. For
example, by default the line is:
DIM FolderName(4)
As String = (“1-Nature”,
”2-Rain”,”3-Water”,
”4-Wind”,”5-Sounds”)
82
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
The finished Music Player fits neatly
in the painted plastic box that the
cotton buds came in.
Only the red (+) and
black (-) wires need to be
connected.
This is the 3W
speaker I used. It
works well and I recommend it,
but there are plenty of other options.
The reason it’s (4) instead of (5) is
that there is an index zero, so with a
maximum index of 4, up to five strings
can be stored. You can change that
number, but make sure it’s always one
less than the number of folders listed.
Each folder can contain as many as
3000 tracks, assuming the SD card has
sufficient capacity.
If the next folder or previous/next
track is not found, the program will
revert to the first folder saved on the
microSD card, or to the first track in
the pre-selected folder.
The name of the folder and the track
number within the selected folder will
show on the LCD panel. The volume
setting is shown as a bargraph and as
a number next to the graph.
Micromite pins 9 & 10 (COM2) are
used for the 9600 baud bidirectional
serial communications port with the
DFPlayer Mini module. The commands sent to the module have been
reduced to only the strict requirements, each consisting of three strings:
Initiate$ + Function$ + End$. The
Function$ string is the main command
SC
component.
Fig.6: how to wire up the add-on module to the BackPack (V1 shown here),
speaker, switch and power socket. The wiring for the full board shown in
Fig.5 is much simpler, as only the speaker needs to be connected.
siliconchip.com.au
Australia's electronics magazine
April 2026 83
|