Want to play different audio announcements over HamShield? You can with DFPlayer.
DFPlayer is a serial controlled MP3 playback device that supports SD cards up to 32GB! With DFPlayer you can:
- Speak your call sign in a natural voice over HamShield
- Playback dozens of different repeater announcements and statuses
- Build remote controlled DTMF devices, such as robots and simulated landers, that report spoken status back to you
- Make a signal strength parrot to announce your signal in dBm to test antenna coverage areas
- Automated announcements on your CubeSat or HAB
DFPlayer can be used with an easy-to-use Arduino library, saving valuable flash space for your software projects. You can plug DFPlayer directly into HamShield's audio pins.
Specifications
- Supported sampling rates (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
- 24 -bit DAC output, support for dynamic range 90dB , SNR support 85dB
- fully supports FAT16 , FAT32 file system, maximum card size of 32G, 64M bytes internal NORFLASH
- A variety of control modes, I/O control mode, serial mode, AD button control mode (most Arduino libraries use a software serial to communicate, as mentioned below)
- Audio data is sorted by folder, supports up to 100 folders, every folder can hold up to 255 audio files (and 1000 audio files in "large folder" mode
- 30 level adjustable volume, 6-level EQ
- Breadboard compatible pins (breadboard not included)
Pinouts
VCC | Power (3.3V-5V) |
RX | Connect to Arduino TX line or software serial |
TX | Connect to Arduino RX line or software serial |
DAC_R | Connect to HamShield Mic input |
DAC_L | Left audio channel (can also be connected to Mic input) |
SPK_1 | Speaker - (should only be connected to speaker <3W) |
GND |
Connect to ground |
SPK_2 |
Speaker + (should only be connected to speaker <3W) |
BUSY |
Low when playing, High when not playing |
USB- |
USB DN connection |
USB+ |
USB DP connection |
ADKEY_2 |
Trigger play (button mode) |
ADKEY_1 |
Trigger play (button mode) |
IO_2 |
Short press: play next, Long press: increase volume |
GND |
Connect to ground |
IO_1 |
Short press: play previous, Long press: decrease volume |
Libraries
While there are a variety of libraries available for DFPlayer, we have found that this library works best:
https://github.com/PowerBroker2/DFPlayerMini_Fast
Connecting to HamShield
We will assume you are using an Arduino Uno with the DFPlayerMini_Fast library. This library makes use of a software serial interface, freeing up the Arduino serial port for other uses -- like debug output.
- Connect either DAC_R or DAC_L to pin 1 on the HamShield TRRS header (Mic). You will need to adjust the volume and mic gain accordingly to avoid distortion, depending on the volume of your audio recording.
- Connect both GND pins to Arduino ground
- Connect pin 11 on the Arduino to the RX pin on the DFPlayer. Note that 5V Arduino systems shoudl make use of a 1K resistor between the two pins
- Connect pin 10 on the Arduino to the TX pin on the DFPlayer.
- Connect Arduino 5V pin to the VCC on the DFPlayer