Jump to content
  • The Computer Audiophile
    The Computer Audiophile

    Geek Speak: NanoPi Neo, The $7.99 High Resolution Audio Endpoint

    spacer.png

     

     

    While the prices of many HiFi goods continue to go up, the prices of high tech goods continue to go down. In addition to prices going down, high tech goods almost always increase performance and features while decreasing in size for this reduced price. I wish the HiFi world was like the high tech world in this respect, but I completely understand the nature of building something by hand at the highest quality in low quantity versus building something for the lowest price at incredibly high volume in parts of the world where labor is extremely inexpensive. That may be a discussion for a different day because today is about the convergence of HiFi and high tech.

     

    I've always recommended that people start by purchasing the least expensive products and move up the ladder until they are satisfied. It simply makes sense. Some people know they will only be satisfied with the best and possibly most expensive options while others feel rewarded by finding a the best value. Neither way is right, it's all about choice.

     

    Before we get started with this cool new product, I want to address a misconception that some people have with CA covering items like a $7.99 audio endpoint. I've been told by some manufacturers that I shouldn't write about this stuff, it's too DIY and DIY'ers don't spend money, and that it isn't HiFi enough and that they don't like the direction of CA. I believe that type of small-minded thinking is what old-school HiFi is all about and it's something that old-school HiFi must get over if it wants to succeed in the future. CA isn't a DIY site, but we feature cool products when we seen them. Plus, these articles do wonders for bringing in a new audience to the CA community and HiFi in general. CA has a huge contingent of readers in Silicon Valley (and Australia, G'day mates) who love music, are a bit geeky, have technical aptitude, have disposable income, and would likely never have heard of most of our favorite HiFi brands without content like this that bridges the gap. Furthermore, when people purchase $7.99 audio endpoints, they need DACs to make music. Purchase five of these inexpensive endpoints for different rooms, and one will need five DACs. The money saved on endpoints can also be spent on other items such as software, music, amps, cables, loudspeakers, etc... I could go on, but I don't want to derail an otherwise cool product introduction with my rant about why products like this are good for HiFi. Either one believes it or not. The world is changing.

     

    Anyway, using low cost components to accomplish specific tasks and using higher quality components to get one over the sonic finish line can be not only smart, but also rewarding. I've spent the last 36 hours using the new $7.99 NanoPi Neo from a company named FriendlyARM. It's not perfect, but it's well worth the price. Single and multi-zone high resolution audio from this tiny and inexpensive device isn't the height of living when it comes to sonic bliss, but it's just plain cool.

     

     

     

     

    NanoPi Neo

     

     

    What is it? At a high level, the NanoPi Neo is a single board computer that runs Linux. The concept is the same as my favorite product of the year so far, the Sonore microRendu. The NanoPi Neo, for the purposes of the CA community, accepts audio via its Ethernet port and outputs that audio via its USB port.

     

    On a more detailed level, the NanoPi Neo is one of, if not the, smallest quad-core ARM based single board computer. At 40mm x 40mm its size is almost laughable. it features a 1.2 GHz quad-core Cortex A7 Allwinner H3 system on a chip and comes with 256 MB of memory. A version with 512 MB of memory is also available for an extra $2. I have both versions here and so far my tests haven't revealed a single weakness that is resolved by the added memory. In other words, it's not needed as far as I know. The four main visual aspects of this board are all that most people will really care about, the 10/100 Mbps Ethernet port, USB A port, SD card slot, and micro USB power port. The NanoPi Neo requires a 5V / 2A micro USB power supply. These can be purchased from hundreds of locations online. I found a couple of them laying around my office that worked great.

     

    Those who are a bit more geeky can take advantage of the GPIO (general-purpose input/output) pins on the board that provide 2x USB, IR, mic, line-out, SPDIF, power, UART, SPI, I2C, and PWM. There's also a four pin debug serial port header on the board for those who need full access that SSH can't provide. The optional $3.95 PSU-ONECOM can be used for TTL to RS232 connections.

     

    As of this writing the only operating system image available for the NanoPi Neo uses Ubuntu Snappy Core and the fairly old Linux 3.4 kernel. It has been noted online that support for a newer kernel should arrive in Linux 4.7 or 4.8 in a few weeks. Why does this matter? The big issue for the CA community is better support for DACs and DSD.

     

     

    spacer.png

     

     

    Pi HiFi

     

     

    The question then comes down to, how to turn this tiny single board computer into an audio endpoint? The answer isn't rocket science, but it's a bit geeky for many audiophiles. I'm not going to put full step-by-step instructions in this article, like I've done in the past for the Raspberry Pi and Beaglebone Black, but I'll give everyone the gist of what needs to happen. Please ask questions if necessary and I and the CA community will make sure everyone who wants to is able to get this up and running.

     

    The NanoPi Neo ships with nothing for the $7.99 price. I know it's a bit misleading to say it's a $7.99 audio endpoint, but I'm using creative liberty and the fact that some people including myself will already have the other pieces needed for this puzzle.

     

     

     

    Requirements:

     

    NanoPi Neo

    Micro USB cable

    Micro USB power supply 5V/2A

    Micro SD card

    Ethernet cable

     

     

     

    When the NanoPi Neo arrives it isn't plug n' play. One must first download the operating system image and write it to a microSD card. I used both the Mac OS X terminal and Win32 disk imager tool on Windows to write the image to two different micro SD cards. Once the micro SD card is ready, just place it into the micro SD slot on the board and power it up.

     

    The provided operating system image is pretty good for our purposes, but needs just a bit of fine tuning. Like most systems, it's a good idea to SSH into the board and run apt-get update and apt-get upgrade before moving forward. This will get the system up to date with the already installed software, including ALSA version 1.0.25. For some reason FriendlyARM installed the GUI framework Qt-Embedded on this system even though it has no option for a directly connected GUI. Sure one can port the GUI over a network, but let's be serious about this board. Nobody is going to do that. With Qt-Embedded, FriendlyARM starts QtE-Demo by default at system startup and uses a sizable percentage of CPU cycles. I disabled this by editing the file /etc/rc.local and commenting out /opt/QtE-Demo/run.sh&. I installed the Nano editor for this purpose as it doesn't come installed on this image by default.

     

    The easiest audio endpoint to install and get working, and the one I've been using for the past 36 hours, is RoonBridge from Roon Labs. Installing RoonBridge on Linux is very easy. Once complete the Linux device appears within the Roon client software as an audio endpoint. All configuration is done through the Roon iOS, Android, or desktop GUI on Windows or macOS. Roon has a small list of dependencies that must be installed before RoonBridge can be installed. Fortunately the NanoPi Neo image already has the listed dependencies met. The only requirement I had to install was curl. A simple apt-get install curl command was all that was needed.

     

    Installing RoonBridge for Arm devices is as simple as running these commands:

     

    Note: It's possible to send audio to each NanoPu Neo running RoonBridge individually or grouped together for a great multi-zone experience.

     

     

     

    NanoPi Neo - RoonBridge Results

     

     

    I installed RoonBridge on both the 256 MB and 512 MB models of the NanoPi Neo. When playing 24 bit / 192 kHz uncompressed FLAC files to the 256 MB version, there was 96 MB of memory free (image). RoonBridge has a very small memory footprint that makes the $2 more expensive 512 MB version of the NanoPi Neo unnecessary for all but the biggest of big spenders and those dead set on conspicuous consumption (kidding of course). Both models of the NanoPi Neo have the same quad-core CPU. Streaming the same 24/192 music to the units caused RoonBridge (seen as mono-sgen when running the TOP command in Linux) to use about 22% of the CPU. I didn't test the network throughput maximum capabilities, but I am fairly certain that the 10/100 Mbps Ethernet port on the NanoPi Neo is plenty fast for streaming music at even the highest of high sample rates. If or when there is a problem, it's not because the Ethernet port is too slow.

     

    Speaking of problems, for the most part everything works great, but I did find a couple issues. When playing PCM files at rates of 352.8 and higher I heard pops and ticks through my speakers at predictable intervals, every few seconds. I had one issue streaming DSD64 content to the NanoPi Neo with RoonBridge, but was unable to stream DSD at any higher rates without major stoppages during payback. Fortunately, I believe these issues can be resolved with a combination of the forthcoming kernel update to the OS and some minor OS tweaks.

     

    Over the last 36 hours I've tested the NanoPi Neo with the Linux 3.4 kernel version of Ubuntu Snappy Core with USB interfaces / DACs from Berkeley Audio Design (Alpha USB), EMM Labs (DA2), Moon by Simaudio (Neo 380D DSD), AudioQuest (DragonFly Red, DragonFly Black) and Schiit Audio (multibit Bifrost). The Berkeley, EMM, and Moon products use XMOS USB chips, Schiit Audio uses C-Media, and Mytek uses its own USB receiver chip. As I wrote earlier, PCM up through 192 kHz works great. DSD64 worked well on the Moon Neo 380D DSD and EMM Labs DA2 but didn't work at all on the Mytek Brooklyn. Neither the Schiit nor the Berkeley support DSD at any rate. The DragonFlys worked up to their support PCM maximum sample rate of 96 kHz.

     

    Of course every audiophile, including myself, wants to know how the tiny NanoPi Neo sounds when connected to a true HiFi system. For the most part it sounds good. The NanoPi Neo is by no means as good as the microRendu, but it's pretty good regardless of price. One downfall of the NanoPi Neo is its reliance on a micro USB power input. I have a feeling the 5V/2A power supplies I am using with these units are injecting some serious noise into my system. I've yet to see a well designed USB power supply. Again, the NanoPi Neo sounds good and may likely be all some music aficionados need to send music to another room of the house. But, you've been forewarned, the whole process of getting audio out of the NanoPi Neo is a bit geeky compared to purchasing a plug n' play off-the-shelf Ethernet to USB device.




    User Feedback

    Recommended Comments



    Not yet, but thanks for setting me off on the right track. Figured it was something forehead-slapping like that. Thx again.

    Let me know if you need help. I'll walk you through it.

    Share this comment


    Link to comment
    Share on other sites

    Let me know if you need help. I'll walk you through it.

     

    Weirdly, when I load NOOBS onto the micro SD card and then power up the Pi, I go to the terminal and type in "arp -a" to look for the IP address, and it doesn't come up. Additionally, when I plug the USB cable into the pi and the router, the light isn't flashing. That makes me suspect the OS isn't booting up. Suggestions?

     

    Thx

    Share this comment


    Link to comment
    Share on other sites

    Weirdly, when I load NOOBS onto the micro SD card and then power up the Pi, I go to the terminal and type in "arp -a" to look for the IP address, and it doesn't come up. Additionally, when I plug the USB cable into the pi and the router, the light isn't flashing. That makes me suspect the OS isn't booting up. Suggestions?

     

    Although the board is called a 'NanoPi' it isn't actually a member of the Raspberry Pi family, and so I wouldn't expect the version of Linux in NOOBS to work as that is Raspberry Pi specific. I think you need to download an image created for the NanoPi and copy that onto the SD card to get it to boot.

    Share this comment


    Link to comment
    Share on other sites

    Although the board is called a 'NanoPi' it isn't actually a member of the Raspberry Pi family, and so I wouldn't expect the version of Linux in NOOBS to work as that is Raspberry Pi specific. I think you need to download an image created for the NanoPi and copy that onto the SD card to get it to boot.

    Exactly.

    Share this comment


    Link to comment
    Share on other sites

    Although the board is called a 'NanoPi' it isn't actually a member of the Raspberry Pi family, and so I wouldn't expect the version of Linux in NOOBS to work as that is Raspberry Pi specific. I think you need to download an image created for the NanoPi and copy that onto the SD card to get it to boot.

     

    Ok gotcha. I'm trying to do both at the same time so it's easy to get mixed up. Thanks!

    Share this comment


    Link to comment
    Share on other sites

    Hi,

    My Nano Pi should arrive soon and I don't want to be locked into another paid service.

    Does anyone know if there is another audio end point package available than Roon Bridge. Some DLNA media renderer would be great that could handle PCM 24/96 as a minimum and DSD optional to be send to my ifi iDSD-micro. Thanks

    Share this comment


    Link to comment
    Share on other sites

    Hi,

    My Nano Pi should arrive soon and I don't want to be locked into another paid service.

    Does anyone know if there is another audio end point package available than Roon Bridge. Some DLNA media renderer would be great that could handle PCM 24/96 as a minimum and DSD optional to be send to my ifi iDSD-micro. Thanks

    Check out upmpdcli - https://www.lesbonscomptes.com/upmpdcli/

     

    Or, you can try to install JRiver Media Center on the NanoPi Neo. I know it works on the regular Pi as a UPnP/DLNA renderer.

    Share this comment


    Link to comment
    Share on other sites

    Ok gotcha. I'm trying to do both at the same time so it's easy to get mixed up. Thanks!

     

    is there an image flasher for the nanopi like Piwriter for rasp? I'm having weird difficulty getting the OS on the sd card using the terminal on Mac.

    Share this comment


    Link to comment
    Share on other sites

    I use to be snobbish about audio products. Pay more, get better audio. While that's true to a point, I totally ignore the fact that a lot of good products can be had for very little money. And what drove me to that conclusion is the fact that I will never be able to afford a majority of those items that I've lusted after most of my life.

     

    Having said that, I somewhat recently discovered the huge earbud market in China as marketed by sites like Ali Express and Penon Audio, among others. Granted, it does come across like a Frankenstein-like assembly business using old parts from past products from many well-known manufacturers but there are some really crazy headphone creations that deserve to be looked at if you're looking to save a few bucks. I can't say how they would stack up against the established players in the audiophile industry but I think you would be surprised by what you find.

    Share this comment


    Link to comment
    Share on other sites

    is there an image flasher for the nanopi like Piwriter for rasp? I'm having weird difficulty getting the OS on the sd card using the terminal on Mac.

     

    Ok, I used the flash writer you recommended. The OS is now officially on the SD card. Next step, I put the SD card on the NanoPi, plugged the ethernet into the back of my time capsule, and powered on. Went to terminal, typed in "arp -a" and cannot find the Pi's IP address. I have tried plugging the ethernet directly into the back of the modem and have WPN'd a wireless dongle to the NanoPi, to no avail. Does this ethernet cable absolutely -have- to go to a router? My system uses the TimeCapsule as a router. I guess I could order one but I feel like I'm missing something.

    Share this comment


    Link to comment
    Share on other sites

    Ok, I used the flash writer you recommended. The OS is now officially on the SD card. Next step, I put the SD card on the NanoPi, plugged the ethernet into the back of my time capsule, and powered on. Went to terminal, typed in "arp -a" and cannot find the Pi's IP address. I have tried plugging the ethernet directly into the back of the modem and have WPN'd a wireless dongle to the NanoPi, to no avail. Does this ethernet cable absolutely -have- to go to a router? My system uses the TimeCapsule as a router. I guess I could order one but I feel like I'm missing something.

     

    Is the modem running a DHCP server and assigning IPs? If not then the Pi won't get an IP assigned.

     

    If the router is assigning IPs then yes connect to it. Not necessarily direct... I've connected everything to a network switch... sort of a separate local network, but the switch is connected to the router. Not sure how the TimeCapsule is different, but there must be a way to connect the Pi to it via ethernet and also it must be running DHCP.

     

    Once plugged into a router or local LAN via ethernet and then assigned a permanent IP (recommended via router DHCP) you can unplug and use via WiFi.

    Share this comment


    Link to comment
    Share on other sites

    Is the modem running a DHCP server and assigning IPs? If not then the Pi won't get an IP assigned.

     

    If the router is assigning IPs then yes connect to it. Not necessarily direct... I've connected everything to a network switch... sort of a separate local network, but the switch is connected to the router. Not sure how the TimeCapsule is different, but there must be a way to connect the Pi to it via ethernet and also it must be running DHCP.

     

    Once plugged into a router or local LAN via ethernet and then assigned a permanent IP (recommended via router DHCP) you can unplug and use via WiFi.

     

    OK great I'll try that tomorrow.

     

    Thanks :)

    Share this comment


    Link to comment
    Share on other sites

    lost in translation in the attempt to order another Nanopi Neo: On the website now is an option to get a board without USB or ethernet. I've ordered the wrong thing twice now, even with the "assistance" of the FriendlyArm people. If anyone wants two aforementioned boards let me know.

    Share this comment


    Link to comment
    Share on other sites

    Check out upmpdcli - https://www.lesbonscomptes.com/upmpdcli/

     

    Or, you can try to install JRiver Media Center on the NanoPi Neo. I know it works on the regular Pi as a UPnP/DLNA renderer.

     

    There are several distributions using upmpdcli and mpd. Currently the best and most actively supported one is Moode (moodeaudio.org). There is also an active discussion forum in the CA forums.

     

    With Moode, you get various options to stream to your HiFi system, it costs nothing, and it's easy to control either from the web interface, BubbleUpnp on phone or tablet, or even via Airplay.

     

    /promo

    Share this comment


    Link to comment
    Share on other sites

    There are several distributions using upmpdcli and mpd. Currently the best and most actively supported one is Moode (moodeaudio.org). There is also an active discussion forum in the CA forums.

     

    With Moode, you get various options to stream to your HiFi system, it costs nothing, and it's easy to control either from the web interface, BubbleUpnp on phone or tablet, or even via Airplay.

     

    /promo

    Does any distribution work with the Nano Pi Neo?

    Share this comment


    Link to comment
    Share on other sites

    I finally got a Nanopi Neo with ethernet and USB, was able to get the OS on the micro sd card and got the neo onto the router and assigned an IP address. When I attempt to SSH into the board, I get this message:

     

    IMG_2624_zpsgmhwcbvn.jpg

     

    Can anyone help?

     

    Thanks

    Share this comment


    Link to comment
    Share on other sites

    Hi there, making progress but ran into a problem with the SSH. take a look at this, can anyone help?

     

    IMG_2624_zpsgmhwcbvn.jpg

    Share this comment


    Link to comment
    Share on other sites

    I finally got a Nanopi Neo with ethernet and USB, was able to get the OS on the micro sd card and got the neo onto the router and assigned an IP address. When I attempt to SSH into the board, I get this message:

     

    IMG_2624_zpsgmhwcbvn.jpg

     

    Can anyone help?

     

    Thanks

     

    The file that contains your ECDSA key needs to be blown away; then next time you want to SSH in a new key will be made. Can't remember the command to get rid of the old file/key off the top of my head (perhaps someone here knows and will help); Google should be your friend with this.

    Share this comment


    Link to comment
    Share on other sites

    Hi @matthewpartrick - Jud is correct. You can resolve this error easily by deleting your known_hosts file. Here are the commands.

     

     

    Open Terminal

     

    type -> cd /Users/matthewpartrick/.ssh and hit enter

     

    type -> ls and hit enter. This command should show you the files in the ssh directory. It should have at least one file named known_hosts

     

    type -> rm *

     

    this will remove the files. It will get recreated automatically when connecting to an ssh device.

    Share this comment


    Link to comment
    Share on other sites

    Hi @matthewpartrick - Jud is correct. You can resolve this error easily by deleting your known_hosts file. Here are the commands.

     

     

    Open Terminal

     

    type -> cd /Users/matthewpartrick/.ssh and hit enter

     

    type -> ls and hit enter. This command should show you the files in the ssh directory. It should have at least one file named known_hosts

     

    type -> rm *

     

    this will remove the files. It will get recreated automatically when connecting to an ssh device.

     

    Thx so much I'll give that a try.

    Share this comment


    Link to comment
    Share on other sites

    Does any distribution work with the Nano Pi Neo?

    Nope. This does not boot the NanoPi Neo. Did anybody get upmpdcli installed and running on the neo? I'm trying it for a couple of days now and can't get it to work. Do I have to compile it from scratch? Any help would be greatly appreciated.

    Share this comment


    Link to comment
    Share on other sites

    OK--I typed cd/users etc and then ls and it lised just known_hosts. Then I typed "rm *" and no go. How does one get the syntax correct? I tried "rm*" which didn't work either. Is there a key on the mac that puts the asterisk in a superscript that I'm missing?

     

    Thx

    Share this comment


    Link to comment
    Share on other sites

    OK--I typed cd/users etc and then ls and it lised just known_hosts. Then I typed "rm *" and no go. How does one get the syntax correct? I tried "rm*" which didn't work either. Is there a key on the mac that puts the asterisk in a superscript that I'm missing?

     

    Thx

    You can also just type rm known_hosts

     

    I used the * to include all the files incase there was another one in there. Are you getting any error message when you try this? Also, if you have an app that shows you hidden files, you can browse through the app to delete the file via a GUI. I use the apps CODA and Transmit to view hidden files and browse to that folder to delete the known_hosts when I don't feel like entering the command.

    Share this comment


    Link to comment
    Share on other sites




    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now




×
×
  • Create New...