Category Archives: Audio

NanoPi NEO Music Player – The Ultra Cheap

Extra lack of options on this one, I’m going to be using the onboard DAC.  The question came up from one of my friends that wants a small music player for sleeping purposes and doesn’t need the extra bulk.

This is essentially a much easier route, very little fooling around has to happen.

This entry assumes you looked through the more elaborate one to get the I2S DAC working.  If something seems poorly explained, look there to verify.

OS Installation

Same OS, Debian-based Armbian.  Easy setup and install, no issues there.  I am assuming the reader can handle SSH.  I then installed MPD and Samba

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mpd
sudo apt-get install samba

There Is No Hard Part

Seriously.  Type in “aplay -l”, the first device will be the one you want to add to /etc/mpd.conf

MPD Configuration

Configuring MPD is quite simple, assuming you know your way around a linux command line and nano.  (I assume, if you got this far, you’re good)

The MPD config file lives in /etc/mpd.conf

As before, this is a minimalist “how to get it working” writeup.  For more details about cool stuff you can do:  MPD User Manual.

sudo nano /etc/mpd.conf

Open mpd.conf for editing.  Look around, there are a lot of things that live in there.  The only 2 we’re going to look at today are music_directory and audio_output.

The music_directory entry is straightforward, put in the path to your music on the device.  In my case, I use a central file and media server, which MPD can handle without a mount point.  In the case of a windows network drive (samba), you simply type in

music_directory "smb://ServerName/path/to/music/"

The audio_output entry is the really important one, and has some tricks.

audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "hw:0,0"        
        mixer_type      "software"      
        format          "*:32:2"

Your settings should look like this, we’re using the default output device.  

Hardware mixer didn’t work, so I went to software.  Again, you could use no mixer, but you lose the ability to control it from clients.

So, I had trouble with the “format” line.  The driver appears to have trouble scaling inputs, so  some songs were *very* quiet.  So, like before I made MPD change them all to 32-bit and threw that at the driver.  It seems to work, but be aware it may not be ideal.

Using The Thing

Well, that was simple enough.  Now you just need to hook a plug to the audio out port on your NanoPi NEO and send that to an amplifier.  See FriendlyElec diagram below, bottom left is the callout for the line out pins.

Diagram available from FriendlyArm

Something to note:  The audio header is *not* 0.1″ spaced like all the other headers.  I had to just solder wires to it.

NanoPi NEO Music Player

No frills here, this is the cheapest Linux music player I have attempted to create, period.

That said, initial results are promising.  I do not have “Golden Ears” by any means, however the sound quality and noise levels are acceptable to me (after I figured some things out), and I am listening through a pair of Audio-Technica ATH-M50x headphones.

Continue reading NanoPi NEO Music Player

Pi Zero Portable Network Music Player (Part 2)

I decided to split up the posts, since the first was getting pretty long.

Once I had played around with the compressed package and overcome some software issues (The Pi Zero only has 512 MB RAM, Volumio was a bit grumpy in the confined space until the excellent team made a quick patch to enable a swap file), I decided to take it up a notch and downloaded some music to it.  Interestingly, once Volumio is set up to work on your home network, browsing to it with your file manager will expose a network drive you can dump files to:


(Your internal network IP may vary)

The setup work extremely well in this configuration too, which was important, because one of my fears was needing to add a USB hub to this mess.  If I could use internal storage, there was no need for USB storage.  I jumped online and looked at a list of compatible SD cards and found what I was looking for:  a 128 GB card that should work.  When it came in the mail, I installed, setup, and it works perfectly.  (I realize 128 GB might be overkill, however I have a lot of music in FLAC format, so my library is a little chunky).  For anyone interested, I purchased a Samsung EVO+ 128 GB

That over with, I had to contend with the Wifi adapter sticking out of the side like a sore thumb.  My solution to that uses the test pads on the bottom of the Pi Zero.  It’s not clean, it’s not elegant, but I soldered wires right to them, similar to what can be found here.  Frederick Vandenbosch did a great job with pictures and labels, so instead of replicating his effort, I’ll simply link to it and give credit.

To accomplish that, of course, I had to do some surgery.  The plastic cover and shell, thankfully, peeled right off with some encouragement:


Then came the soldering:

Edimax with a tail

I’m not particularly proud of this soldering, but I’m certainly not proud of what I did to the bottom of the Pi.  Just accept that it works, and that I need a better soldering iron.

A quick note:  The wires you run to the USB D+ and D- wires have to be exactly the same length.  USB is a differential signal, so length differences will make all the bits fly out the side instead of going into the Wifi adapter.

The final (for today) result?



I’m guessing I’ll take a performance hit on the Wifi having it tucked like that.  I’ll play around with it and let you know!

On the to-do list:

  • Hardware Buttons
  • A Battery and charger solution
  • An enclosure to make it look cool

Pi Zero Portable Network Music Player (Part 1)

About a year ago I built a Raspberry Pi 2 HiFi player using Volumio and a HiFiBerry DAC+ Pro.  Since then, I’ve greatly enjoyed the sound quality from the sub-$150 player, but wished I could take it on the road with me.  There were two problems:

  1. The thing was just too big
  2. There was no headphone amplifier

That left me looking for different options.  My player was great for the living room attached to my stereo, but not so good for outdoor parties or easy listening when the kids wanted movies on the entertainment center.  Then the Raspberry Pi Zero caught my eye.  And at $5, how can you go wrong?

I did some surfing around and found IQAudio, another maker of I2S DAC’s for Raspberry Pi.  They had one built specifically for the Zero, and theirs had an optional headphone amplifier!  I was obviously impressed, and picked that up right away.  I had suspected, and quickly verified, that I would need to do some modifying to get this package to be as portable as I wanted:

Original Stack

My DAC came with the header attached.  It has come to my attention that is now available without.  I’d have saved a lot of desoldering grief if I’d have had that option.  Needless to say, all the headers cam off, and I “squished” everything to the smallest package possible without shorts:

Squished Pi Zero

Also note I removed the RCA jacks.  For this project I am not going to use them, so I saved the space for something else.  Also notice the Edimax Wifi adapter with the OTG widget adapter.  (I had already popped the vanity cover off the Wifi adapter, that’s why the bright blue and scifi antenna).  Volumio is controlled via a web interface, the newest releases enable a hot spot at boot for on the go control.  I have only gotten this to function with the Edimax adaptor, however even if others work, the Edimax is the correct size for what I’m working toward.