Volumio 2 on Orange Pi Boards

@jirm You would have to compile a .dts file to a .dtbo – so prepare the .dts and then install
the device-tree-compiler package to compile it.

So something along these lines for the most simple case:

sudo apt udate && apt install device-tree-compile
 dtc -O dtb  <file>.dts -o  <file>.dtbo

Thanks @ashthespy for your reply.

Seems .dtbo file are in the last zip (sure @VyacheslavS compilate it maybe from the .dts file I provided), so question now are ?

Maybe is enough add both .dts and .dtbo files that you provide in that zip file to “/boot/user_overlays” directory and modify “armbianEnv.txt” to load it ?.

You think I need do some more to enable in my running orangepi board?. I don´t have chance to test it until tomorrow, so any guidance to rigth direction will be very good.

Regards

You only need the to add the compiled <file>.dtbo file to /boot/overlay-user and then enable it in /boot/armbianEnv.txt by adding it to the user_overlays=<file> line.

Woooow seems closer to I have it working .
Thank you so much @ashthespy . Tomorrow I test it and then I post results here.

Best regards

Hi,

Success !!!

Rotary encoder is now loaded with kernel overlays.
Only needed first “tweek” renaming from .dbt to .dbto compiled file from zip provided, then follow instructions adding the compiled <file>.dtbo file to /boot/overlay-user and then enable it in /boot/armbianEnv.txt

Booting device U-Boot dump debuging over uart :

Executing script at 43100000
U-boot loaded from SD
Boot script loaded from mmc
307 bytes read in 3 ms (99.6 KiB/s)
5495909 bytes read in 264 ms (19.9 MiB/s)
7645088 bytes read in 367 ms (19.9 MiB/s)
Found mainline kernel configuration
28283 bytes read in 7 ms (3.9 MiB/s)
374 bytes read in 2 ms (182.6 KiB/s)
Applying kernel provided DT overlay sun8i-h3-i2c0.dtbo
1347 bytes read in 4 ms (328.1 KiB/s)
Applying user provided DT overlay sun8i-h3-i2s0-master.dtbo
1355 bytes read in 3 ms (440.4 KiB/s)
Applying user provided DT overlay sun8i-h3-gpio-rotary.dtbo
4155 bytes read in 3 ms (1.3 MiB/s)**
Applying kernel provided DT fixup script (sun8i-h3-fixup.scr)
Executing script at 44000000
Loading init Ramdisk from Legacy Image at 43300000 …
Image Name: uInitrd
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 5495845 Bytes = 5.2 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum … OK
Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
EHCI failed to shut down host controller.
Loading Ramdisk to 49ac2000, end 49fffc25 … OK
Loading Device Tree to 49a52000, end 49ac1fff … OK

Starting kernel …

Still untested, because the only “ready to go” volumio module that I find for this kind of device seems is a pluggin from @Saiyato that seems is installed propperly but for some reason cannot not working and force my volumio continous restarting volumio process… but that will be next story.

Thanks so much all people here and specially @VyacheslavS and @ashthespy

2 Likes

I use the image from @VyacheslavS version Volumio2.806-2020-08-22-orangepipc.
The Rotary Encoder Plugin from @Saiyato is installed. I use an EC11 encoder with a button. Everything is working.
Connection diagram
f309efc63012c2819a5fe5f1c2dd5f9d
Settings in volumio, for example
fgf

Pin numbering is determined by the BCM tab
orange-pi-wiringpi-wiringop-gpio-library

VCC -3,3V

1 Like

@Radiomanoff Thank you!
I bought the display, installed pydpiper and everything worked.


I bought a blue display, but I think I should have taken a white one.

3 Likes

Hi, a used Volumio 2.861 image from VyacheslavS it works with audio optput on board Orange Pi Pc.
It works fine, thanks VyacheslavS !
I am trying to make it work with

but no success.

I need some help, please, thanks.

Hello. Check the correspondence of the I2S contacts, according to the diagram


In Raspberry Pi, the I2S interface sits on other pins.

Radiomanoff thanks o lot, i will try

Hi, I’m new to the Volumio ecosystem and I’m using the latest build on a OPI PC with an es9038qm2 i2s connected DAC.

I’ve followed the connections provided in another thread to connect to the hat board (not directly as it has a 40 pins connector compatible with RPI).

I can see the I2S-Master in both aplay and Volumio “Output” configuration, but the later never gives me the opportunity to actually select which kind of DAC I have on the other side of the I2S link : am I missing something here (configuration ? link ?).

Thanks for your help !

There is only a single overlay device that enables I2S output as a master device. The overlay uses the PCM512a codec but if you require any other codec, you would have to make a new overlay file with the said codec, and add the additional kernel modules it requires, if its not already in the kernel image.

Once the DAC is up and working, you would have to add it list over on the Volumio2 repo so that is shows up as a selectable DAC, which would let you load the overlay file “on the fly”…

Thanks for the explanation !

I’ve found the overlay and the codec and I’m now trying to compile the module for the OPI PC.
The apt sources list does not seem to be set up to match the actual kernel installed on the build provided (kernel 5.3 or 5.10 but apt showing headers for 3.x or 4.9).
I’ve tried to manually dpkg the headers and sources for the correct kernel but it won’t work (compilation just exit stating that sources for kernel modules are not found) : do you have any clue on how to retreive the correct needed kernel sources ?

Yep, it’s most probably showing the default Debian Jessie package (3.16.0-10). But as this platform is added using the Armbian build system, you could leverage the scripts in platform-orangepi to pull out the linux-headers package.

That being said, since we don’t know the exact version from the image, and armbian’s repo don’t have the resources to track all but the current versions, the fastest way would be to build it yourself.

Else, when I find some time I can build a new image (but it will be 5.10.y/Buster beta) with the header package as well.

Ok, I basically did that (manually playing with apt source list from armbian to install the correct headers for 5.10.13 kernel).

I’m now in the process of updating the audio codec to 5.x asoc compatible calls (was made for 4.19).

Great job! :slight_smile: What codec is it might I ask?

It should be rather straightforward if you follow the compiler, also look at History for sound/soc/codecs/rk3308_codec.c - ashthespy/linux-rockchip · GitHub for some hacky inspiration :wink:

Ok, finally done with the porting (not so much in the end) : it compiles, sources are here : GitHub - arpel/I-Sabre_9038Q2M: New Audiophonics I-sabre 9038Q2M driver

I will be using a “generic copy” of the Audiophonics board based on es9038q2m DAC.

I’m now completely struggling with the dts file and structure with yours as the baseline : I actually do not understand how to merge your file (embedding both i2s definition and simple-sound-card) and the one made for RPI (which does not include i2s / i2c definitions). (the dts from rpi is also available in the repository above).

have a look at this, I’ve been using simple-soundcard

I also tried the same structure with tfa9879, it works but only in mono configuration with one device (simple-card seems to not support stereo with two devices)

I tried something : I-Sabre_9038Q2M/i-sabre-q2m-overlay-opi.dts at master · arpel/I-Sabre_9038Q2M · GitHub

I got stuck at boot … sorry that’s my first dts :wink: