Volumio 2 on NanoPi Neo

Just for information.

I created new platform build scripts based on work by pkendall64 (https://github.com/pkendall64/platform-orangepi). This script allows you to create platform files based on armbian build system and includes improvements i2s driver from codekipper (https://github.com/codekipper/linux-sunxi/blob/upstream-i2s/sound/soc/sunxi/sun4i-i2s.c) and overlays for i2s master and slave. You can find it on github: https://github.com/nikkov/platform-armbian.
Also I corrected armbianimage.sh/armbianconfig.sh in Volumio-Build for compile Volumio image with this platform files (https://github.com/nikkov/Volumio-Build).

Image for nanopi neo, air and neo2 for testing: https://drive.google.com/drive/folders/0B4dQ_SnxXHi4a2REN2ZGZzlQczA?usp=sharing

Attention! By default image use i2s in slave mode and without external clock source will not work! You can change i2s mode to master by edit armbianEnv.txt, just replace
user_overlays=sun8i-h3-i2s0-slave
to
user_overlays=sun8i-h3-i2s0-master

Nikkov;
Thank you for the Nanopi Neo build! I have actually been able to get the on board H3 Audio Codec running with this build. It needed to be enabled first. This was accomplished by setting up SSH access and then running:

amixer set ‘Line Out’ 27 on

The analog line out is initially disabled and required this to get it started. The 27 (out of 1 to 31) corresponds to a gain of -6 dB. Volumio must be set to “Onboard Audio”. I am still doing some stability testing to prove that the fix is persistent across multiple resets. The H3 Codec seems to occasionally change from Card 0 to Card 1 for no apparent reason.

With this there is hope that the Rockpi S can made to be work in the same fashion.

Chris Z

Hey - I actually ported Volumio over for the Rock Pi S couple of months back - want to give it a whirl? Didn’t realise there were more people with the board! :slight_smile:

@ashthspy / @ChrisZ
Why not open a new Rock PI thread in community porting and add the build scripts to the Build repo?
I can build a Volumio server-based image for people to download.
And when you add the myVolumio-specific instructions to the build script, the volumio server build will also produce myVolumio support (which you cannot have with a local build). The myVolumio additions have no negative effect on a local build, it will just be ignored.

It’s probably a bit too early for that, the Rock Pi S is a bit of a mystery still for me - I managed to get most stuff working with 5.5.y, but I can’t get the I2S outputs running the way I want with any kernel. I also seem to have some hardware issues with the serial lines on my board, so it rests for now.

But good to know about the myVolumio stuff, will keep it in mind :slight_smile:

All;
First, the NanoPi Neo build has been running reliably with the audio codec built into the H3. It has been stable across multiple resets and just being left on 24/7 for weeks at a time.
Second, I have not yet gotten a Rock Pi S. I was looking at it as an inexpensive streamer with a built in codec/dac. Some of the chatter on the Radxa forums seemed to indicate the analog L-R outs were a bit noisy due to the board layout. I have been following that to see how resolves. Also holding off on ordering from that part of world for a bit longer. I have enough bits of hardware gathering dust at the moment to stay busy.
ChrisZ

Hi all,

maybe it be useful to merge my last work for Allwinner devices to volumio repositories? Building kernel based on armbian looks like very versatile and I built and successfully tested images for cubietruck, nanopi neo, nanopi neo air, nanopi neo2, nanopi neo+2. With small changes may build platforms for other boards.

Platform build script and i2s patches: https://github.com/nikkov/platform-armbian
and volumio build: https://github.com/nikkov/Volumio-Build

and last images https://drive.google.com/open?id=0B4dQ_SnxXHi4a2REN2ZGZzlQczA

Attention! By default image use i2s in slave mode and without external clock source will not work! You can change i2s mode to master by edit armbianEnv.txt, just replace
user_overlays=sun8i-h3-i2s0-slave
to
user_overlays=sun8i-h3-i2s0-master

@nikkov

Hi, Nikkov. Thank you for your awesome work on nanopi neo.
I have a nanoPi A64, can I use it with your latest released image?

Sorry, nanoPi A64 is not supported by Armbian

All;
Has anyone run into Malware or vulnerability issues on the Armbian builds?
ChrisZ

Don’t build a lot with Armbian, but so far with focus on experimental Volumio images, no issues so far

great, I’ll give a try to the NanoPi neo2 image

I have latest image runnign on NanoPi Neo2, seems to be working fine.

I can play audio from via I2S on a TAS5825M board, I had to enable i2c0 overlay from config file.

I am surprised on how responsive it is, this board can be used for making the smallest Volumio-based player with decent performance (RPi0 it’s really too slow)!

Yep, the Allwinner h3 and h5 boards are really ahead of the pi0 in performance. And with Sunxi’s mainlining effor and Armbians build tools, its quite easy to port Volumio over to these boards. I currently have more Orange/Nano/Rock pi boards running Volumio than Raspberry pis :wink:

I also like them, I have plenty of SBC from Friendlyelec at home.

It’s a pity NanoPi Fire3-LTS does not have I2S pins on external connector (they did not route them), otherwise was a great candidate for a Volumio-based player with touchscreen.

When corona crysis will be over I’d like to measure jitter on H5, I’ve very curious to see if the performance are better than RPi one.

I was also thinking to design some HATs or Daughter-boards for H3/H5 SBC, almost nothing exists.
Together with a NanoPi NEO Air-LTS could be very nice project, adding missing USB/Headphone/Microphone and maybe a oled display or a SPI touchscreen. Loading from EMMC should be way faster that SD-card.

I would be wary making any fresh designs now on the H5 - read something about allwinner announcing that it’s EOL…
EDIT: Found it - andahammer.com/

I have some RK3328 based boards in the mail that I plan to port Volumio over to.
The Rock pi S (rk3308) is also a capable little board - we also got it running mainline with armbian - plus it also comes with an EMMC + has MCLK broken out and multiple I2S channels… However I didn’t find enough time to figure out the right i2S overlays for it yet with the mainline kernel…

thanks for the hint, I didn’t know about the announcement.

thanks also for suggesting Rock pi S, I never had the chance of using this SBC. The variant with 512MB Ram / 1Gb EMMC / BT+WiFi looks an ideal platform for running Volumio, I’ll grab few to test them.

Just ordered two, with 512MB RAM.

I really like them! they have multi-channel I2S, that can be very helpful for connecting several I2S microphones.

Please let me know if you have progress with I2S, I’ll start to write down some ideas for the Daughter board

To be frank, I messed up some onboard HW on my board while playing with getting mainline U-boot onto it, so waiting on a new one as well. But I do have some Volumio images (with mainline kernel) that I built for it already. I will start a new thread soon about it…

Sorry for going OT on this thread!

yes better to open a dedicated one