シャープ製BDレコーダーのHDDをArduinoを使って換装する

駆動部分があるため、ブルーレイドライブの次に故障しやすいハードディスク。シャープ製のブルーレイディスクレコーダーの修理の難易度は高いことで知られており、それゆえに故障したレコーダーはフリマサイトなどで比較的安価に手に入れることができます。

一般的に、シャープ製品でHDDを換装するには、製品情報が書き込まれたHDD(オリジナルのディスクをセクタ単位でクローンしたもの)を、サービスマンモードでレコーダーに認識させる必要があります。このサービスマンモードに入ためには、特殊なリモコンコードを本体に送信しなくてはいけません。

ネットではビットトレードワンの「USB赤外線リモコンキット」を使って送信する方法が紹介されていますが、Windowsパソコンが必要という制約があります。ですが、「送信コードを正確に送信する」ことができればよいので、手持ちのArduinoやRaspberry Pi(Raspberry Pi Pico)でも代替にすることができます。これであれば、Arduino開発環境さえあれば、OSが問われることはありません。
そのArduinoによるコード例がこちらになります。11番ピンに接続したタクトスイッチを押すと、USB赤外線リモコンからのコマンド「BtoIrRemocon.exe C1AA5A8F30F501」に相当する信号を、Arduinoライブラリ「IRremote」を使って、3番ピンに接続した赤外線LEDにて発信します。
serviceman.ino
#include <IRremote.h>

#define SWITCH_PIN 11
#define LED_PIN     3

const uint16_t rawData[] = {
    3200,1600,400,400,400,1200,400,400,400,1200,
    400,400,400,1200,400,400,400,1200,400,400,
    400,1200,400,400,400,1200,400,1200,400,400,
    400,1200,400,400,400,1200,400,1200,400,1200,
    400,1200,400,400,400,400,400,400,400,1200,
    400,400,400,400,400,400,400,400,400,1200,
    400,1200,400,400,400,400,400,1200,400,400,
    400,1200,400,400,400,1200,400,1200,400,1200,
    400,1200,400,1200,400,400,400,400,400,400,
    400,400,400,400,400,400,400,400,400
};

void setup()
{
    Serial.begin(9600);

    pinMode(SWITCH_PIN, INPUT_PULLUP); 
    IrSender.begin(LED_PIN, true);
    Serial.println("Ready.");
}
 
void loop() {
    if (digitalRead(SWITCH_PIN) == LOW) {
        Serial.println("Send");
        IrSender.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), KASEIKYO_KHZ);
        delay(1000);
    }
}
ちなみに、テレビ画面に「ハードディスクにエラーが発生しましたので一部の機能がご利用できません」と表示されて設定画面に移動できないようであれば、リモコンの「戻る」ボタンを押して該当メッセージを消すと、操作を受け付けるようになります。
2022/06/27