Coder Social home page Coder Social logo

moode_extension's Introduction

Moode_Extension

Extensions for Moode, including OLED display, IR control and CD playback. For now, it is running in a RPi4B with Moode 6.4.0. With this extension, you can use Apple Remote to control Moode in RPi4B and roon in Windows.

NOTICE: Use this extension at your own risk, some have not been fully tested!

Demo

I use this system under these scenarios.

  • NAS -> PRi4B(Moode) -> DAC
  • CD Drive -> PRi4B(Moode) -> DAC
  • ROON in Windows -> PRi4B(Roon Bridge) -> DAC
  • ROON in Windows(Surface Go) -> HQPlayer(PC) -> PRi4B(NAA) -> DAC

The OLED display has 3 screens, including Date Screen, Play Screen, and Renderer Screen.

  • Date Screen: Display date and IP.
  • Play Screen: Display song info, only activate if Moode is playing.
  • Renderer Screen: Only activate if Moode is not playing but DAC is occupied.

The OLED display will go out after 10 seconds to prevent OLED burn-in and any key pressed on the Apple Remote will light it for 10 seconds.

Hardware

Wire Connection

IR receiver Module

The Argon One Case reserved a place for VS1838B, just connect it. Insert Flirc USB IR receiver into a windows pc.

OLED Module

OLED Pin GPIO Pin
VCC 3V3
GND GND
DIN MOSI
CLK SCK
CS CE0
DS 24
RST 25

Installation

Requirements

  • Install Roon Bridge and NAA (optional).
  • Follow the instructions to ensure that the OLED module works properly.
  • Follow the instructions to ensure that the IR receiver module works properly. If you use the default position for IR in Argon One, the gpio pin shoule be set as 23.
  • Use sudo apt-get install eject cdparanoia cdde to install packages required by CD playback.

OLED Display

sudo pip3 install luma.oled
cd /home/pi
git clone https://github.com/TongboZhang/Moode_Extension.git
cd Moode_Extension
sudo chmod 755 src/OLEDDisplay/main.py
sudo cp src/OLEDDisplay/oledd.service /etc/systemd/system/

# Test OLED display
sudo systemctl start oledd
# Wait 10 seconds to start the service
sudo systemctl status oledd

# Make OLED service automatically start on boot
sudo systemctl enable oledd

Tidal Connect

sudo su
echo "deb http://archive.raspbian.org/raspbian stretch main" >> /etc/apt/sources.list
exit
sudo apt update
sudo apt install -y multiarch-support libavformat57 git libportaudio2* libflac++6v5* libavahi-common3 libavahi-client3 alsa-utils
curl -k -O -L http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb
sudo apt install -y ./libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb
curl -k -O -L http://security.debian.org/debian-security/pool/updates/main/c/curl/libcurl3_7.38.0-4+deb8u16_armhf.deb
sudo apt install -y ./libcurl3_7.38.0-4+deb8u16_armhf.deb
sudo chmod 755 src/TidalConnect/tidal_connect_application
sudo cp src/TidalConnect/tidal.service /etc/systemd/system/

# Test Tidal Connect service
sudo systemctl start tidal
sudo systemctl status tidal

# Make Tidal Connect service automatically start on boot
sudo systemctl enable tidal

Remote Control

sudo cp src/RemoteControl/apple-silver-A1294-lircd.conf /etc/lirc/lircd.conf.d/
sudo cp src/RemoteControl/irexec.lircrc /etc/lirc

# Test LIRC service
sudo systemctl start lircd
sudo systemctl status lircd

# Test IREXEC service
sudo systemctl start irexec
sudo systemctl status irexec

# Make LIRC and IREXEC service automatically start on boot
sudo systemctl enable lircd
sudo systemctl enable irexec

CD Playback

sudo chmod 755 src/CDPlayback/geneCD.sh
sudo cp src/CDPlayback/99-srX_change.rules /etc/udev/rules.d/

When you insert a CD, it will generate a playlist named CDPlayer automatically.

Usage

After installation, you can use Apple Remote to control Moode in RPi4B and roon in Windows. Here is the key mapping.

Apple Remote Key Description
UP Moode: Previous Track
DOWN Moode: Next Track
Enter Moode: Play/Pause
LEFT Roon in windows: Previous Track
Right Roon in windows: Next Track
Play Roon in windows: Play/Pause
Menu None

Acknowledgment

Thanks to the following posts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.