Volumio 2 on Orange Pi Boards

gpio readall shows
 +------+-----+----------+------+---+OrangePiH3+---+------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | GPIO |
 +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
 |      |     |     3.3V |      |   |  1 || 2  |   |      | 5V       |     |      |
 |   12 |   0 |    SDA.0 | ALT2 | 0 |  3 || 4  |   |      | 5V       |     |      |
 |   11 |   1 |    SCL.0 | ALT2 | 0 |  5 || 6  |   |      | GND      |     |      |
 |    6 |   2 |      PA6 |  OFF | 0 |  7 || 8  | 0 | OFF  | TXD.3    | 3   | 13   |
 |      |     |      GND |      |   |  9 || 10 | 0 | OFF  | RXD.3    | 4   | 14   |
 |    1 |   5 |    RXD.2 |  OFF | 0 | 11 || 12 | 0 | OFF  | PD14     | 6   | 110  |
 |    0 |   7 |    TXD.2 |  OFF | 0 | 13 || 14 |   |      | GND      |     |      |
 |    3 |   8 |    CTS.2 |  OFF | 0 | 15 || 16 | 0 | OFF  | PC04     | 9   | 68   |
 |      |     |     3.3V |      |   | 17 || 18 | 0 | OFF  | PC07     | 10  | 71   |
 |   64 |  11 |   MOSI.0 |  OFF | 0 | 19 || 20 |   |      | GND      |     |      |
 |   65 |  12 |   MISO.0 |  OFF | 0 | 21 || 22 | 0 | OFF  | RTS.2    | 13  | 2    |
 |   66 |  14 |   SCLK.0 |  OFF | 0 | 23 || 24 | 0 | OFF  | CE.0     | 15  | 67   |
 |      |     |      GND |      |   | 25 || 26 | 0 | ALT2 | PA21     | 16  | 21   |
 |   19 |  17 |    SDA.1 | ALT2 | 0 | 27 || 28 | 0 | ALT2 | SCL.1    | 18  | 18   |
 |    7 |  19 |     PA07 |  OFF | 0 | 29 || 30 |   |      | GND      |     |      |
 |    8 |  20 |     PA08 |  OFF | 0 | 31 || 32 | 0 | OFF  | RTS.1    | 21  | 200  |
 |    9 |  22 |     PA09 |  OFF | 0 | 33 || 34 |   |      | GND      |     |      |
 |   10 |  23 |     PA10 |  OFF | 0 | 35 || 36 | 0 | OFF  | CTS.1    | 24  | 201  |
 |   20 |  25 |     PA20 | ALT2 | 0 | 37 || 38 | 0 | OFF  | TXD.1    | 26  | 198  |
 |      |     |      GND |      |   | 39 || 40 | 0 | OFF  | RXD.1    | 27  | 199  |
 +------+-----+----------+------+---+----++----+---+------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | GPIO |
 +------+-----+----------+------+---+OrangePiH3+---+------+----------+-----+------+

GND —>6 (Physical)
VDD —>1
SCK —>5
SDA —>3

@kovus Later, I can write the full instructions for installing pydpiper on the Orange PI, if there are specific questions.

2 Likes

Thank you! I’ll try repeat this.

Hi all

Did anyone make PCM5122 working on Orange Pi Zero ? I’m not sure if this possible.

Like this board
pcm5122

Search this thread on some hints to get I2S working on the Zero. IIRC, depending what version of the Zero you have you might need some extra surgery to enable I2S.

The new version Volumio 2.873 (Orange Pi Lite, Orange Pi PC, Orange Pi One).

>>>link

2 Likes
3 Likes

Hi guys.
I’m new to Volumio and new here. First of all thank you all for great job with volumio.
Recently having more spare time because of COVID I was digging in my drawer I found OrangePi One board and WM8804 board from AliExpress. It’s called PiFi v1.0 and is a clone of many similar boards.


I wanted to make it work and found Volumio but I didn’t find any working solution for this pair (Opi+pifi). So I’ve decided to give it a try. Inspired by Alexandre Belloni talk on YouTube about ASOC architecture on Linux I wanted to make it work without special machine driver (anyway all that rasp hats with wm8804 are just PCB with WM8804, power IC, Xtal and toslink interface without any logic), (precisely speaking simple-audio-card is machine driver) and no changes to platform driver. Linux kernel tree wm8804 driver is (as per documentation)for hardware mode meanwhile all that hats set wm8004 in software mode. So it took some minor touches to wm8804 driver to make it more software mode usable with some parameters passed via DT (dts file).
It works in Master mode (WM804 is master) which is better and native audio solution. IMHO it can’t be used in slave mode with OPI One as wm8804 needs external MCLK clock in slave mode for SPDIF transmitter but Opi One doesn’t provide it to outside world. Only wm8804 driver is changed a little bit so it should work with other boards with armbian and i2s platform driver (even in slave mode as my pifi v1.0 board has MCLK pin connected to pad on PCB).
Just remember that Opi One pin header is compatible with raspberry but not in 100% and I2S pins don’t match so layer 1 (hardware layer) requires some modifications which was covered in previous posts.
As I’m new to Volumio I generated platform files with armbian toolchain and used opifam branch of Volumio github to generate image (without digging deeper in Volumio architecture). It’s based on 5.10 kernel.
It works pretty cool for me. At the moment (I hope it’ll change) I’m using Technics DX950 so I’ve tested it to 24bit@48K but it should go up to 24bits@192k. Also testes optical and electrical outputs.

https://megawrzuta.pl/download/e622af36144876f2676bdfde6a623d2b.html

Maybe someone will find this image good for testing or listening

2 Likes

Nice work! :slight_smile: If you can add your patches, we can add them into the volumio repo so all further images pick them up as well.

Look at the platform-orangepi repo on how this could be done. Also with the corresponding dts files, let me know if you have additional questions :slight_smile:

I put all changes in forked repo. Please, take a look.

1 Like

Final version. Orange Pi PC & PCM5102

2 Likes

The new version Volumio 2.882 (Orange Pi Lite, Orange Pi PC, Orange Pi One).

>>>link

Xunlong started selling the Orange Pi Lite version with 1GB (2x512MB).
I bought it on Ali, and testing it. Working great.

Hi ktoanlba, thank you for all your work!
I uesd your build Volumio-2.834-2020-10-24-orangepizero.img
but the borad does not boot. I connected the TTL serial and find that the message stoped at
“Starting kernel …
Uncompressing Linux… done, booting the kernel.”
In this state I connect the LAN and the yellow and green LED are light but it didn’t respond.
just as the image shows. So did you also meet the same problem?
Did you build the latest image for the orangepizero?
Best Regards!

Hi Giachi, which img you used for your orangepi?
I used Volumio-2.834-2020-10-24-orangepizero.img but it stoped at booting,
can you share which build you are using?
Best regards!

Hi mafiu!Thank you for your work for orangepi one!
Could you please also buil a new img for orangepizero? I used the img build by ktoanlba but it dose not boot. I’ve been confused about this for a week :sob:
Bset regards!

A couple of weeks ago I received a USB DAC e1da 9038d. It should have natively played DSD128, 256.

But the output was the following:

:~$ cat /proc/asound/card*/pcmp/sub/hw_params
access: MMAP_INTERLEAVED
format: S24_3LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 43691
buffer_size: 174762

or:

:~$ cat /proc/asound/card*/pcmp/sub/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 32768
buffer_size: 131072

It can be seen that the sound is being converted.
I started to find out the reason, after reading the forums, I realized that I needed a patch to the kernel. It was only necessary to fork quirks.

I wrote a patch, compiled the kernel with parameters for E1 DA 9038D, built a Volume image for OrangePi.
I installed and received the native DSD sound:

DSD128:

:~$ cat /proc/asound/card*/pcmp/sub/hw_params
access: MMAP_INTERLEAVED
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 22050
buffer_size: 88200

DSD256:

~$ cat /proc/asound/card*/pcmp/sub/hw_params
access: MMAP_INTERLEAVED
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 32768
buffer_size: 131072

The load on the processor is now minimal, it does not have to digest resampling through itself:

Download here:

Hello ! I’m still waiting for the full installation instructions on orange pi if there’s any, I’m in 2weeks no sleep for this project :frowning: can’t make it work

PS:20x4 LCD Parallel Connections will surely help !

Thanks in advance !

Good day sir! May I ask, how to edit the exec start file ? I’m stuck on that step , thanks in advance !

Please tell me what is the password for the access point “volumio”?

https://volumio.github.io/docs/User_Manual/Quick_Start_Guide.html

tl;dr volumio2