Breakout Board for VS1000D

Replacement: None. We are no longer carrying this breakout board in our catalog. This page is for reference only.

This is a breakout board for the VS1000D -- a single-chip Ogg Vorbis (license-free audio codec) player with USB and NAND-FLASH interfaces. Perfect for any audio application, this board works as a standalone Ogg Vorbis player out of the box. Just connect it to USB, drag and drop Ogg Vorbis files to the device. Then disconnect from the USB and power from a different source, and press play! Alternatively, the board can easily be embedded in any project that needs audio. The 0.1" header on the side allows easy access to the control lines, so the audio files can be triggered with just a couple of GPIO lines! All control features (power, play, pause, forward, back, volume, random on/off) are accessible. The on-board NAND flash chip behaves just like a flash drive, and the chip can drive a pair of headphones or small speaker with no extra power source.

The breakout board includes a 256MB external NAND-FLASH IC, 5 momentary push buttons for playback and volume control, 3.5mm audio jack and a miniUSB connector. Access to UART, SPI, NAND-FLASH, and power supply pins is provided by the 0.1" pitch headers.

Power can be supplied to the board by an external source connected to the Vcc and GND pins or through USB. Power for the I/O, digital, and analog supplies is internally regulated by the VS1000D.


  • VS1000D Ogg Vorbis player IC
  • 2 gigabit (256 megabyte) external NAND-FLASH IC
  • Full-speed USB interface
  • 3.5mm audio jack
  • Playback control buttons/breakout lines:
    • Power/ Pause / Play
    • Volume control
    • Next song / Fast Forward
    • Previous Song / Rewind
    • Random Play

Breakout Board for VS1000D Product Help and Resources

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Same question as Tpmcd actually. I want to be able to drop a bunch of short audio files onto the flash device and then issue an instruction to play a specific audio file, via a serial connection.
    Using the GPIO lines to manually select the file would not be any good for me as the delay in getting to a file may be too great.
    Can it be done with no mods?
    After reading the datasheet it looks like it can be done with a firmware change. Just wondering if it can be done without one :-)

    • Hi,
      Found out how to do this using the file as a resource (avail on VLSI website).
      The following is possible through the UART interface:-
      - "PSONGNAME\n" plays song with a specific name
      o the selected file number is returned (as one byte)
      or 0xff is returned if the file was not found.
      o when file has been played to the end (or play stopped) "w\n" is returned

  • simmers / about 8 years ago / 1

    Time for a little rant, which will likely fall on deaf ears because this product has been retired...

    I've spent a long time working on a project centred around this board. My application is simple: I wanted to trigger the device with a PIR sensor when somebody enters a room, and have a single file play over external speaker. Think, music or scary noises. Whatever tickles your fancy.

    I identified that the board's IO is 3.3v and the UART RX pin was pulled high by default. I modified the firmware to listen for PIR pulldowns on the RX pin. All worked wonderfully in my USB-powered test environment, but when powered by a 5v DC wall adapter everything went pear-shaped.

    Turns out that this chip has a fundamental issue, which is described quite nicely here: In a nutshell, the sparkfun breakout board design assumes that you are using headphones. And, in order to couple this board with an external (low cost) amplifier you need quite a bit of external circuitry between the mini-jack and your amplifier. Argh...

    • Member #540401 / about 7 years ago / 1

      Maybe this Arduino compatible board with VS1000 can be of use for you? Line out and headphones (both stereo) + integrated 2.95W class D mono amplifier + accelerometer:

  • simmers / about 9 years ago / 1

    I spent some time putting together a toolchain to program this board in Linux. Right now, if you have a FTDI or other USB-to-serial cable, then you can program this board without Linux. I'm working right now to see if I can put together a FTDI-less solution using wine and vstool.exe. I'll update the README on github if I find a soluion.

    Here's a link to the toolchain code:

    Cheers Andrew

  • Member #413892 / about 10 years ago * / 1


    Try to find some informations about this product Breakout Board VS1000D, but it's very difficult.

    Seems Sparkfun have never provide some clear informations about this product.

    You can find some when googling, but it's very, very poor...

    on this page, there is 4 links for informations, 2 of them rely to the manufacturer website. The 2 others are schematics.

    On Sparkfun's forum there is only 2 posts related to this product : post 1 post 2

    In last one you can read

    See -> support -> software -> vs1000d examples[/quote] !

    The only clear information come from...Watterott !

    3 years ago Stephan Watterott have posted a link to a dedicated software to update the firmware. here And it's simple.

    I assume that I am a really beginner in electronic and microcontrollers, but :

    • Is it normal that I can't find what's D0, D1, D2, D3, D4 means ? (I have some ideas)
    • On the posts on this page they talk about jumper 1, but it's not clear. What is the function of this jumper ?
    • 90% of posts talk about UART control, what about SPI?
    • Is it possible to have some SPI examples ?
    • Can't we have access to the original firmware ?
    • It seems that you have a special trick to do if you want to update the firmware several times. (But I can't find out where I've read it)

    3 years ago Jimbo wrote

    Hey Skye, You’re right, the posted programmer’s guide and the datasheet are both specific to the VS1000D chip itself. The VS1000 and the flash IC make up like 99% of the features of the board, so that documentation should have most of the information you’ll need. For simple use make sure you check out section 7.4 of the datasheet.

    OK, but you made a board for this chip, can't you provide informations for people who have bought the board ?

    Anyone from Sparkfun ?


  • djdance / about 10 years ago / 1

    Is it possible to input audio, compress to OGG and send stream to arduino (for example)?

  • thesite / about 11 years ago * / 1

    Can this be run on 3.3 volts?

    • qcard / about 11 years ago / 1

      Looking at the datasheet, I don't think so. You need at least 4V supply, this is for USB compliance and the internal regulators.

      • mkanoap / about 10 years ago / 1

        It requires 5 volts to power it, but the other pins require 3.3 volts!

  • thesite / about 11 years ago * / 1

    Is it possible to use this with a SD card for data/music storage?

  • JayCollett2 / about 11 years ago / 1

    Also, any way we can get the eagle files for this board?

  • JayCollett2 / about 11 years ago / 1

    I purchased these chips from you, is there any way I get get the firmware you loaded on them for this breakout board?

  • russdx / about 12 years ago / 1

    Is there a busy line any where that indicates when a file is playing

  • Evil Genius jr. / about 12 years ago / 1

    Before I program the UARTCONTROL firmware I have a couple questions.
    1. Do the buttons still work with the UARTCONTROL firmware?
    2. Can I replace the UARTCONTROL firmware with the original firmware? If so where can I find the original firmware?

    • We have the original firmware, you can request it from us. I am not familiar with the other firmware. You can always test it to check to see if it works for you.

      • simmers / about 9 years ago / 1

        Is there any difference between your firmware and usbspk.c from here:

        I recently flashed my breakout with this firmware, and its behaviour is quite similar to the stock firmware.

        I also have written up how to do this here:

    • qcard / about 11 years ago / 1

      The physical buttons on the board stop working with the default UARTCONTROL firmware. If you take a look at the code, the button routine is commented out, so it probably could be put back in, but you would need to compile.

  • df / about 13 years ago / 1

    i'm having so much trouble getting this board to work...ordered three of them, one dead out of the box, and the other shorted out from the unit's "no-eject" problem. (whenever the unit is ejected, the computer doesn't read the ejection, and gives you the same prompt over and over again. thus it cannot safely be ejected...i think this is how my device got totally trashed.)
    i'm trying to set this up as the audio component, such that when the box is opened, music starts playing. it should be possible to control button functions with external switches, but i can't even get the device working. grah!

  • core / about 13 years ago / 1

    What does JP1 do?
    The SCH says "for usb audio" but what does that mean?
    Some one posted:
    "link J1 behaves in the same way. Link Off = Mass storage mode. Link on = Audio player device. "
    But I've left JP1 open and I can play audio (audio device) or dump file to the device (mass storage). If you close JP1, then D6 will go high.
    So then does that mean by closing jp1 you will simply disable the ability to dump files onto the player via USB?
    Is that the only point - basically it is like a write protect?

  • core / about 13 years ago / 1

    Has anyone compiled the UART code to incorporate a new keymapping? Looks like some work on it has been commented out already in the code.
    I'd like to try it so that the uart interface and the buttons work at the same time.
    Anyone else already tried this?

  • Stephan Watterott / about 13 years ago / 1

    We made a description for flashing the UART Firmware into the VS1000D Board.
    Please take a look at:

  • Poldi / about 13 years ago / 1

    Could you pleas tell me / us how you get the problems fit?
    I don't know how to program it right now...

  • core / about 13 years ago / 1

    So if you program it with the UART code from VLSI's website can you just use a terminal program to test it?
    I programmed the UARTCONTROL - but it prints out "fat" for me when I turn it back on with a terminal programm connected, but then it new lines and prints a "3fat" then a bunch of garbage characters... and then it doesn't let me type or respond. Not sure why.
    I'm at 115200 etc. com port works to d/l other code etc.
    Any things to look out for specifically? Are there bugs in the demo code or anything?
    Should one not use flash.bat ?

    • core / about 13 years ago / 1

      I cleared flash. Programmed the image to flash again.
      Serial seems OK because it prints "NOT" constantly since the flash was not formatted. When USB connected it prints "a".
      This agrees with what it should do.
      However, when it is supposed to be in uart command mode it doesn't seem to take any input from the terminal.
      I just get the names of the files (onef, twof, threef) and garbage:
      3FTWOF OGG 7<7<Xp;???]
      FONEF OGG 7<7<Xp;??]

      • core / about 13 years ago / 1

        OK, figured it out.
        (boy its dead around here...)

        • qcard / about 11 years ago / 1

          For anyone in the future having similar problems, the directory list it spits out on startup does look garbled, but everything still works.

          To get it playing something you need to send 'p0\r\n'. This will play the first file. Note: CR + LF characters.

        • qcard / about 12 years ago / 1

          Would you mind sharing how you got it to work core?
          I have the same problem. The uart code does not take any input from a terminal.

  • core / about 13 years ago / 1

    Hi Jimb0
    From what I can tell so far it arrives with no boot code on the nandflash. I performed a 'nandprog' selecting #2 write ident (no boot code) and nothing seemed to change on the device.
    Is the player application not removable from the device itself? (I.e. do we just do that above step to restore the device to how you guys ship it in button player mode? Or is there code to restore it to the button player state you ship it as?)

  • Poldi / about 13 years ago / 1

    Hi all, hello SeanB,
    thanks for the info.
    But i still have a question because i can?t communicate with the board.
    I have now removed R5 to get access to the ram but i don?t know witch file i have to copy to it from the
    And when i try to use the VS1000 Programming Tool i get this error-message:
    "VS10xx device is not found. Please connect a VS10xx device to USB port with booting from SPI/NAND flash disabled so VS10xx ROM code can create a "NO_FLASH" ramdisk."
    Can anybody pleas help me on how to connect the board via the serial port to control it like "VJay" describes?
    Unfortunately i can not directly write a mail to vjay :-(

  • SeanB / about 13 years ago / 1

    Poldi, goto VLSI website, under one of there sections they explain how to download the firmware and upload it correctly. I still want know which NAND flash chip to use that I can find off of mouser or digikey :( I cant find the ST one that this board uses.

  • Poldi / about 13 years ago / 1

    Hello all!
    I've got a question.
    I want to connect my VS1000 to an Arduino board and control it via serial commands.
    If I have understood everything I need to upload the UARTCONTROL020 firmware to the board.
    But how can I transfer it to the board? Do I need a programmer? Or I can establish the communication via the Arduino board by using the FTDI chip while the arduino is in reset mode?
    I am grateful for every suggestion.
    Greetings from Germany.

  • SeanB / about 13 years ago / 1

    Does anyone know what other types of NAND Flash will work this the basic firmware? I tried looking on Digi,and Mouse, cant seem find large quantities of this type of memory in any 64~128mb siez?

  • SeanB / about 13 years ago / 1

    I just started looking into using this VS1000 decoder chip in my project. I understand they have a example program that will use the UART as an interface to control the player.
    Does anyone know when using the serial example program on this chip, if I need to "read" any of the information coming out of the chip? I would prefer to just send serial bytes to the player chip and disregard any of the information comes back out of it. (to simplify my design, and having lack of more hardware UARTs).

    • I am using the serial port code example code. Even though I am using the response data from the chip (to confirm that my data was received correctly etc.), there is actually no need to use the data. Once you have tested that your TX commands work (using Hyperterminal for example), then you could ignore the data TX'd from the chip.
      You will of course not receive data that is pretty useful, such as being informed when a file has finished playing. But that's up to you.
      Warning: When using Hyperterminal note that the chip outputs data in none ASCII mode for numerical values.

  • Caution when using UARTCONTROL020 Firmware!
    A PCB modification is required if you wish to keep re-flashing the firmware (otherwise you can only program one time only). R5 needs to be removed to re-program the VS1000. Then re-fit to Boot from newly programmed flash.
    I've fitted a jumper link in series and it works a treat.
    Might be a nice addition to the PCB for any future PCB re-spins?

  • tpmcd / about 13 years ago / 1

    Okay, I have my board in hand. If I plug it into a USB port (no other connections at present) and press the 'power' button the LED comes on and in a couple of seconds the computer shows a storage device that has a file named Test_Ogg_File.ogg on it. Cool.
    Based on the VLSI docs I believe that it will not play audio if the USB cable is connected. Correct?
    Do I need to put a jumper across JP1 to be in player mode vs disk drive mode?
    Once powered on briefly bringing POWBTN high starts it playing, briefly bringing POWBTN high again pauses it?
    Any of the signals tell you if it's playing or paused? Lacking that is there some sequence you can do to force it into a known state?

    • Got mine at hand now too. Although I've swapped the code for the UARTCONTROL020 firmware instead of the default button player (I want to ask it to play specific files thru' UART), the link J1 behaves in the same way. Link Off = Mass storage mode. Link on = Audio player device.
      The power button is a Power/Play/Pause button. The buttons are scanned 16 times per second so this gives an idea of the rate at which you can flick thru' tracks to the one you want played.
      No such problems with the UART code tho' ;-)

  • yomp / about 13 years ago / 1

    So I'm a little confused about the D (D0 - D4) lines. Are those just a breakout of the same lines the buttons control?

  • Triggering a specific file to play can be done very quickly using the control lines. For example, to play the seventh file, flash the "play" signal high and then flash then "next" signal high six times. This will play the seventh file with very little delay. However, if you want to interact with the board in a different way (e.g. UART) or you want to change its behavior, VLSI has several code examples and guides to help:

  • tpmcd / about 13 years ago / 1

    Can you interact with the board via the USB/SPI/UART? i.e.--is it possible to have multiple audio files loaded and send a command that says something like "play audio file #7"?

    • Hi,
      Found out how to do this using the file as a resource (avail on VLSI website).
      The following is possible through the UART interface:-
      - "PSONGNAME\n" plays song with a specific name
      o the selected file number is returned (as one byte)
      or 0xff is returned if the file was not found.
      o when file has been played to the end (or play stopped) "w\n" is returned

      • tpmcd / about 13 years ago / 1

        Excellent! For proof of concept playing a single file would be okay but if I can command a specific file (1 of about 6) to be played I may be able to let real users play with it.

  • crimsonflame / about 13 years ago / 1

    Thinking about purchasing. Are the Audio output lines broken out to something other than the jack?

    • Pearce / about 13 years ago / 1

      Unfortunately they are not broken out to anything other than the audio jack.

  • Skye / about 13 years ago / 1

    I am a bit confused. Perhaps somebody can help...
    The programmer's reference and datasheet would appear to be for the chip itself and not for the breakout board product.
    What software comes on the VS1000D breakout board? From the product description it would seem that something must be programmed to allow for the simple button controls on the unit. Is there any documentation for this code or is the preloaded source code available?

    • jimblom / about 13 years ago / 1

      Hey Skye,
      You're right, the posted programmer's guide and the datasheet are both specific to the VS1000D chip itself. The VS1000 and the flash IC make up like 99% of the features of the board, so that documentation should have most of the information you'll need. For simple use make sure you check out section 7.4 of the datasheet.
      The VS1000D is loaded with VLSI's default firmware, which is described in the two documents above. We have the board set up to take advantage of all of the features in their firmware. If you connect the USB it'll act just like a mass storage device. Load it with songs and use it just like an MP3, err Ogg-Vorbis, player.
      -techsupport at sparkfun dot com

  • RAM / about 13 years ago / 1

    Cool thing to play around !!
    It would be nice if a software with a nice GUI is put up to interact with it making things simpler as well as fun !!

Customer Reviews

No reviews yet.