シャープ HDD/DVDレコーダーのHDD換装
DV-HRD30というシャープの2005年あたりのモデルのHDD/DVDレコーダの、HDDが不良でカクンカクンと音がするので、蓋を開けてHDDを同一型番のものに交換しました。ただし、一筋縄ではいかなかったので、ネット情報を探しました。情報は色々見つかるのですが、内容が古かったり、複数の場所を参照する必要があり時間を要してしまったので、整理し、以下に記録として残すことにします。
主な情報源 http://www.geocities.jp/hrd774/ など
HDDの取り外しと換装用HDDの入手
ふたはドライバで簡単に外れます。高電圧部分などもあると思うので自己責任になります。中身は一昔前のパソコンで使われていた普通の3.5インチIDE規格のHDDで、Hitachi GST社製Deskstar HDS722525VLAT80 という250GBのものが入っていました。
ネット情報によると、より大容量のモデルに換装する例もあるようですが、私はHDDの不良を解決したいだけですので、同一型番のものを秋葉原の中古ショップで見つけ、購入しました。ソフマップの中古品店で確か2014/03に2,500円ほどでした。
データのコピー
HDDには詳細不明ながらシステム用の領域が数MB〜数百MBあるようですので、レコーダーから取り外した旧HDDの内容を可能な限り新HDDにサルベージします。「これdo台」などのHDDコピー専用の機械が売られているので、それを使うこともできますが、私は持っていないので適当なPCでLinux を立ち上げ、それにUSB接続で新旧のHDDをつないでddコマンドでコピーします。もともと持っていた、IDE HDDをUSB接続するHDDケースに加え、センチュリーのUD-500SAというケーブルセットを買ってつなぎました。
# コマンドは思い起こしで書いています dd if=/dev/sde of=/dev/sdf bs=1M conv=noerror
案の定、途中でI/O errorでフリーズしてしまいましたが、今回は幸いにも動作に必要な部分はコピーできたようです。
新HDDのセットアップ
新HDDをレコーダーに戻しても、それだけだと録画などができません。たとえ同一型番であっても、HDDの中には一台一台ごとにIDが振ってあるらしく、そのIDがレコーダー内に登録されているIDと異なると、利用できないように造られているのです。
そこで、サービスモードという設定画面で、新HDDのIDをレコーダーに再登録することになります。以前は本体付属のリモコンだけでサービスモードに入ることが出来たようなのですが、最近のファームウェアでは、付属リモコンだけでは駄目で、メーカーのサービスマンが持つ特殊なリモコンのボタンを押す必要があります。
しかし当然のことながら、そんなリモコンは持っていないので、代わりに特殊リモコンと同じ信号をなんらかの形でレコーダーに送ってやります。今回はたまたま、PCから信号を登録できる「クロッサム」という学習リモコンがあったので、これを使いました。
サービスモードのリモコン信号
シャープのHDDレコーダーのサービスモードのリモコン信号について以下のブログに記事がありました。
カラーバー(RC1) 0xAA 5A 8F 30 F5 01
カラーバー(RC2) 0xAA 5A 8F 31 F5 11
カラーバー(RC3) 0xAA 5A 8F 32 F5 21
http://yokamaro.blog130.fc2.com/blog-entry-447.html
RC1,2,3と3種類あるのは、3つのうちどれかということのようです。私の場合RC1でうまくいきました。
こうしたリモコン信号の情報をクロッサムが読み込める形式に変換するスクリプトは以下のページに説明されていました。
http://www.geocities.jp/shrkn65/remocon/panasonic_bsd.htm
このスクリプトを実際に流してみた結果は以下のとおりです。
ooharak@air ~ $ perl cro.pl AA 5A 8F 30 F5 01 "00,04,22,26,04,00,26,04,00,26,04,00,73,0c,00,34,21,00,9a,10,00,26,04,00,6c,dc,02,20,10,10,10,10,10,11,01,01,11,10,00,10,00,01,10,01,01,01,11,11,00,00,00,03,fe,32," ooharak@air ~ $ perl cro.pl AA 5A 8F 31 F5 11 "00,04,22,26,04,00,26,04,00,26,04,00,73,0c,00,34,21,00,9a,10,00,26,04,00,6c,dc,02,20,10,10,10,10,10,11,01,01,11,10,00,11,00,01,10,01,01,01,11,11,00,01,00,03,fe,32," ooharak@air ~ $ perl cro.pl AA 5A 8F 32 F5 21 "00,04,22,26,04,00,26,04,00,26,04,00,73,0c,00,34,21,00,9a,10,00,26,04,00,6c,dc,02,20,10,10,10,10,10,11,01,01,11,10,00,10,10,01,10,01,01,01,11,11,00,00,10,03,fe,32,"
この内容をSweet Memories for CROSSAM2というツールでCROSSAM2に書き出して使います。
普通にレコーダーを起動して、リモコンに登録した信号をレコーダーに送ると、以下のようなカラーバーが出れば成功です。
サービスモードへの入り方
普通のリモコンのスタートメニュー→各種設定→管理設定→システム動作テストを押すと、「アンテナ信号」「電話線接続」などの設定画面になります。この状態で先ほどカラーバーを出したリモコンの信号を送ると、以下のような「メイン検査メニュー」が現れます。
写真では見づらいですが、画面下のほうにメニューが並んでいるので「エージング」を選択してPVR検査メニュー画面を出します。実はHDDを入れ替えたときに写真を撮らなかったので、これ以降の画面のキャプチャがないのですが、PVR検査メニューで「HDD-ID登録」という項目が「不一致」であるのを選んで決定ボタンを押すと「済」に変わります。あとは画面どおりに検査メニューを終了し、電源を入れなおすことで換装は成功します。
(この項は参考サイトの掲示板アーカイブの11スレッド目の526を参考にしました)
おまけ
リモコン信号解析
ここに至るまでに、ブレッドボード上で、PICマイコンと赤外線受光器と2行液晶ディスプレイで簡単な解析器を作ってみたり大変でした。(解析はうまくいったのですが、後から考えると、結論的には解析しなくてもネット上の情報だけでなんとかなりました)
リモコンの受信部は ブレッドボードではじめる マイコンプログラミング という本をほぼ参考にしました。ただし処理系をMikroC→XC8に変えたり、解析結果をLCDに表示するようにしたりし、赤外線の規格も本ではNECフォーマットというものが説明されていましたがシャープのリモコンは家電協フォーマットという別の規格なのでそれにあわせて書き換えが必要でした。ソースコードについては、この書籍に載っているものをベースにアレンジしているので、ここには載せませんが、NECフォーマットも家電協フォーマットも、タイミングの値が異なるだけで構造は似通っているので、たいした変更ではありません。
Sweet Memories for CROSSAM2の動作環境
Windows 7で動くかどうか試していませんが、なにぶん古いソフトウェアで、VBのライブラリを参照していてりするので、Windows 7 UltimateのWindows XP Modeで実行しました。そう、もうすぐ非推奨になってしまう、あれです。
私の持っているクロッサムについて言えば、シリアル接続ですので、USB-シリアル変換ケーブルを介して接続しさえすれば、原理的にはシリアル通信を行うプログラムを書けばデータの読み書きができそうです。実際、Linuxなどでクロッサムを扱うためのスクリプトなどもあるかも探せばあるのだと思われます。
クロッサムが入手できない場合、自前で赤外線LEDを制御し、信号を発出する方法があります。実は、前項に載せた手書きの回路図にあるとおり、その部分もPICでやろうとしたのですが、プログラムが悪いのか、適当な故障リモコンからはずしてきた赤外線LEDを使ったことが悪いのか、うまく動きませんでした。今回は幸いクロッサムを持っていたので事なきを得ました。