Wednesday, 29 October 2014

Squeeze on Arch

早排買左隻 Cubox-i, 想用嚟做 Logitech media server (LMS), 起初用 Voyage Mubox, 後來發現 driver 有問題令 wifi 不能使用.
跟住好辛苦咁裝左 Arch Linux, 行 LMS 7.8. 但早幾日google search 到原來已經有高手做左個 package 可以(差不多)一步到位.
http://forums.slimdevices.com/showthread.php?101624-Announce-Squeeze-on-Arch-developer-version

這package 叫 "Squeeze on Arch", 現在只係 version 0.1, 即係所謂的 beta 版本, 好初步的. 我跟住佢step 裝左, 用到. 基本上這版本算用得下了.

1. 安裝
跟番上面個post咁做, 只係找一台Linux PC/ARM, download左個script, 行佢, 咁所有野會自動做, 約十分鐘之後便完成, 取出SDcard 插在 Cubox (或其他支援的 ARM device), 開機便可登入 (http://arm_ip ), "arm_ip" 是你的 ARM device 的 IP address.

2. 使用
入左個 web admin UI, 不用 login, 乜都有晒, 可以不用再 SSH, 做到 mount NFS, internal hard disk, setup network (wired / wireless), setup LMS server (有7.8 或7.9可選), setup squeezelite 同開 samba server (令隻 ARM device 的hard disk share 出來)

3. 補充
雖然都好OK, 但我發現有一個小問題, 係佢個 Linux OS default charset 不是用 UTF-8, 所以中文顯示會有問題 (在 "Music Folder" view 中), 解決方法如下:
3.1. Login SSH (user ID "root", password "root")
3.2. 執行以下指令:
echo "LANG=en_US.UTF-8" > /etc/locale.conf
vi /etc/locale.gen
(uncomment the en_US.UTF-8)
locale-gen
locale -a
3.3 reboot (可以去 web admin UI 做)

Wednesday, 3 September 2014

大地盒

去年做一個地盒加插座, 上星期再做多個, 但這個只有一個接口, 用來接前級.
現在所有器材都不接地線. 只有前級接了地盒.

地盒的原理像一個電池, 把器材的游離電子吸引, 盒內的電氣石可把電能轉變為動能. 令整體的游離電子減少. 而白晶石則據說有消磁功能. 所以也少量加入. 至於金屬板的目的是增加接觸石的接觸面.

黑石和其他石的分量是7 比 1. 例如這個地盒便用了7公斤的電氣石和1公斤的其他晶石.

原理就是這麼簡單, 至於如何可以做得好? 就是注意以下數點:
1. 體積 - 因為地盒原理等同電池的相反 (吸電唔係放電), 愈大愈吸得勁.
2. 震 - 因為石是把電磁波能量轉變為動能, 反之, 它也可把動能轉變為電磁波能量. 所以如何防震和化震是要考慮.
3. 保養 - 氧化會使金屬的導電性能大減, 有人做地盒會放入生銹鐵等, 我對這些做法想不明白, 可能他們真的聽得出很有效, 但小弟的知識層面不能令小弟相信, 小弟只做的是相反: 如何防氧化.

上面說了, 做地盒其實十分容易, 最貴的只是地盒線. 因為用了不同的線材是會有聲音的分別, 當然, 地盒內的金屬同道理也是會有影響, 我這個地盒做了千多元, 要是你不能克服自己的心魔, 你做的地盒一定會價值不菲. 如何取捨? 你是懂的.

首先是要找個盒, 我手上有個DIY過現在沒用的鋁箱, 所以加塊銅板把之前的孔蓋住了便能用. 因為石粒很細, 會漏出來, 建議做好防漏!
 如相中, 白色的便是我做的防漏

在箱後方加一個接口. 其實不加也可以, 因為箱子現在是導電的.

 內部四周加上damping material. 也作為防漏之用.

放上銅片, 目的是增加接觸面.

石:

加入所有石.

做了導電測驗, ok便上蓋
 完成



Wednesday, 6 August 2014

Cubieboard2 with Logitech Squeezebox Media Server 入箱

成功做左部給 SBR 的 music server, 又証實左聲音有正面改善, 下一步就係做一個箱將佢放入去.

之前是 Cubieboard2 + 2.5" WD notebook 5400rpm hard disk + 150Mbps Wi-Fi USB dongle, 用一隻5V LPS供電. 手上多出一隻54VA O-shape 7N toroidal transformer. 有四組輸出. 打算用它:
5V -> Cubieboard
5V -> WD hard disk
5V -> Wi-Fi dongle

將本來一個 5V 供電打成3組, 音色應該可以些.
這次也用了之前用過的 NCP565 1.2V LDO (7485271), 不過是 D2PAK 和 3.3V (7852432)

只要用LED把 GND lift 起2V左右. 我用的 LED 比 Zener 好的是它可以有低至1.8V-2.2V 的 forward voltage (depends on current and LED model. For detail please refer to datasheet). 我可以不用找 2V 的 Zener.

開了的情況

供電是最簡單的 setup. 獨立3組 secondary winding 給Wi-Fi, hard disk & CB2

Power button 也引到箱尾方便 force power on / off.


USB 引線到箱尾. 另外, 箱內有 USB DDC 共用. 果 part 未整好.




相關Blog文:
摩改 Squeezebox Duet Receiver (上)
摩改 Squeezebox Duet Receiver (中)
摩改 Squeezebox Duet Receiver (下)
不用 Squeezebox Duet Controller 的方法 - Net::UDAP - SqueezeBox Receiver configuration tool

Monday, 4 August 2014

Squeezebox Receiver / Touch 直駁 LMS (Logitech Media Server)

個多月前在Review33上見到Welborne兄話用 SB Touch 直駁 NAS 再用搖控選歌比經 wi-fi router 接駁好聲云云. 我看到後, 信會好, 但我心中即時有個問號: "好幾多?"

因為我信係會好, 只係好多少的問題, 既然我本身有隻 Cubieboard2 係度, 佢有 SATA port, 又夠簡單, 用嚟做 LMS 加隻 wifi dongle 俾 iPad 接入應該可以做到:

iPad (iPeng) <-> CB2 (LMS) <-> SBR (player)
就咁諗都可行, 於是就開工....

雖然諗就好似好簡單, 但原來執行上嚟有好多問道:
1. CB2 我係行緊 Voyage MPD (w/RT kernel), 但無LMS. 我要先學習如何在 Voyage Linux 上安裝 LMS
2. CB2 加 Wi-Fi USB dongle 不知如何攪. 已知係, 我的 Wi-Fi USB dongle 是 Realtek chip, 我以前 build RT kernel 時已經加入左 Realtek Wi-Fi chip 的 module, 所以 driver 應該是無問題的. 只是 Wi-Fi 的設定是個未知素.


在開始安裝前, 先接上一隻 hard disk, 並在 /etc/fstab 中加入 mount point 的動作, 例如:
mkdir -p /mnt/sata
echo "/dev/sda1 /mnt/sata ntfs defaults,noatime,ro,nls=utf8 0 0" >> /etc/fstab
試一試:
mount /media/sata
ls /media/sata
你也可以安裝 NFS / CIFS services, 把 mount point 設定成 read/write, 這樣以後加減歌可以經 network.


1. 安裝 LMS
不斷的 google, 試, 攪左兩三個星期, 我終於做到了, 原來因為 CB2 同 Rapsberry Pi 硬件上係好近似, 所以其實只要用番 LMS for Pi 的 setup 便可:

Reference: http://allthingspi.webspace.virginmedia.com/lms.php

以上的是 copy-and-paste 自上面的網頁:
"1. Update some stuff and install some libraries. If you are prompted to reboot your Pi after this step, type reboot and hit enter.
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install libjpeg8 libpng12-0 libgif4 libexif12 libswscale2 libavcodec53
2. Download Logitech Media Server and install.
wget http://downloads.slimdevices.com/LogitechMediaServer_v7.7.2/logitechmediaserver_7.7.2_all.deb
sudo dpkg -i logitechmediaserver_7.7.2_all.deb
3. Stop the Logitech Media Server service.
sudo service logitechmediaserver stop
4. Download and extract some files used for this how-to guide to save you having to build everything yourself.
wget http://allthingspi.webspace.virginmedia.com/files/lms-rpi-raspbian.tar.gz
tar -zxvf lms-rpi-raspbian.tar.gz
5. Patch the bootstrap perl module.
sudo patch /usr/share/perl5/Slim/bootstrap.pm lms-rpi-bootstrap.patch
6. Move some files into place, create symbolic links, refresh dynamic linker bindings.
sudo mv arm-linux-gnueabihf-thread-multi-64int /usr/share/squeezeboxserver/CPAN/arch/5.14/
sudo mv libmediascan.so.0.0.0 libfaad.so.2.0.0 /usr/local/lib
sudo mv /usr/share/squeezeboxserver/Bin/arm-linux/faad /usr/share/squeezeboxserver/Bin/arm-linux/faad.old
sudo mv faad /usr/share/squeezeboxserver/Bin/arm-linux
sudo ln -s /usr/local/lib/libmediascan.so.0.0.0 /usr/local/lib/libmediascan.so
sudo ln -s /usr/local/lib/libmediascan.so.0.0.0 /usr/local/lib/libmediascan.so.0
sudo ln -s /usr/local/lib/libfaad.so.2.0.0 /usr/local/lib/libfaad.so
sudo ln -s /usr/local/lib/libfaad.so.2.0.0 /usr/local/lib/libfaad.so.2
sudo ldconfig
7. Fix some permissions.
sudo chown -R squeezeboxserver:nogroup /usr/share/squeezeboxserver/
8. Start the Logitech Media Server service.
sudo service logitechmediaserver start
Point your browser at "http://<pi ipaddress here>:9000" and configure the Logitech Media Server. After this you should be able to connect with a player, or if you want to use the same Pi to play the music as well as serve it, continue on........."

我不會安裝 squeezelite 因為不打算USB出DAC/DDC.

2. 設定 Wi-Fi
又攪左好耐(2星期), 最後發現原來 Voyage Linux 本身已經做好晒. 只要將 Wi-Fi dongle 插入, 再把想做的 setting 在 /etc/network/interfaces 中 uncomment 了, 再執行 service networking restart 便可.

做 Wi-Fi 的設定有好多好多種, 我會建議以下兩種二選一

2.1 Ad-hoc mode
Wifi ad-hoc mode 意思係建立一個小型 Wi-Fi network 作共享模式. 好處係簡單 setup, 壞處係 iPad 加入了 ad-hoc network 後便不能上網, 因為 ad-hoc 的機 (CB2 和 iPad) 都沒有接上 router network, 所以不能出 Internet.

如打算做 ad-hoc mode, 你的 interfaces file (/etc/network/interfaces) 的設定可以如下:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
  address 192.168.1.8
  netmask 255.255.255.0
  broadcast 192.168.1.255
#
# As ad-hoc
#
auto wlan0
iface wlan0 inet static
  address 10.1.10.1
  netmask 255.255.255.0
  broadcast 10.1.10.255
  up iwconfig wlan0 essid voyage-adhoc mode Ad-hoc

eth0 便是 (有線) LAN 的 interface. 這個用的 IP address 和 subnet 要和 SBR 一致. 如果你的 SBR 設定了 static IP, 咁你不用開 DHCP server. 但如果你的 SBR 是使用 dynamic IP, 咁你要在 CB2 上開啟 DHCP server. (DHCP server setup 會在下面提到)

wlan0 因為是 adhoc network, 它和其他 join 左這 adhoc network 的機 (如 iPad) 都一係要用 fix IP, 一係要有一個 DHCP server 派 IP. 請留意.

做了以上的設定, reboot / restart networking service 便可在 iPad 上見到有個 "voyage-adhoc" 的 ad-hoc network, 接上後再開 iPeng 便會見到 SBR.

2.2 Wi-Fi client mode
Wi-Fi client mode 意思係把 Wi-Fi dongle connect 到你家中已有的 Wi-Fi network. 這個的好處係你的 iPad 可以上網, 但因為把 Wi-Fi dongle 接到家中 Wi-Fi network, 在同一個 network 中多了 traffic, 對 CB2 的 Wi-Fi interface 的工作一定較多, 會有影響但未必聽得出.

如打算做 Wi-Fi client mode, 你的 interfaces file (/etc/network/interfaces) 的設定可以如下:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
  address 10.1.20.1
  netmask 255.255.255.0
  broadcast 10.1.20.255
auto wlan0
iface wlan0 inet static
  address 192.168.1.98
  netmask 255.255.255.0
  broadcast 192.168.1.255
  wpa-driver wext
  wpa-ssid {see_below}
  wpa-ap-scan 1
  wpa-proto RSN
  wpa-pairwise CCMP
  wpa-group CCMP
  wpa-key-mgmt WPA-PSK
  wpa-psk {see_below}
我的家是用 WPA2 的, 如果你的不是 WPA2, 請自行選擇合適的 WPA setting (在 /etc/network/interfaces 中把合適的 WPA setting  uncomment 便可.

"wpa-ssid" 填上你的 SSID
"wpa-psk" 要填上一個已經 encrypt 的 Wi-Fi 密碼, 你要打這個 linux command 去取得適合你家 network 的密碼:

wpa_passphrase MYSSID passphrase

例如你家的 network SSID 是 "my_wifi", Wi-Fi 密碼 (passphrase) 是 "password1234". 這樣便輸入

wpa_passphrase my_wifi password1234

再把它回來的字串貼在 "wpa-psk" 後面.

3. DHCP Server
原來開一個獨立 network 給 LMS <-> SBR 是需要有 DHCP server. 好在 Voyage Linux 本身已經有了一個小型 DHCP server service, 不過沒有啟動, 只要做以下的設定便可:

vi /etc/dnsmasq.more.conf
入到去會見到已經有一些不同的 interface 定了不同的 IP subnet 作為一旦開放 DHCP service 時的參考.
#dhcp-range=wlan0,10.1.10.10,10.1.10.250,24h
#dhcp-range=eth1,10.1.20.10,10.1.20.250,24h
#dhcp-range=eth2,10.1.30.10,10.1.30.250,24h
#dhcp-range=eth3,10.1.40.10,10.1.40.250,24h
dhcp-leasefile=/var/tmp/dnsmasq.leases

只要把你想要開 DHCP server 的 interface uncomment 左便可. 當然要留意 IP subnet 是否跟你在 /etc/network/interfaces 中的定義一至. 否則也會不能接上.

例如你想把 eth0 設定成有DHCP service, subnet 用 192.168.1.x, wlan0 也要有 DHCP servcice, subnet 用 10.1.20.x, 咁可以:
dhcp-range=eth0,192.168.1.10,192.168.1.250,24h
dhcp-range=wlan0,10.1.20.10,10.1.20.250,24h
dhcp-leasefile=/var/tmp/dnsmasq.leases

Reboot, or re-start dnsmasq 便可.

Reference: http://svn.voyage.hk/repos/voyage/branches/voyage-live/0.9.2/config/includes.chroot/README

相關Blog文:
Cubieboard2 with Logitech Squeezebox Media Server 入箱
摩改 Squeezebox Duet Receiver (上)
摩改 Squeezebox Duet Receiver (中)
摩改 Squeezebox Duet Receiver (下)
不用 Squeezebox Duet Controller 的方法 - Net::UDAP - SqueezeBox Receiver configuration tool

Sunday, 3 August 2014

不用 Squeezebox Duet Controller 的方法 - Net::UDAP - SqueezeBox Receiver configuration tool

要設定 Squeezebox Duet Receiver (SBR), 本來是需要用它的 Controller (下圖右方的):

現在有了 iPad + iPeng, 基本上我們也不會用 Squeezebox Duet Controller (SBC). 可是, 若要 reset SBR, 因為 SBR 是沒有輸入和畫面的, 令 SBC 成為必須...

不過, 其實網上早已有人做了一個 Perl 程式可以做到SBC相同的設定工作:

http://forums.slimdevices.com/showthread.php?57861-Net-UDAP-SqueezeBox-Receiver-configuration-tool

這個對不太熟識 Perl 程式是不太易用. 於是, 有有另一熱心網友做了一個 MS-Windows executable 把需要的 Perl library 都包裝成一個獨立的 executable. 只要你下載它便可在 MS Windows 上運行. 我在我的 Windows 7 (64 bit) 也能正常使用:

http://forums.slimdevices.com/showthread.php?57861-Net-UDAP-SqueezeBox-Receiver-configuration-tool&p=453478#post453478

更好的是, 作者把使用說明也詳細列出:
https://projects.robinbowes.com/Net-UDAP/trac/wiki/SampleUsage

舉例, 你想 reset 你的 SBR, 只要插住供電, 長按5秒直至它慢閃紅燈便可打開上面的程式.

如果你的NAS 是 192.168.1.150, 你想 SBR 用DHCP 取得IP address, 只要打以下的command 便可.
discover
conf 1
set interface=1 lan_ip_mode=1 squeezecenter_address=192.168.1.150
save_data
reset

相關Blog文:
摩改 Squeezebox Duet Receiver (上)
摩改 Squeezebox Duet Receiver (中)
摩改 Squeezebox Duet Receiver (下)
Squeezebox Receiver / Touch 直駁 LMS (Logitech Media Server)
Cubieboard2 with Logitech Squeezebox Media Server 入箱


原文:

Sample Usage

This page gives examples of how to use Net-UDAP.
Generally, you should be able to take one of these commands, change some values to match your own environment (SqueezeCenter address, wireless network details, etc.) and use them to configure your SqueezeBox.
The examples make the following assumptions:
  • your SqueezeBox has been factory reset before beginning
  • you have only one SBR to configure, ie. you will use conf 1 to select it.
  • my SqueezeCenter instance is on 192.168.1.150
  • I am in the UK, so I use wireless region id 14
  • my wireless network name (SSID) is mySSID

Configuration Fragments

Connect to SqueezeNetwork

set server_address=0.0.0.1

Wired Network

set interface=1

Wireless Network

set interface=0

Static IP

set lan_ip_mode=0

DHCP

set lan_ip_mode=1

WEP 64-bit

set wireless_SSID=MySSID wireless_mode=0 wireless_region_id=14 wireless_wep_on=1 wireless_keylen=0 wireless_wep_key_0=1a2b3c4d5e

WEP 128-bit

set wireless_SSID=MySSID wireless_mode=0 wireless_region_id=14 wireless_wep_on=1 wireless_keylen=1 wireless_wep_key_0=112233445566778899aabbccdd

WPA 1

set wireless_SSID=MySSID wireless_mode=0 wireless_region_id=14 wireless_wpa_on=1 wireless_wpa_mode=1 wireless_wpa_psk="Top Secret!"

WPA 2, TKIP+AES

set wireless_SSID=MySSID wireless_mode=0 wireless_region_id=14 wireless_wpa_on=1 wireless_wpa_mode=2 wireless_wpa_cipher=3 wireless_wpa_psk="Top Secret!"

Complete Examples

Wired, DHCP

discover
conf 1
set interface=1 lan_ip_mode=1 squeezecenter_address=192.168.1.150
save_data
reset

Wired, static IP

discover
conf 1
set interface=1 lan_ip_mode=0 lan_gateway=192.168.3.1 lan_network_address=192.168.3.10 lan_subnet_mask=255.255.255.0 primary_dns=192.168.3.1 squeezecenter_address=192.168.1.150
save_data
reset

Wireless, 64-bit WEP, DHCP

discover
conf 1
set interface=0 wireless_mode=0 wireless_region_id=14 wireless_SSID=MySSID wireless_wep_on=1 wireless_keylen=0 wireless_wep_key_0=1a2b3c4d5e lan_ip_mode=1 squeezecenter_address=192.168.1.150
save_data
reset

Wireless, 64-bit WEP, static IP

discover
conf 1
set interface=0 wireless_mode=0 wireless_region_id=14 wireless_SSID=MySSID wireless_wep_on=1 wireless_keylen=0 wireless_wep_key_0=1a2b3c4d5e lan_ip_mode=0 lan_gateway=192.168.3.1 lan_network_address=192.168.3.10 lan_subnet_mask=255.255.255.0 primary_dns=192.168.3.1 squeezecenter_address=192.168.1.150
save_data
reset

Wireless, 128-bit WEP, DHCP

discover
conf 1
set interface=0 set wireless_mode=0 wireless_region_id=14 wireless_SSID=MySSID wireless_wep_on=1 wireless_keylen=1 wireless_wep_key_0=112233445566778899aabbccdd
 lan_ip_mode=1 squeezecenter_address=192.168.1.150
save_data
reset

Wireless, WPA1, DHCP

discover
conf 1
set interface=0 wireless_mode=0 wireless_region_id=14 wireless_SSID=MySSID wireless_wpa_on=1 wireless_keylen=1 wireless_wpa_psk="Top Secret!" lan_ip_mode=1 squeezecenter_address=192.168.1.150
save_data
reset

Wireless, WPA2, TKIP+AES, DHCP

discover
conf 1
set interface=0 wireless_mode=0 wireless_region_id=14 wireless_SSID=MySSID wireless_wpa_on=1 wireless_wpa_mode=2 wireless_wpa_cipher=3 wireless_wpa_psk="Top Secret!" lan_ip_mode=1 squeezecenter_address=192.168.1.150
save_data
reset

Bridged, WPA 1, TKIP+AES

Setup: Server (with Squeezecenter) <-wire-> Receiver <-wireless-> Wifi network (with router, and other computers)
Additional setup parameters:
  • lan-address of receiver: 192.168.1.136 (static)
  • gateway (adsl router for instance): 192.168.1.1
  • Primary DNS (same as on adsl router): 23.23.23.1
  • Secondary DNS (same as on adsl router): 23.23.23.2
discover
conf 1
set lan_ip_mode=0 lan_network_address=192.168.1.136 primary_dns=23.23.23.1 secondary_dns=23.23.23.2 server_address=192.168.1.150 squeezecenter_address=192.168.1.150 lan_gateway=192.168.1.1 wireless_SSID=mySSID wireless_mode=0 wireless_region_id=14 wireless_wpa_cipher=3 wireless_wpa_on=1 wireless_wpa_mode=1 wireless_wpa_psk="Top Secret!" wireless_channel=6 interface=0 bridging=1
save_data
reset

Saturday, 2 August 2014

摩改 Squeezebox Duet Receiver (下)

到了 SBR 摩改下集, 希望這個是終極摩改, 事實上, 做了這摩改後你會發現這個是最重要的摩改.

這個摩改只有一個目的, 要為 SBR 的 S/PDIF signal 加上 tube buffer. 這是完全根據 Lampizator 的教學做成的 (all credit goes to Lukasz Fikus Lampizator), 如果你不想 DIY 或 想省時減少風險的話, 請直接在 Lampizator 的 online shop 買他的 Squeezebox transport 或 6111 Miniature Stereo Lampizator kit DIY kit:
http://lampizator.eu/shop/viewcategory.php?groupid=19

Digi Lampizator Manual

做法好簡單, 只要把前文中提到的 Xilinx pin 3 (或 R102 近 Xilinx 的一邊)取出, 接上 triode 的 grid. 再將 Cathode follower 的 cathode 接上一粒coupling capacitor (0.1uF - 1uF) 再如常接上 BNC 輸出至DAC.

這個 tube buffer 的重點在於加入膽的味道(噪音). 所以 triode 的B+供電如用上膽整流會更好. 我用了 6x5 做了膽整流 (也可以用直熱式如274B). 至於Cathode Follower 的膽沒有特別要求. 用 12AU7, 12AT7 或 12AX7 基本上只要 pinout相容便可, 聲音會有幾明顯的分別, 最好根據膽的電氣性質更改電阻的數值.


以下是給 triode 的供電. 我做了 CLCLCRC 的 filter. 因為手上的牛不能做全波整流, 只可以做半膽半石整流.


完成品


(使用了一個月後) 再換鐘...
朋友話不如換另一個鐘看看效果會不會更好, 我地買左 Neutrino Audio Reference Clock.





 安裝後...


聲音是比MR-SuperClock好了不少, 結象強左. 但以這個價錢我覺得算是貴. 只是追求 high end 的玩家才有需要換上這個.

相關Blog文:
摩改 Squeezebox Duet Receiver (上)
摩改 Squeezebox Duet Receiver (中)
不用 Squeezebox Duet Controller 的方法 - Net::UDAP - SqueezeBox Receiver configuration tool
Squeezebox Receiver / Touch 直駁 LMS (Logitech Media Server)
Cubieboard2 with Logitech Squeezebox Media Server 入箱

Thursday, 31 July 2014

摩改 Squeezebox Duet Receiver (中)

之前講過 SBR 的硬件架構, 現在談如何摩改它的供電達到更 high end 的音響輸出.

SBR 是9V 0.5A 輸入
輸入的9V 不會直接使用. 板上有3組 voltage regulation 把這9V 分成 5V, 3.3V 和 1.2V. 以我理解, 5V 是給 WM8501 DAC chip 使用的, 而 3.3V 就給大多的 chip 使用. 1.2V 估計是給 RAM 使用.

要改善供電, 環牛和線性穩壓唔少得. 這次我首次使用 Silver OCC O-type Toroidal Transformer.




訂做的是一隻54VA的銀牛, 有以下輸出:
9V 1A
8V 0.5A
6.3V 2A
6V 2A
5V 1A
5V 1A

我打算這樣使用:

9V 1A - replace SBR DC input
8V 0.5A - clock
6.3V 2A - tube heater
6V 2A - Duet Controller (charger)
5V 1A - 3.3V
5V 1A - 1.2V



給9V電源做線性供電. 我只用了很簡單的 L7809 做.

建議先加些電容上 9V 輸入旁邊

(把C6移去, 接上任意一粒220uF或以上的電容)

好了,通電沒問題可以繼續....

接下來有些難度, 我會把原來的 3.3V 和 1.2V voltage regulator 移去, 換上外置的:

用小小力拆下 wi-fi card (因為有雙面膠貼, 首次除下來時要使點勁), 同時也移去 wifi 天綫. 你應該不要用 wifi 只用 wired LAN.. 在 Wifi 卡下你會看到有 3.3V 和 1.2V 的 voltage regulation circuit.



只要把 L1小心銲起, 你便可以把外來的 3.3V 輸入插在3V3 和 GND 上.
1.2V 的做法相同, 只要把L3銲起, 把外來的 1.2V 輸入插在1V2 和 GND 上.



如果想得到最佳的效果, 你最好把這裡的東西都全移去.

上面的相片未完全清除, 你可以把那堆 ceramic capacitor 和SMD電阻都移去.


 3.3 V 我使用 newclassD 的3.3V regulator.因為手中有存貨. 你也可以用 LT1086-CT33 或類似的 LDO regulator, 只要是 linear power supply voltage regulator 和獨立供電, 出來的效果也會比原來的好不少.

1.2V 比較難找, 因為技術上 1.2V 的 voltage reference 太低, 難做. 但我也找到粒很合用的 LDO regulator: NCP565

(NCP565 也有3.3V的, 但因為3.3V 的電流較大, 請注意散熱, 如分散每粒IC 一粒LDO應該是最理想)


它有 1.2V 固定輸出的, 而且它的 spec 比 L78xx 和 LT系列的 LDO regulator 都要好dd (其實都好唔少), 價錢也不貴 (RS 賣 $7.x 一粒!) 跟其他所謂 hifi 用的 discrete regulator 比較, 這粒 LDO 的性價比其高!


 我把這LDO直接銲在PCB 上 1.2V + GND 的位置, 再把供電引線上去.


 到了5V, 這個我暫時只知道它是給 WM8501 DAC chip 使用, 我只是移去了 WM8501 便算. 把5V LDO 保留下來.

摩改電源後的 SBR 已經是脫胎換骨, 聲音比之前清晰, 十分立體, 毛燥感大減. 但不要停下來, 因為SBR 最過癮的地方是可以換鐘.

下一步便是換鐘, 這是個相當大的工程...我們要在 Xilinx 鈎出 clock-in, 也會鈎出 S/PDIF out 作之後的摩改.


前面說到, 原來的是分兩粒鐘, 給 44.1 和48K 及其倍數做拍子. 因為我只想播放 44.1 的CD檔, 所以我只會換了 11.289MHz 的那粒 quartz crystal resonator.

根據相片所示, 將 R104, R41 Y1 和 Y2 移去, 這樣目的是把74HCU04D的跟 Xilinx 的連接斷開. 我們只要Xilinx的干淨S/PDIF signal.
(http://forums.slimdevices.com/showthread.php?55044-Would-it-make-sense-to-mate-a-Duet-rcvr-w-external-I2S-DAC&p=494687&viewfull=1#post494687)

Xilinx 的真正 clock in 在 pin 42 (右上數下第3條). 如果你技術夠, 直接把鐘線接這點是最干淨的.否則你也可以接在 R104 近 Xilinx 的一邊. 它是跟 pin42 互通的.

另外把 R102  移去,目的是把 Xilinx 的S/PDIF signal (pin3) 輸出懸空, 及後我們會對它另有用途.

注意: 做了以上的動作後, SBR已經不能因應音樂的 sample rate 自動改變 clock frequency, 除非你的外置鐘是會讀取和分析 sample rate 和改變 clock out frequency.
(http://forums.slimdevices.com/showthread.php?55044-Would-it-make-sense-to-mate-a-Duet-rcvr-w-external-I2S-DAC&p=498948&viewfull=1#post498948)

我在 Lampizator 的 DIY 店買了他的 clock DIY kit:
http://lampizator.eu/shop/viewitem.php?productid=59

回來只要給它供電 7-12V DC 便可. 你只要把供電或clock out 的 ground 和 SBR 的 ground 接通便可 (不用同時兩條 ground 都接, 聲音有可能會打了折扣!)

換了鐘後你會發覺原來 SBR 可以咁好聲.去到呢度已經可以收工, 但如果你想玩埋 tube buffered S/PDIF, 咁就睇埋下集.

Reference:
1. http://theartofsound.net/forum/showthread.php?3161-Squeezebox-Duet&p=100820#post100820
2. http://lampizator.eu/LAMPIZATOR/Squeezebox/SQB-Transport/squeezeboxtransport.html
3. http://forums.slimdevices.com/showthread.php?55044-Would-it-make-sense-to-mate-a-Duet-rcvr-w-external-I2S-DAC&p=494687&viewfull=1#post494687
4. http://forums.slimdevices.com/showthread.php?55044-Would-it-make-sense-to-mate-a-Duet-rcvr-w-external-I2S-DAC&p=498948&viewfull=1#post498948
5. http://forums.slimdevices.com/showthread.php?55044-Would-it-make-sense-to-mate-a-Duet-rcvr-w-external-I2S-DAC&p=499665&viewfull=1#post499665

這是有關 SB3, 但十分詳盡, SB3跟 SBR 其實是十分類似的
1. http://bbs.hifidiy.net/forum.php?mod=viewthread&tid=216831
2. http://reizaudio.wordpress.com/2008/04/02/squeezebox-3/

相關Blog文:
摩改 Squeezebox Duet Receiver (上)
摩改 Squeezebox Duet Receiver (下)
不用 Squeezebox Duet Controller 的方法 - Net::UDAP - SqueezeBox Receiver configuration tool
Squeezebox Receiver / Touch 直駁 LMS (Logitech Media Server)
Cubieboard2 with Logitech Squeezebox Media Server 入箱

Wednesday, 30 July 2014

摩改 Squeezebox Duet Receiver (上)


Squeezebox Duet Receiver (SBR) 的可塑性很高, 原因係:
1. 有 S/PDIF
2. 有I2S: MCK, BCK, DATA, LRCK
3. 有獨立的鐘給 44.1k 和 48k sample rate (及其倍數)
4. 有獨立的元件去做控制 networking (wired & wi-fi), data buffering & re-clocking 及 S/PDIF & I2S encoding.
5. 比較容易去用獨立供電給不同的元件
6. 本身已是一個 squeezebox client, 不用攪很多 software 的設定, 軟件上的便捷度是近乎完美的.

其實"獨立的鐘"是它的最大賣點, 否則用一台 Rapsberry Pi 已經可以有 I2S (BCK, DATA, LRCK), 一台 Cubieboard 或 Hammingboard 已經有 S/PDIF.

由今年五月開始, 我便埋首研究如何摩改這個 SBR, 在網上找到些前人高手的討論, 現在綜合給有興趣的DIY友參考:


first you have to open the magic box. Remove the 'sticker' on the bottom. Then you see the 4 little bolts
 (http://forums.slimdevices.com/showthread.php?55044-Would-it-make-sense-to-mate-a-Duet-rcvr-w-external-I2S-DAC/page15


細看這SBR:
1. Realtek network chip RTL8201CP: 

細閱它的 datasheet:
http://realtek.info/pdf/rtl8201cp.pdf


它的pin assignment 中提到, X1 是食 clock signal 的.

 另外, 它也有分開 analog 同 digital power input/ground. 都是食 3.3V DC 的.

這個可以摩改的不多, 事實上也不用, 因為由 network 入來的 data 會給下面的 CPU (Xilinx) 放入 flash memory 中做 buffering & reclocking. 這個 25MHz quartz crystal resonator 是給 realtek chip 打拍子的. 換了的改善不明顯.

2. 74HCU04D hex inverter chip
Datasheet: http://www.nxp.com/documents/data_sheet/74HCU04.pdf


這是一個十分簡單(便宜)的東西, "應該"是用作生產S/PDIF signal 的. 但這裡說它不是,看過其他網友的意見, 決定不用這個 74HCU04D 取 S/PDIF signal.

3. Ubicom IP3023
Technical Brief: http://www.texim-europe.com/getfile.aspx?id=68543
The IP3023™ wireless network processor is a revolutionary new
platform from Ubicom designed to provide highly integrated
solutions for applications at the "edge" of Internet connectivity,
including 802.11a/b/g access points, routers, hot spots, bridges,
gateways, and a wide variety of embedded networked client
solutions. 
The IP3023 is a 250 MIPS 32-bit CPU supporting 8-way
multithreaded operation. It provides for up to 8 real-time tasks to
execute in a completely deterministic fashion.
這個便是SBR的CPU. 它是控制SBR的 data 進出和處理. 它由一粒 10MHz quartz crystal resonator 打拍子. 換了鐘的幫助也不大. 可以放過它.

4.  Xilinx DS058
Product Specification: http://www.xilinx.com/support/documentation/data_sheets/ds058.pdf
這 chip 有好多不同的封裝:


(註: Pin 15,26,35 實測都係 3.3V)

這是SBR真正的音響CPU, 它是生成 S/PDIF 和 I2S signal 的. 它用兩粒 clock (11.2896MHz 和 12.288MHz) 去生成 44.1k 和 48k (及其倍數) 的 digital audio signal.

這裡可以摩改的是換鐘. 因為我只想用它來播 44.1 PCM, 我只會換 11.2896 那粒. 另外, 因為它是跟其他的 chip 共用 3.3V 的, 可能給它獨立的 3.3V 供電會有好處. 但我手工不佳不敢做.

5. WM8501

它是由一粒 5V LDO 供電, 因為我沒有興趣使用SBR的 analog output, 所以我會移除這粒 WM8501.

下 part 會談如何摩改供電、鐘和S/PDIF.