• Project update: Revision C goes out for sale

    andriy.malyshenko12/27/2022 at 10:48 0 comments

    After rather long break, project received big update - it is now on sale!

    Big homework was done on the revision B. I had to rebuild power section completely, using not one but three Ultra-low noise LDOs for each power line of PCM5102 DAC. This played out really well, when no audio is playing it is quiet as a grave.

    I re-did layout around PCM5102 DAC, generally carefully implementing TI's datasheet recommendations. Output filters now closer to DAC, as they should be, and buffer caps are layed out in more optimal way.

    Also reduced ground fill to necessary area arounf DAC, since it is actually collecting CPU and Memory noise when covering whole board.

    Major effort was done to provide 1-click software configuration via Ansible playbook. An case you're not aware, you can configure all about your Pi remotely, using automation scripts, which Ansible playbook essentially is. But more redistributable.

    All artifacts are now available on project's github

    End result is below

  • Assembled Orangi PI PC version

    andriy.malyshenko11/12/2020 at 14:59 0 comments

    No much difference, comapred to Orange PI One, and steps to configure pretty mach the same. Audio test gives very similar performance, i cannot hear a difference

    Therefore just photos

  • First prototype for Orange Pi One: hearing test

    andriy.malyshenko11/10/2020 at 10:34 0 comments

    Just a few impressions after a hearing test

    Mainly I do hearing test with SHURE SRH550DJ headphones, and normally I consume music with M-Audio HCS-9920MK2 full size speakers via JVC AX330 amp.

    I'm comparing my design to chinese module based on the same PCM5102 chip

    To do (almost) blind test I connect two sources at the same time and switch between them with single button on the amp. 

    Sound is quite similar, however

    - Mine gives a bit claener feeling in whole range, meaning a bit cleaner bass, mids and highs.

    - Scene is slightly better with mine

    - Most importantly, noise pickup is much better on my board, which was my biggest concern, and here is why.

    Biggest issue with Orange PIs I had so far is that  they are quite considerably noisier than Paspberry PIs. With yellow module above Orange PI out of the box is quite unbearable, picking up all kind of noises when you perform any activity on the board, in other words all the time. This was the biggest motivation for running my own design. 

    I'm not much experienced on that matter and all I did is 

    - Provide whole ground plane between Orange Pi and DAC

    - Provided independant low noise stabilized power for DAC

    - Try to lay out board carefully, all caps close to consumers, no overlapping paths and this kind of things.

    Guess  that did the trick. Although one  just might ask himself, why wouldn't you just start with Raspberry Pi in the first place ;-)

  • First prototype for Orange Pi One: configuration

    andriy.malyshenko11/10/2020 at 09:57 0 comments

    Let's configure I2S sound card and try to output some audio there.

    I'm doing this on top of latest at the moment Armbian, calls itself 'Armbian 20.08.17 Buster with Linux 5.8.16-sunxi'. It's installation is covered here.

    1. Get this repo

    $ git clone -b H3 https://github.com/anabolyc/pcm5102a-for-armbian-orangepi-zero
    $ cd pcm5102a-for-armbian-orangepi-zero

    We need to add device tree overlay. It will tell linux kernel to use I2S pins not just as regular GPIOs, but as audio output device.

    $ sudo armbian-add-overlay i2s-sound.dts

    It will compile and add our overlay file to /boot/overlay-user folder and add user_overlays=i2s-sound recored to /boot/armbianEnv.txt file. So after reboot kernel will try to apply aout overlay. But we should not reboot just yet, since we referenced kernel module (i2s driver) that not exists yet.

    Let's build it first. Since we're about to build kernel module, we need kernel headers.

    $ sudo apt install build-essential linux-headers-current-sunxi

     You should be able to see kernel headers present now

    $ ls -al /lib/modules/$(uname -r)/build
    lrwxrwxrwx 1 root root 35 Oct 20 20:15 /lib/modules/5.8.16-sunxi/build -> /usr/src/linux-headers-5.8.16-sunxi

    Now lets build

    $ make all
    make -C /lib/modules/5.8.16-sunxi/build M=/home/dronische/dev/pcm5102a-for-armbian-orangepi-zero modules
    make[1]: Entering directory '/usr/src/linux-headers-5.8.16-sunxi'
      CC [M]  /home/dronische/dev/pcm5102a-for-armbian-orangepi-zero/pcm5102a.o
      MODPOST /home/dronische/dev/pcm5102a-for-armbian-orangepi-zero/Module.symvers
      CC [M]  /home/dronische/dev/pcm5102a-for-armbian-orangepi-zero/pcm5102a.mod.o
      LD [M]  /home/dronische/dev/pcm5102a-for-armbian-orangepi-zero/pcm5102a.ko
    make[1]: Leaving directory '/usr/src/linux-headers-5.8.16-sunxi'

     If it shows success we're ready to copy kompiled module to system

    $ sudo make install
    sudo cp pcm5102a.ko /lib/modules/5.8.16-sunxi
    sudo depmod -a

    Now we ready to reboot

    Let's check if kernel module loaded

    $ lsmod | grep snd_soc_pcm5102
    snd_soc_pcm5102a       16384  1

    Let's check if card is listed

    $ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: I2Smaster [I2S-master], device 0: 1c22000.i2s-pcm5102a-hifi pcm5102a-hifi-0 [1c22000.i2s-pcm5102a-hifi pcm5102a-hifi-0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: sun8ih3hdmi [sun8i-h3-hdmi], device 0: 1c22800.i2s-i2s-hifi i2s-hifi-0 [1c22800.i2s-i2s-hifi i2s-hifi-0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0

     Looks good, but we don't relly now yet if card is working, since system will output pins with data whether someone listening on the other end or not. Let's produce some sound to see if it's actually working

    speaker-test -t sine -f 2500 -c 2

     This works, let's do some real audio then

    $ sudo apt install mpg123
    $ mpg123 http://live.btvradio.bg/z-rock.mp3

    Not sure if you hear it, bit it sounds great ;)  

  • First prototype for Orange Pi One

    andriy.malyshenko11/10/2020 at 09:06 0 comments

    Assembled first PCB. First pictures

    With first prototype only few minor issues were found, small missizing, also i think single power led is enough. 

    Also i soldered out SPI and I2C headers for OLEd screen to be attached, and it works, but for my applications i don't really need it. Normally it would be well hidden, therefore at this stage not much value in attached screen.