Combining Raspberry Pi with audio CD drive

Hi,


I'm building digital music players based on the Raspberry Pi for retrofitting audio equipment (internet radio capability, streaming music from the NAS, better GUI, more functionality). I'm already able to play Audio CDs with a standard USB CD-drive (using VLC) but the startup is slow (detecting the type of CD), the speed too high (can be reduced by using Setcd), in the end it's not playing a good old audio CD.


Now I would like to combine the Raspberry Pi with a CD mechanism. I already learned that the mechanics with laser pickup and the two motors for spindle and rotation are available as spare parts. Whats missing is a control board with the interfaces to the CD mechanics (laser pickup + the motors) and to the Raspberry PI (I2S digital audio signal and control interface with SPI or I2C).


I already found an IC (Onsemi LC78615E) which integrates this functionality. But I didn't found a ready PCB either for this chip or something similar.


My questions:

  • has anyone experience with this topic (interfacing Raspberry PI with I2C and SPI/I2C with a conventional CD mechanics)
  • are there PCBs available?
Would really be great if I can get some information here.


Edwin
 
A USB stick and an .iso image of audio CDs is enough. You can instruct the Pi, Linux, to play the .iso file directly. There is no need to use any laser and mechanics to play CDs.

In VLC click Media --> Open Media --> Audio CD --> type path to .iso file.

OR:

Drag the .iso file into VLC's window.
 
I know that using a USB CD drive works, I have this already in use.


My question is for retrofitting existing housings with classic audio CD drive mechanics. For this I'm looking for a solution (and I think it's an interesting project). Therefore my question for a solution not that easy. Maybe someone has an idea.


Edwin
 
The thing is you do not actually need a CD ROM/Writer. You can still play CD audio tracks by copying their iso to a thumb drive. It is easier, more convenient and you will have more than one iso per thumb drive. That will give you more freedom for playback.

Use the advantages of the Pi having an operating system running instead of some minimal firmware as used to be the case with CD players. An operating system is much more flexible and much more powerful. Use its power.
 
My question is for retrofitting existing housings with classic audio CD drive mechanics. For this I'm looking for a solution (and I think it's an interesting project). Therefore my question for a solution not that easy. Maybe someone has an idea.

An existing housing will most likely have existing buttons and an existing display (VFD), it is not just about controlling the CD drive. RPi can certainly be programmed to control all of that, with considerable effort. The question is can you do it and are the countless hours of work worth the result to you?
 
Moderator
Joined 2002
Paid Member
You could try asking on the Archlinux forums, but I think it sounds like a project that needs to be designed from the ground up. The motor control interfaces and logic need to be programmed from scratch, as well as things like muting, de-emphasis and software/hardware control of the D/A converters need to be set up. Then there's display and wiring of external buttons. This is only the logic bit, there will be hardware required to interface the CD mechanism with the Pi.

I'm sure it's possible, but I'm sure you'll be on your own on this. The closest I could find is this, but even that uses USB:

DIY: Roon CD Player/Ripper - Tinkering - Roon Labs Community
 
I am all for simple and efficient solutions. The Pi is capable of Linux which gives you the power to play ISOs directly without needing other unnecessary expenses. A USB drive, a hard disk or a flash drive is all you need. What you need is to create ISO images for any CDs you may wish to play.

My advice is to forgo unnecessary complications. Yes, when one succeeds, they may be seen by some as an ego boost, but many others see such successes, as a failure to realise and choose simpler solutions.
 
Hi,

since some of you are trying to discourage me, I would like to explain my background:

It started almost 2 years ago with a Raspberry Pi, a Hifiberry AMP and a LCD display. I wanted to put this into one housing to create a device, that is capable of playing all music I collected over the years (vinyl, Audio CDs, ripped and downloaded MP3s on my NAS, internet radio, streaming from my iPhone). I before used a Denon network reveiver, but was disappointed from the functionality and user interface and thus sold it at Ebay.

I started with Volumio, but the extensions were not that stable and limited (especially the display is fixed and Webbrowser based), thus I started my first Python project. Now I have:

  • 4 running devices (one on my desk in my home office, one in the living room connected to the Yamaha audio receiver and Linn speakers, one in my bedroom as wake up radio by playing radio and controlling a WLAN lamp, one mobile in the housing of a bluetooth speaker), 2 additional ones in experimental status
  • software based on Raspbian, Python, mpd, vlc (for playing from USB-based CD drive), pygame, musicbrainzngs (for getting cover and track information, even from an audio cd via discid), shairport-sync, connection to my home automation system to display mainly the outside temperature, IP phone for my desk
  • I'm using 4 different LCD displays from 160*128 to 800*480 pixels, mainly SPI interface
  • input by buttons, touchpad, encoder, IR receiver and Webinterface (from iPhone, iPad and PC)
  • one software, configuration for the different devices by a json setup file (including defining display elements)
In total I desiged two PCBs for mounting the buttons and the LCD. The total software is currently 16.000 lines of code, mainly Python, JSON configuration, a little bit js.

Overall I was very much surprised what's all available and possible with quite reasonable effort, in the end this was hobby work beside my full-time engineering job (and family life of course). In the end you can find for every task anything useable, sometimes with some shortcomings, but overall quite successful.

Based on this I would like to add a conventional audio CD interface, this is the background of my question. Maybe someone has an idea what is available.

Edwin
 
Based on this I would like to add a conventional audio CD interface, this is the background of my question. Maybe someone has an idea what is available.

Edwin

a 'conventional audio CD interface' means your CD data has to go from digital to analog to digital to analog.

I use LiteOn slim slot-loading USB CD drives, rip the casing off (if necessary, but I tend to use 3M VHB tape, which is excellent for this sort of mounting) and mount inside the device (old bakelite radios, in my case).

Insert a CD, and after a few seconds it starts playing through the Pi media player in digital format at the predefined level of detail - Flac or mp3 or whatever you prefer - with the option of ripping the CD to a storage device, tagging, etc. and adding the media to the media player database (Moode, in this case).

This means no additional hardware to capture an analog audio out, and stuff that into a purely digital system.

The Pi has USB already and the DAC/Amp handles output.

I used these: USB DVD Drives Optical Drive External DVD RW Burner Writer Recorder Slot Load CD ROM Player for Apple Macbook Pro Laptop PC|Optical Drives| - AliExpress

~$10 and work great.
 
Last edited:
Hi,

since some of you are trying to discourage me, I would like to explain my background:

It started almost 2 years ago with a Raspberry Pi, a Hifiberry AMP and a LCD display. I wanted to put this into one housing to create a device, that is capable of playing all music I collected over the years (vinyl, Audio CDs, ripped and downloaded MP3s on my NAS, internet radio, streaming from my iPhone). I before used a Denon network reveiver, but was disappointed from the functionality and user interface and thus sold it at Ebay.

I started with Volumio, but the extensions were not that stable and limited (especially the display is fixed and Webbrowser based), thus I started my first Python project. Now I have:

  • 4 running devices (one on my desk in my home office, one in the living room connected to the Yamaha audio receiver and Linn speakers, one in my bedroom as wake up radio by playing radio and controlling a WLAN lamp, one mobile in the housing of a bluetooth speaker), 2 additional ones in experimental status
  • software based on Raspbian, Python, mpd, vlc (for playing from USB-based CD drive), pygame, musicbrainzngs (for getting cover and track information, even from an audio cd via discid), shairport-sync, connection to my home automation system to display mainly the outside temperature, IP phone for my desk
  • I'm using 4 different LCD displays from 160*128 to 800*480 pixels, mainly SPI interface
  • input by buttons, touchpad, encoder, IR receiver and Webinterface (from iPhone, iPad and PC)
  • one software, configuration for the different devices by a json setup file (including defining display elements)
In total I desiged two PCBs for mounting the buttons and the LCD. The total software is currently 16.000 lines of code, mainly Python, JSON configuration, a little bit js.

Overall I was very much surprised what's all available and possible with quite reasonable effort, in the end this was hobby work beside my full-time engineering job (and family life of course). In the end you can find for every task anything useable, sometimes with some shortcomings, but overall quite successful.

Based on this I would like to add a conventional audio CD interface, this is the background of my question. Maybe someone has an idea what is available.

Edwin
Hi Edwin,

I found your post here while searching for alternatives to Volumio, is your available somewhere ?

Also, did you try lower speed early CD drives ? Like the ones from the 90's, they used to be 2x or 4x, so they would not make as much noise as the 48x drives.

Thanks!