Component: DFPlayer (MP3 / WAV) (Audio Output): Difference between revisions
Appearance
Created page with "{| style="width:50%" |- | width="20%" style="color:gray;" | Author | Matrix TSL |- | width="20%" style="color:gray;" | Version | 1.0 |- | width="20%" style="color:gray..." |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (21 intermediate revisions by 3 users not shown) | |||
| Line 14: | Line 14: | ||
==DFPlayer (MP3 / WAV) component== | ==DFPlayer (MP3 / WAV) component== | ||
A small module capable of streaming MP3 and WAV audio files from a micro SD card. Controlled via a serial UART connection to the microcontroller. | A small module capable of streaming MP3 and WAV audio files from a micro SD card. Controlled via a serial UART connection to the microcontroller. | ||
==Component Source Code== | |||
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_DFPlayer.fcfx FC_Comp_Source_DFPlayer.fcfx] | |||
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_DFPlayer.fcfx FC_Comp_Source_DFPlayer.fcfx] | |||
==Detailed description== | ==Detailed description== | ||
| Line 26: | Line 54: | ||
{| class="wikitable | |||
No Examples here yet | |||
==Macro reference== | |||
===GetError=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetError''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Checks for any errors and returns the error code. 1=ModuleBusy, 2=SleepMode, 3=SerialError, 4=ChecksumError, 5=TrackOutOfScope, 6=TrackNotFound, 7=InsertionError, 8=SDFail, 10=Sleep | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===GetReplyByte=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetReplyByte''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Index | ||
|- | |- | ||
| colspan="2" | Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| Line 141: | Line 114: | ||
{| class="wikitable | ===Initialise=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] - | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===IsPlaying=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''IsPlaying''' | ||
|- | |- | ||
| colspan="2" | Checks to see if the last played track is still playing | | colspan="2" | Checks to see if the last played track is still playing | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] - | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===IsReplyAvailable=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''IsReplyAvailable''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Checks to see if new data has been received from the module. Returns true when new data is available. Collect the data using the GetReplyByte macro. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===PausePlayResetStop=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PausePlayResetStop''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Allows the current playing track to be paused, restarted or reset | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:]] - | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Mode | ||
|- | |- | ||
| colspan="2" | 0= | | colspan="2" | 0=Pause, 1=Play, 2=Reset, 3=Stop | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 208: | Line 175: | ||
{| class="wikitable | ===PlayTrack=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PlayTrack''' | ||
|- | |- | ||
| colspan="2" | Plays track from the selected folder. MP3 & Advert folder track numbers should be 4 characters long e.g. 0001 any name.mp3, Other folder track numbers should be 3 characters long e.g. 001 Any name.mp3, Root the Track played in placement order. | | colspan="2" | Plays track from the selected folder. MP3 & Advert folder track numbers should be 4 characters long e.g. 0001 any name.mp3, Other folder track numbers should be 3 characters long e.g. 001 Any name.mp3, Root the Track played in placement order. | ||
| Line 231: | Line 199: | ||
{| class="wikitable | ===SendCommand=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendCommand''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sends a command to the DFPlayer module | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90% | | width="90%" | Command | ||
|- | |- | ||
| | | colspan="2" | Command code byte | ||
|- | |- | ||
| | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| width="90%" | Feedback | |||
|- | |- | ||
| colspan="2" | Collect feedback byte: Range 0-1 | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | | | width="90%" | Parameter | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | 16-bit Parameter | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] - | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===SetEQ=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetEQ''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the equaliser mode for the module | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | EQMode | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Range: 0-5 0=Normal, 1=Pop, 2=Rock, 3=Jazz, 4=Classic, 5=Bass | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 290: | Line 247: | ||
{| class="wikitable" | ===SetVolume=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''SetVolume''' | |||
|- | |||
| colspan="2" | Sets the volume level for the module | |||
|- | |- | ||
|- | |- | ||
| | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | Volume | |||
|- | |- | ||
| colspan="2" | Range: 0 (min) - 30 (max) | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 303: | Line 266: | ||
{| class="wikitable | ===SkipTrack=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SkipTrack''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Jump to the next or previous track | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| width="90%" | | | width="90%" | Direction | ||
|- | |- | ||
| colspan="2" | 0 = | | colspan="2" | 0=Next, 1=Previous | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 331: | Line 285: | ||
{| class="wikitable" | ===WhilePlaying=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''WhilePlaying''' | |||
|- | |- | ||
| | | colspan="2" | Blocking function that waits for module to stop being busy. Returns true if the module is still busy and the timeout period has passed. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Timeout | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | colspan="2" | Number of milliseconds to wait, 0=WaitForever | ||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Connections | ||
|- | |- | ||
|- | |- | ||
| Line 388: | Line 346: | ||
| colspan="2" | Controls if we are monitoring the busy pin or not. Used by the IfBusy component macro. | | colspan="2" | Controls if we are monitoring the busy pin or not. Used by the IfBusy component macro. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Simulation | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:36, 13 July 2026
| Author | Matrix TSL |
| Version | 1.0 |
| Category | Audio Output |
DFPlayer (MP3 / WAV) component
A small module capable of streaming MP3 and WAV audio files from a micro SD card. Controlled via a serial UART connection to the microcontroller.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_DFPlayer.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_DFPlayer.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No Examples here yet
Macro reference
GetError
GetReplyByte
| GetReplyByte | |
| Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code. | |
| Index | |
| Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB | |
| Return | |
Initialise
| Initialise | |
| Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros. | |
| Return | |
IsPlaying
| IsPlaying | |
| Checks to see if the last played track is still playing | |
| Return | |
IsReplyAvailable
| IsReplyAvailable | |
| Checks to see if new data has been received from the module. Returns true when new data is available. Collect the data using the GetReplyByte macro. | |
| Return | |
PausePlayResetStop
| PausePlayResetStop | |
| Allows the current playing track to be paused, restarted or reset | |
| Mode | |
| 0=Pause, 1=Play, 2=Reset, 3=Stop | |
| Return | |
PlayTrack
SendCommand
| SendCommand | |
| Sends a command to the DFPlayer module | |
| Command | |
| Command code byte | |
| Feedback | |
| Collect feedback byte: Range 0-1 | |
| Parameter | |
| 16-bit Parameter | |
| Return | |
SetEQ
| SetEQ | |
| Sets the equaliser mode for the module | |
| EQMode | |
| Range: 0-5 0=Normal, 1=Pop, 2=Rock, 3=Jazz, 4=Classic, 5=Bass | |
| Return | |
SetVolume
| SetVolume | |
| Sets the volume level for the module | |
| Volume | |
| Range: 0 (min) - 30 (max) | |
| Return | |
SkipTrack
| SkipTrack | |
| Jump to the next or previous track | |
| Direction | |
| 0=Next, 1=Previous | |
| Return | |
WhilePlaying