{"id":20526334,"url":"https://github.com/powerbroker2/dfplayermini_fast","last_synced_at":"2025-08-20T18:32:34.885Z","repository":{"id":38375403,"uuid":"111759519","full_name":"PowerBroker2/DFPlayerMini_Fast","owner":"PowerBroker2","description":"Fast and easy to understand Arduino library to use the DFPlayer Mini MP3 module from DFRobot.com. This is a huge improvement (both in terms of execution speed and simplicity) to the standard library provided by DFRobot.com.","archived":false,"fork":false,"pushed_at":"2021-08-26T00:16:13.000Z","size":1074,"stargazers_count":205,"open_issues_count":23,"forks_count":31,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-12-10T22:01:01.380Z","etag":null,"topics":["arduino","arduino-library","audio","dfplayer","dfplayer-mini","dfplayer-mini-mp3","dfplayermini","dfplayerminifast","dfrobot","fast","mp3","music","sound","wav"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PowerBroker2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-23T03:36:59.000Z","updated_at":"2024-12-01T00:49:38.000Z","dependencies_parsed_at":"2022-09-15T12:22:07.094Z","dependency_job_id":null,"html_url":"https://github.com/PowerBroker2/DFPlayerMini_Fast","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerBroker2%2FDFPlayerMini_Fast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerBroker2%2FDFPlayerMini_Fast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerBroker2%2FDFPlayerMini_Fast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerBroker2%2FDFPlayerMini_Fast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PowerBroker2","download_url":"https://codeload.github.com/PowerBroker2/DFPlayerMini_Fast/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230445926,"owners_count":18227060,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-library","audio","dfplayer","dfplayer-mini","dfplayer-mini-mp3","dfplayermini","dfplayerminifast","dfrobot","fast","mp3","music","sound","wav"],"created_at":"2024-11-15T23:13:44.806Z","updated_at":"2024-12-19T14:06:57.751Z","avatar_url":"https://github.com/PowerBroker2.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DFPlayer Mini Fast\n[![GitHub version](https://badge.fury.io/gh/PowerBroker2%2FDFPlayerMini_Fast.svg)](https://badge.fury.io/gh/PowerBroker2%2FDFPlayerMini_Fast) [![arduino-library-badge](https://www.ardu-badge.com/badge/DFPlayerMini_Fast.svg?)](https://www.ardu-badge.com/DFPlayerMini_Fast)\u003cbr /\u003e\u003cbr /\u003e\nFast and easy to understand Arduino library to use the DFPlayer Mini MP3 module from DFRobot.com. This is a huge improvement (both in terms of execution speed and simplicity) to the standard library provided by DFRobot.com. \n\n[\u003e See the documentation \u003c](https://powerbroker2.github.io/DFPlayerMini_Fast/html/index.html)\n\n\n## Important Notes\nIf you use the playFromMP3Folder() or playAdvertisement() functions, the files to be played must be organised in an extremely precise manner. The \"MP3 Folder\" must be in the root of the storage device (such as a MicroSD card) and it must be called \"mp3\". The folder name is probably not case-sensitive. Likewise, the \"Advertisement\" folder used for short interruptions to main audio playback must also be in the root of the storage device, and it must be called \"advert\". In addition, audio filenames must be prepended by a zero-padded 4-digit number if the files are in the root or \"mp3\" folders. If the files are played from folders other than root or \"mp3\", the folder names must be zero-padded 2-digit numbers while their contents must be audio files with names prepended by a zero-padded 3-digit number.\n\nIf you are using multiple DFPlayers with SoftwareSerial, it is necessary to make your SoftwareSerial instance listen (i.e. SoftwareSerial.listen()) before calling queries such as .isPlaying() or .currentVolume().\n\n## Library API:\n```c++\nbool begin(Stream\u0026 stream, bool debug, unsigned long threshold=100);\n\nvoid playNext();\nvoid playPrevious();\nvoid play(uint16_t trackNum);\nvoid stop();\nvoid playFromMP3Folder(uint16_t trackNum);\nvoid playAdvertisement(uint16_t trackNum);\nvoid stopAdvertisement();\nvoid incVolume();\nvoid decVolume();\nvoid volume(uint8_t volume);\nvoid EQSelect(uint8_t setting);\nvoid loop(uint16_t trackNum);\nvoid playbackSource(uint8_t source);\nvoid standbyMode();\nvoid normalMode();\nvoid reset();\nvoid resume();\nvoid pause();\nvoid playFolder(uint8_t folderNum, uint8_t trackNum);\nvoid playLargeFolder(uint8_t folderNum, uint16_t trackNum);\nvoid volumeAdjustSet(uint8_t gain);\nvoid startRepeatPlay();\nvoid stopRepeatPlay();\nvoid repeatFolder(uint16_t folder);\nvoid randomAll();\nvoid startRepeat();\nvoid stopRepeat();\nvoid startDAC();\nvoid stopDAC();\nvoid sleep();\nvoid wakeUp();\n\nbool isPlaying();\nint16_t currentVolume();\nint16_t currentEQ();\nint16_t currentMode();\nint16_t currentVersion();\nint16_t numUsbTracks();\nint16_t numSdTracks();\nint16_t numFlashTracks();\nint16_t currentUsbTrack();\nint16_t currentSdTrack();\nint16_t currentFlashTrack();\nint16_t numTracksInFolder(uint8_t folder);\nint16_t numFolders();\n\nvoid setTimeout(unsigned long threshold);\nvoid findChecksum(stack\u0026 _stack);\nvoid sendData();\nvoid flush();\nint16_t query(uint8_t cmd, uint8_t msb=0, uint8_t lsb=0);\nbool parseFeedback();\n\nvoid printStack(stack _stack);\nvoid printError();\n```\n\n## DFPlayer Mini Pinout:\n![550px-Miniplayer_pin_map](https://user-images.githubusercontent.com/20977405/54732437-2623ae80-4b6a-11e9-9005-768ae5a92281.png)\n\n## DFPlayer Mini Pin Description:\n![Pin_map_desc_en](https://user-images.githubusercontent.com/20977405/54732438-26bc4500-4b6a-11e9-8969-3d2927a5d513.png)\n\n## Example Wiring Diagram:\n![550px-PlayerMini](https://user-images.githubusercontent.com/20977405/54732436-2623ae80-4b6a-11e9-91a7-fe4cce416eaa.png)\n\nFor more info: https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowerbroker2%2Fdfplayermini_fast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowerbroker2%2Fdfplayermini_fast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowerbroker2%2Fdfplayermini_fast/lists"}