VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Designing hardware and software for systems that use the VS1010 MP3 Audio DSP Microcontroller.
Post Reply
User avatar
Panu
VSDSP Expert
Posts: 2821
Joined: Tue 2010-06-22 13:43

VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by Panu »

Dear VS1010 users,

Here's an ultra optimized VS1010 based demo board for applications such as Car Stereos, FM Radios, MP3 Players, Clock Radios, Audio Guided Tours or Audio Books. It's a solution almost completely based on using just the VS1010, almost zero external ICs are absolutely required to implement this design, so it's very low cost. But still, great quality, great functionality. And it can be used as a basis for developing new VS1010 products, just leave out the bits you don't require and take what you need. This board does:

- MP3 playback from SD card with incredibly fast indexing (indexes 20,000 mp3 files in about 6 seconds)
- MP3 playback from USB flash, implements USB host.
- USB DAC and USB mass storage modes.
- FM Radio input using low cost FM module.
- 2 stereo line inputs using VS1010 built-in ADC.
- Custom LCD, driven with GPIO pins, no LCD controller needed.
- Real time clock

Watch demo on Youtube:
vs1010-lcd-mp3-radio-youtube-demo.jpg
vs1010-lcd-mp3-radio-youtube-demo.jpg (85.04 KiB) Viewed 2082 times


IC:s in this design:

- VS1010 (Required)
- SPI Flash (could be left out if firmware is stored in the SD card).
- 2 dual operational amplifiers (optional, improves sound quality).
- TEA5767 FM radio module (required for FM radio).
- D class amplifier (not required if no speaker drive needed).

IC:s NOT NEEDED in this design:

- No external RAM, VS1010 has enough ;)
- No AD converter, VS1010 internal ADC is used.
- No DAC, VS1010's award winning crystal locked Hi-Res DAC is used.
- No LCD controller, custom LCD is driven with VS1010 GPIO pins.
- No USB or USB host controller, everything is handled by VS1010.
- No microcontroller, VS1010 runs all binaries.
- No headphone amplifier, VS1010 internal headphone amplifier can be used
- No RTC chip, VS1010 internal real time clock is used (battery required)


The application consists of several executables that are switched as needed. This way each different major mode can use all the memory of the VS1010. Here are brief descrioptions for each executable.

startfm.dlx - the loader
Starts the application. Extends program memory by combining the normal code area with FC extended code area. Loads USB Host (usb flash stick) driver (usbhost4). Runs each executable as indicated by app.mode. Takes over TIMER2 and scans for POWER button. Long press of power button resets the system to runlevel 17 : fmsetup mode.

fmsetup.dlx - initializer, time setting, crash recovery
This checks that the application settings struct is sane. Allows user to set the RTC time. Long press of B4 goes to runlevel 4 : USB SPI flash writer. Long press of B5 goes to runlevel 2 : USB SD card writer.

fmradio.dlx - FM radio and line inputs
Configures the FM102 radio receiver module (TEA5767) . Uses extended magic to get remarkably good quality stereo sound from VS1010 SAR inputs. Can handle the FM radio and two stereo line inputs.

lcdmp3.dlx - SD card and USB flash MP3 player
Checks app.mode to see if it plays from SD card or USB flash. Extremely fast indexing of MP3 files - Can index 20,000 MP3 songs in about 6 seconds. Saves current song and position.

usbhost4.dlx - the USB host mass storage driver
Enables reading files from USB flash memory. Automatic restart and error recovery from most error conditions.

lcdmsc.dlx - LCD enabled USB mass storage
Can be used to write MP3 files to SD card from PC using USB. Up to 1.5 megabytes/sec transfer speed - focus on reliablity, not speed. Button 6 exits to FM radio mode.

lcduac.dlx - LCD enabled USB DAC
Robust and reliable USB DAC. Uses the simplest USB audio class 1 descriptors possible. It should be compatible with just about anything. Single sample rate; 48 kHz, 16 bits. Uses USB 1.1 fast speed (12 MHz). The descriptor does not publish a mixer interface, but the code can handle it.

savesettings.dlx - saves application settings to SPI flash
The ROM console area (x:111-x:134) is used for persistent storage of application settings across different executables. Saves settings to the last SPI flash block before the S: FAT system disk so there's virtually no chance of it corrupting the SPI flash during write.

loadsettings.dlx - loads application settings from SPI flash
The ROM console area (x:111-x:134) is used for persistent storage of application settings across different executables. Loads settings from the last SPI flash block before the S: FAT system disk.

power.dlx - power saving functionality
Used to switch the power off. Implements VS1010 power saving options using command line parameters. Can be further used to optimize power consumption.

The attachments below contain the full set of source codes and executable binaries for the VS1010. Schematics coming soon. Please write to sales@vlsi.fi if you would like to purchase the board or samples of the LCD displays.
Attachments
vs1010_radio_lcd_v111.pdf
Schematics, version 1.1, see updates to the firmware below.
(80.79 KiB) Downloaded 162 times
ENH-SS021218-01-YTPRGP(2020.11.10)(1).pdf
LCD datasheet, please contact leanna@rxxdisplay.com for volume inquiries
(350.12 KiB) Downloaded 139 times
FMRadio_RC0.zip
Full release of VSIDE source code and VS1010 DLX executables
(400.45 KiB) Downloaded 164 times
User avatar
Panu
VSDSP Expert
Posts: 2821
Joined: Tue 2010-06-22 13:43

Updates for version 1.1 PCB

Post by Panu »

These executables have been changed to support additional features in PCB version 1.1

lcdmp3.dlx: controls USB A connector power using pin GPIO2.15.
startfm.dlx: sets backlight LED pin at PWM pin to a low level.

-Panu
Attachments
arch-LCDMP3-2021-03-08-14-29-RC1-PCBv11.zip
Source code. VSIDE Solution. Contains executable lcdmp3.dlx.
(154.11 KiB) Downloaded 124 times
arch-startfm-2021-03-08-14-29-RC1-PCBv11.zip
Source code. VSIDE Solution. Contains executable startfm.dlx.
(23.19 KiB) Downloaded 121 times
User avatar
Henrik
VLSI Staff
Posts: 1239
Joined: Tue 2010-06-22 14:10

Re: VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by Henrik »

IMPORTANT NOTICE!

The project package FMRadio_RC0.zip contains a directory called additions-to-libvs1010/ and a file called libvs1010-fmradio-additions-extract-to-libvs1010-folder.zip. They contain include files not available in VSIDE releases up to v2.47.

However, the contents of these two packages are now included in the new VSIDE v2.48 which we released here:
viewtopic.php?p=14108#p14108

We strongly recommend, if you want to edit the projects, that instead of copying the files on top of your old VSIDE installation, you install the new VSIDE v2.48 (or newer, if you are reading this in the future).

Kind regards,
- Henrik
Good signatures never die. They just fade away.
George
User
Posts: 4
Joined: Fri 2021-12-03 11:03

Re: VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by George »

Hello Panu,
I need MP3 player with microSD as input and SPDIF as output. Without display, radio and any keys.
Can I use this soft for it?
Last edited by George on Fri 2021-12-03 11:32, edited 2 times in total.
User avatar
pasi
VLSI Staff
Posts: 1833
Joined: Thu 2010-07-15 16:04

Re: VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by pasi »

George wrote: Fri 2021-12-03 11:07I need MP3 player with microSD as input and SPDIF as output.
You can use any uSD player, then add SPDIF output by the method described in viewtopic.php?f=15&t=2839 .

Taking this player as a base might be a lot of work to strip down.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
George
User
Posts: 4
Joined: Fri 2021-12-03 11:03

Re: VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by George »

Dear Pasi,
I suspected that spdif is a problem, but now I am sure that your link will help me. At least I will try to use it.
Thanks.
George
User
Posts: 4
Joined: Fri 2021-12-03 11:03

Re: VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by George »

Dear sirs,
I just got a message from a vendor "VS1010 out of stock".
Are there other VS 1XXX chips that can read MP3 from microSD and output them as SPDIF?
Sincerely.
George
User
Posts: 4
Joined: Fri 2021-12-03 11:03

Re: VS1010 Ultra low cost LCD FM radio + USB DAC + SD/USB MP3 Player demo board

Post by George »

Sorry, I need the advice.
I found a high performance consumer mode S/PDIF transceiver WM8805 in the warehouse. As far as I understand, with the help of this transceiver I will be able to translate the signal from I2S into S/PDIF. At the same time, I see the VS1053 in the warehouse. Will I be able, having connected microSD to VS1053, use it as a high-quality mp3 player, and send the output of VS1053 in I2S to WM8805, having received the output I need S/PDIF?
I have never faced such complex transformations and therefore any your opinion will be valuable to me.
Post Reply