<< NosPiDAC Daydream | main | NosPiDAC Zero1.3 >>

2020/09/21 月

Raspi DAP Base Ver2

2.8インチタッチ液晶と、Raspberry pi 3A+、Raspbery pi zero用のDACを組み合わせDAPにしてしまおうというモノ

dapo.jpg
dapu.jpg

dapbase2.pdf組み立てマニュアル

RaspiDAPBase.pdf組み立てマニュアル 初期型


2020/9/9 更新
・ベースのVolumioを、2.806にアップした。

2020/6/12 更新
・TDA1541Aにおいて、DEMリクロックがコケる個体があるようなので、resamplingを16/48KHzに固定した。 
CD音源の楽曲しか聞かない人、ハイレゾ音源(96Khz)等を使うときダウンサンプリングしたくない人は、起動後、画面の右下の歯車を押下、「プレイバックオプション」を選択。スクロールして「Audio Resampling」に行き、「Target Sample Rate」をNativeにする。さらに「保存」押下。これで再サンプリングがかからない、ネイティブな音が出る。ただし、石の個体によってノイズが出るのでその場合は「Target Sample Rate」を48Khzに落とすこと。
・CPU数を2とした

2020/1/19 更新
RotaryEncoderに対応。
Alps(EC12E2420801)において、1クリックで1ステップの可変とした。
他のロータリーエンコーダーを使う場合は、スクリプト re.plを
自分で調整のこと。
☆volumioの設定をしたくない人用
設定がクソ面倒で、死んでしまう人用のイメージはこちら。


以下のどちらかを選んで。
液晶によってイメージが違う。
★ノーマル液晶用
★@blue__sevenさんのIPS液晶用


Win32diskimagerで書き込みして、すぐにつかえる。


☆設定済イメージについて
_tkz_さんのプチ音抑止パッチ適用済み(ただし、zeroとpi3のみ。pi4は充ててない。
NosPiDAC以外使う人で、プチ音パッチが邪魔な人は、snd-soc-bcm2835-i2s.koのBackUpが
/lib/modules/4.19.60???/kernel/sound/soc/bcm/snd-soc-bcm2835-i2s.ko.bakとして、オリジナルが避けてあるので、
自分で戻してください。

☆楽曲の入れ方(設定済みイメージを使った場合)
volumioの入っているSDカードをPCにつっこみ、SDの後ろにある未使用領域をFAT32またはexFATでフォーマット。
そこに楽曲を入れていけばOK.
出来ない人はがんばれ。サポートはできない。ぐぐれ
あとは無理やりSDのケツに領域とらんでも、別途USBメモリ刺したっていいんじゃない?


☆基本操作
早送りボタン = 短押しで次の曲、長押しで10秒送り
再生 = 短押しで再生、停止のトグル。長押しで停止
巻き戻し = 短押しで再生中の曲の先頭、連続して押すと、前の楽曲。 長押しで10秒戻り
音量アップ = 短押しで1パーセントアップ、長押しで加速しながら最大10ステップでアップ
音量ダウン = 短押しで1パーセントダウン、長押しで加速しながら最大10ステップでダウン
ロックボタン = 短押しでスクリーンロック(画面消える)、
         長押しでシャットダウン(ラズパイのグリーンLEDが消えたらスイッチオフにする)

設定は、SDカードをPCにマウントして、先頭パーティション(boot)の、init.txtをいじる

ボタンの種類は、以下によって導き出す

Btn1 = 戻るボタン
Btn2 = 再生ボタン
Btn4 = 進むボタン
Btn8 = 音量アップボタン
Btn16 = 音量ダウンボタン
Btn32 = ロックボタン

# ボタン機能一覧
1 前のトラック
2 seek- 10秒
3 WiFi Power Max/Minトグル
4 Stop
5 Play / Pause トグル
6 次のトラック
7 seek+ 10秒
8 shutdown
9 WiFi Power Max
10 WiFi Power Min
11 Play
12 Pause
15 音量+ / 長押し連続可変
16 音量- / 長押し連続可変
17 画面ロック・アンロック

たとえば、Btn32=11とすると、ロックボタンで再生になる。
戻るボタンと、進むボタンと再生ボタンを同時押しの場合は、

1+2+4 = 7
Btn7がそれにあたる。

長押しの場合は、64を足す。
たとえば、戻るボタン長押しは、
1 + 64 = 65
なので、Btn65となる

このことから、同時おししたい場合は、ボタンをすべて足す。さらに長押しとしたい場合は、64を足す。
となる。

ーーーーー


☆volumioの設定を自分でする人用の説明

オフィシャルイメージをダウンロード、SDカードにwin32diskimagerを使って書き込み。

bootパーティションの以下2ファイルを修正。

config.txt
以下を追加
----
dtparam=spi=on
dtparam=i2c1=on
dtparam=i2c_arm=on
dtoverlay=pitft28-resistive,rotate=0,speed=32000000,fps=30
dtoverlay=ads7846,penirq=17,speed=10000,penirq_pull=2,xohms=150
disable_overscan=1

cmdline.txt
以下を、その行の一番後ろに追加
----
fbcon=map:10 fbcon=font:VGA8x8 consoleblank=0

ラズパイに刺して起動して、初期設定をすませておく。
http://volumio.local/DEV/
にアクセスして、ssh を enableにする。

putty等で接続
ホスト名 volumio.local
ユーザ volumio
パスワード volumio

wget http://www.telnet.jp/~mia/volumio/btn_pa.bin
wget http://www.telnet.jp/~mia/volumio/init_pa.bin
wget http://www.telnet.jp/~mia/volumio/re.bin

sudo mv btn_pa.bin btn.pl
sudo mv init_pa.bin /boot/init.txt
sudo mv re.bin re.pl
chmod 755 btn.pl
chmod 755 re.pl
chmod 666 /boot/init.txt

sudo nano /etc/rc.local

一番最後の行に
exit 0

があるので、その上に以下を追加
/home/volumio/btn.pl & > /dev/null 2>&1
/home/volumio/re.pl & > /dev/null 2>&1

保存して閉じる。
CTRL + x を押す
さらに y を押す
そのまま enter を押す

ここでいったん、リブート
スクリプトがきちんと有効なっていれば、液晶が点灯するはず。

http://volumio.local/
にアクセスして、タッチディスプレイプラグインをインストール、有効化する。

putty でつなげて以下を行う。
sudo systemctl stop volumio-kiosk.service
sudo sed -i "s+/dev/fb0+/dev/fb1+" /usr/share/X11/xorg.conf.d/99-fbturbo.conf
sudo systemctl start volumio-kiosk.service

これで、kiosモードが起動するが、タッチパネルがイカれてる状態なはず。
kioskモードの表示が100%だと、UIが崩れるので、67%以下にする。
適当のUSBキーボードをラズパイに突っ込んで、CTRL + -で、画面縮小。CTRL + + で、拡大。

以下、タッチパネルの調整を行う。

sudo apt-get update
sudo apt-get install unzip raspi-config fonts-ipafont xinput
sudo apt-get install git dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev
cd /home/volumio
sudo apt-get install libxaw7-dev libxxf86vm-dev libxaw7-dev libxft-dev
git clone https://github.com/KurtJacobson/xtcal
cd xtcal
make
DISPLAY=:0.0 xinput set-prop "ADS7846 Touchscreen" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
DISPLAY=:0.0 xtcal/xtcal -geometry 240x320

画面にタッチパネルでタッチする印がでるので、それをタッチしていく。

以下のような形でキャリブレーションの値が帰ってくるので、

>>>'Coordinate Transformation Matrix' 1.114796 0.018122 -0.081768 0.003463 -1.135574 1.079316 0 0 1

それをもとに、以下のファイルを作成

/usr/share/X11/xorg.conf.d/99-calibration.conf

Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "TransformationMatrix" "1.114796 0.018122 -0.081768 0.003463 -1.135574 1.079316 0 0 1"
Option "SwapAxes" "0"
EndSection

再起動して完了。


☆以下NosPiDAC向け設定

/etc/mpd.confに以下の1行を追加。
audio_output_format "*:32:*"

以下の情報を参考に、ポップノイズ抑止パッチをあてる
http://tkz.hateblo.jp/entry/2018/07/30/231145