This page presents a library to use a SMARTWAV intelligent embedded audio processor from vizic technologies: the easiest way to add High Quality Stereo Sound to any project: ( The Audio module features are :

  • Pre-Amplified Dual channel Stereo Out with 8/16bit, stereo/mono, and up to 48khz sampling rate, CD quality.
  • Integrated Digital Volume Control with 255 steps.
  • Long file names and folder management support.
  • Serial mode or Stand-alone mode.
  • On board stereo 3.5mm plug for headphones, or line out.
  • Play speed control: 0.5X, 1X, 1.5X and 2X. (Fast Forward).
  • Easy 5 pin interface to any host device: VCC, TX, RX, GND, RESET.
  • On-board uSD/uSDHC memory card socket with FAT (windows PC), Support up to 32GB for storing thousands of songs/audio WAVE files. No need of special/rare file format.
  • Sleep mode.
  • Active out pin for led indicator.
  • Input pin for mode selection: VCC-serial, GND-stand-alone.
  • 9600 standard Baud Rate speed, 8 bits, no parity, 1 stop bit.
  • 5V and 3V3 I/O compatible.
  • 3V3 power supply, ultra-low current consumption.
  • compatible with any microcontroller(8051,pic,AVR,ARM,mbed,FPGAs,Arduino,PC) and development boards with a UART.

SMARTWAV intelligent embedded Audio processor unit



SMARTWAV + earphones

SMARTWAV on a breadboard


Connecting the SMARTWAV

  • You will need to power the module with 3.3V.
  • I/O pins are 3.3V I/O and 5V tolerant for serial communication.
  • If you use an external power source, make sure the mbed ground and external power ground are linked otherwise the serial commands will not be received correctly by the module.
  • Use one of the three Serial pairs of pins (p9, p 10) (p13, p14) or (p27, p28) from the mbed to connect them with the SMARTWAV(up to 3 SMARTWAVs can be connected simultaneously to mbed!).
  • Use one pin for reseting the module.
  • The way to use the library is SMARTWAV sWav(p13,p14,p15); (TX,RX,Reset)

SmartWAV Typical connections...

-Serial Mode:

SmartWAV Serial Mode

-Stand-Alone Mode(no controller needed):

SmartWAV Stand-Alone Mode

SMARTWAV mbed Library

You can import the SMARTGPU mbed Library from here :

Import librarySMARTWAV

SMARTWAV mbed Library for use with the SMARTWAV audio processor,

Once it is imported to your program folder, just insert the #include "SMARTWAV.h" in your main.cpp and create the object with SMARTWAV sWav(p13,p14,p15); (TX,RX,Reset)

Example Code


#include "mbed.h"
#include "SMARTWAV.h"

SMARTWAV sWav(p13,p14,p15);    //(TX,RX,Reset);
int main(){  
 char playList[100];          //array that stores all the microSD card audio files 
 char folders[100];           //array that stores all the microSD card folders/Dirs 
 char songName[10];           //array that stores the audio file name

 sWav.reset();                //physically reset SMARTWAV
 while(1){                       //loop forever
  sWav.playTracks();                //Play any audio track stored on the microSD card root path
  wait(20);                         //let it play some seconds                             
  sWav.pausePlay();                 //Pause track 
  wait(2);                          //let it play some seconds
  sWav.pausePlay();                 //resume track 
  wait(2);                          //let it play some seconds
  sWav.rewindTrack();               //rewind track
  wait(2);                          //let it play some seconds
  sWav.nextTrack();                 //jump to next track
  wait(2);                          //let it play some seconds
  sWav.stopTrack();                 //stop playing track
  sWav.playTrackName("lovers");     //play track named "Lovers" stored on the microSD card
  wait(20);                         //let it play some seconds
  sWav.getFileName(name);           //get current playing song name
  sWav.stopTrack();                 //stop track
  sWav.getFolderList(folders);      //get folder list on microSD card
  sWav.getFileList(playList);       //get audio files/song list on microSD card  
  sWav.setFolder("Rock");           //enter "Rock" folder
  sWav.playTracks();                //Play any audio track stored on the microSD card 0:/Rock/ path
  sWav.playSpeed(TWOX);             //set play speed to 2X
  sWav.continuousPlay(ENABLE);      //enable continuous play


SmartWAV Stand-Alone Module:

SmartWAV MediaPlayer like with mBed

Images and microSD contents could be downloaded from here:

Demos & Source Code

To make it simpler, you can import those demos 100% ready to compile and load:

SmartWAV controlled directly from a PC using mbed's USB serial port:

Import programSWAVandPCserial

SMARTWAV Audio processor, control the SmartWAV module with communication to a PC via mbed USB Port under an Hyperterminal session 9600/1 stop bit/ no parity/ no flow control

SmartWAV and SmartGPU showing a "windows media player" demo application using mbed:

Import programMediaPlayerSWav

SMART WAV audio processor connected together with the SMART GPU graphics processor, a \"windows media player\" application is demostrated, be sure to download demo\'s used files to the microSD card.

Work in progress

  • The library need some extra documentation, but it's 100% functional.
  • More demos and example applications will be uploaded.
  • Be sure to post any bug in case of.


All wikipages