Sony BR/DVD player region unlock при помощи Arduino

Sep 23, 2015 18:36

Есть у меня BD плеер SONY BDP-S370 залоченный на европейский DVD-регион.
Искал в интернете рецепты - нашел один текст, копируемый по всей сети:
http://www.videohelp.com/dvdhacks/sony-bdp-s370/10827
Там требуется программируемый пульт One4All, в котором прошиты секретные команды, недоступные с родных пультов.
Пытался обойтись совсем без пульта - но нигде не смог найти коды команд Sony SIRC, которые в URC хранятся под номерами 189, 255, 95, 221, 79.
Даже написал в службу поддержки One4All - на удивление ответили быстро, обстоятельно, но совершенно не по теме. То-ли не поняли вопроса, то-ли как раз поняли очень хорошо.

Пришлось купить пульт URC7950 на ебее, но из спортивного интереса захотел-таки сделать задуманное на Arduino.
Ардуино было, остальное выдирал из старого телевизора.

Для начала нужно было считать коды, которые посылает пульт. Вроде тут все написано: http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html
только совсем не работает. На работе осциллографом выяснил, что перепутал выводы на безымянном ИК-транзисторе.
Коды считал - получилось следующее:
URC код 189 - команда FEB92
URC код 255 - команда A6B92 ("Angle"),
URC код 95  - команда AAB92,
URC код 221 - команда FAB92,
URC код 79  - команда A8B92 ("Power"),

Хотел сначала отправить тестовую команду на включение/выключение, но не было никакой реакции.
Очередной поиск в сети подсказал, что тока в ИК-диоде может быть недостаточно: https://learn.adafruit.com/using-an-infrared-library/sending-ir-codes
Выдрал из пульта еще транзистор, повесил - свет от диода в фотокамере стал виден гораздо лучше.

Пытался дальше разобраться, понял что B92 - это адрес устройства в команде, но у меня плеер откликался на адрес B47 с родного пульта. То есть на A8B92 никак не реагировал, а включался/выключался только по команде A8B47. Может быть, что транзистор и не нужен был?

После того как плеер стал включаться-выключаться - я попробовал загрузить последовательность с родным адресом плеера, но толку не было никакого. Промучившись час, на удачу прогнал последовательность с "неподходящим" адресом  B92: ВУАЛЯ, всё заработало!

Вот получившийся рабочий код (Только вы не смейтесь - я ни программировать, ни паять толком не умею):

/*
 * Sony Blue-Ray S370 region unlock sketch
 * An IR LED must be connected to Arduino PWM pin 3.
 */
#include "IRremote.h"
IRsend irsend;
void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xfeb92, 20); // URC code 189, Sony command 127
      delay(100);
    }
    delay(1000);
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa6b92, 20); // URC code 255, Sony command 101 - "Angle"
      delay(100);
    }
    delay(1000);
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xaab92, 20); // URC code 95, Sony command 85
      delay(100);
    }
    delay(1000);
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xfab92, 20); // URC code 221, Sony command 95
      delay(100);
    }
    delay(1000);
        for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa8b92, 20); // URC code 79, Sony command 21 - "Power"
      delay(100);
    }
  }
}

Кстати, никому программируемый пульт URC 7950 не нужен? Продам дешево!

компьютеры

Previous post Next post
Up