Skip to content

pschatzmann/arduino-vs1053

Repository files navigation

VS1053 library

This is a Arduino library for breakout boards using the VS1053 and VS1003 Chip by VLSI Solution: A powerful Ogg Vorbis / MP3 / AAC / WMA / FLAC / MIDI Audio Codec chip.

vs1053

The library enables the possibility to play audio files. Eg. it may be a base to build your own webradio player or different audio device. I recommend to use this library together with my arduino-audio-tools with the related examples.

This is an interesting way to output audio information for all microcontrollers that do not support I2S or do not have the power or resources to decode audio files.

Functional highlights:

  • Output of decoded audio
  • Reading of pcm data from microphone / aux input
  • Methods to manage volume, treble, bass, earphones
  • Support for real time MIDI
  • Flexible SPI Design
  • Functioinality implemented in arduino_vs1053 namespace
  • Supports Arduino
  • Supports PlatformIO
  • Supports cmake

Logger

The application has a built in logger that uses Serial as output. The default log level is Warning. You can initialize the Logger with

VS1053Logger.begin(Serial, VS1053Info); // use VS1053Debug, VS1053Info, VS1053Warning, VS1053Error

Documentation

Here is the relevant class documentation.

You can find further information in the Wiki and in my blogs...

Pinout

The major disadvantage of the VS1053 based modules is the number of pins that need to be connected and the fact that they might be named differently. The module is using SPI to communicate, therefore consult the SPI documentation of your microcontroller to find the correct SPI pins.

VS1053 Comment
SCK SPI Serial Clock
MISO SPI Master Input ← Slave Output
MOSI SPI Master Output → Slave Input
(X)CS SPI Chip Select/ Configured in Sketch
(X)DCS Data Chip Select: Configured in Sketch
DREQ Data Request: Configured in Sketch
XRST Hardware Reset Pin: low=reset
5V Power Supply
GND Ground
  • The XRST pin can be configured in the sketch or you can connect it to RST of your microcontroller: XRST must be high for the module to work.
  • Some boards provide a SD card and therefore have an aditional CS pin.

Credits

Based on library/applications:

License

Copyright (C) 2017
Licensed under GNU GPLv3