audiophonics / RaspDacMinilcd

4 stars 1 forks source link

Patch compiler for RaspDacMini LCD

This branch holds all the code used to package an installer for the RaspDacMini LCD.

Currently supported :

Read this before you do anything with this code

Anatomy of a fully customized RDMLCD

The RDMLCD uses different pieces of software (pink) to make use of its specific hardware (red).

flowchart BT

    DAC["DAC CHIP ES9038Q2M<br>(Audio output)"]
    DISTRIBUTION{"Distribution <br> (moOde, Volumio)"} 
    GRAPHICS(Graphics Renderer)
    DRIVER(FBCP-ILI9341)
    DISPLAY["ILI9341 DISPLAY"]
    LIRC("LIRC + IREXEC")
    IR["InfraRed Receiver"]
    APESSQ2M("Shell wrapper<br>for DAC / ALSA")

    GRAPHICS --> |"Basic functions <br>(blank,poweroff) <br>through RPIO"| DISPLAY 
    DRIVER   -->|"Draws image on<br> display through SPI"| DISPLAY
    IR --> LIRC
    LIRC  -->|"Translates remote inputs <br>as streamer commands"| DISTRIBUTION

    GRAPHICS -->|"Renders image<br>for display"| DRIVER
    GRAPHICS -->|"Gets DAC<br> state"| APESSQ2M 
    APESSQ2M -->|"ALSA"| DAC
    GRAPHICS -->|"Gets streamer<br> state"| DISTRIBUTION 

    DISTRIBUTION -->|"MPD + ALSA"| DAC

    style DRIVER stroke:#f700f7,stroke-width:3px
    style APESSQ2M stroke:#f700f7,stroke-width:3px
    style GRAPHICS stroke:#f700f7,stroke-width:3px
    style LIRC stroke:#f700f7,stroke-width:3px
    style DAC stroke:#f70000,stroke-width:2px
    style DISPLAY stroke:#f70000,stroke-width:2px
    style IR stroke:#f70000,stroke-width:2px

The goal of this patch compiler is to provide an archive containing everything needed to have the right software (pink elements) at the right place in the distribution you picked. The method vary largely depending on what is available through the package manager of the distribution.

How to use this toolset to build a patch

Which translates in code as :

# Get the source files
wget -O patch_compiler.tar.gz https://github.com/audiophonics/RaspDacMinilcd/archive/patch_compiler.tar.gz

# Extract the archive 
tar -xvzf patch_compiler.tar.gz

# Enter directory
cd RaspDacMinilcd-patch_compiler

# install build dependencies (this command is interactive and will ask for a target distribution)
# When workin on Volumio, this needs sudo.
uname -a | grep -q volumio && sudo sh install_dependencies.sh volumio ||  sh install_dependencies.sh

# build all components as a single archive (this command is interactive and will ask for a target distribution)
uname -a | grep -q volumio && sudo sh build_all.sh || sh build_all.sh

I left in this repo a couple scripts to be used as build tools. At the root of this project are the following scripts :

If you want to (re)build a single specific component, you can instead go to the corresponding directory and run the build.sh which will create its own local release subdirectory.

Distributions

moOde Audio 8+

If you are targeting a build for moOde Audio, you should use the 64-bit version which will yield a patch compatible with both 32-bit and 64-bit versions. You can build on a 32-bit legacy moOde but the resulting binaries will only run on 32-bit moOde distributions.

Volumio 3+

When building the patch with build_all.sh command you can pick either volumio or plugin_vol as a target.

If you cannot decide whether you need a standalone or a plugin version of this installer for Volumio, use the following rule of thumb : the standalone version is the best option for static systems (rare or no updates) where the user is expected to do as little configuration as possible. On the other hand the plugin version is more robust against system updates and require the user to follow the Volumio configuration wizard.

piCore

Still a work in progress.

Precompiled archives

Before you attempt doing anything with this branch, you should try a precompiled patch. Pick the correct distribution and follow the instructions given by the link :