Как разблокировать Becker Europa 2000 BE-1100.

После ремонта кузова, замены порогов и днища, наступили у моего Мерседеса рабочие будни. В первые же, более-менее дальние, поездки были выявлены некоторые конструктивные недостатки, обусловленные возрастом автомобиля. Так появились салонный фильтр и USB розетка. Вот только музыка никак не появлялась, скучновато пилить 500+ км под монотонное рычание двухлитрового дизеля. Особенно после 80 км/ч. Под это дело приспособили блютуз-колонку, но как-то не то.
Старый Пионер начала 2000-х годов не хотелось ставить — портит всю аутентичность салона, нужен был Беккер. На Авито под руку попался Becker Europa 2000 за пару тысяч рублей из Калининграда. Предварительно начитавшись форумов по штатным автомагнитолам, которые устанавливались в W123, я, конечно же, первым делом спросил продавца есть ли ПИН-код от этого магнитофона. Продавец зявил, что пин написан на корпусе, прислал фото — да, действительно, на корпусе были накорябаны цифры "0508". Ну чтож, деньги — авитодоставка — три дня — боксберри — магнитофон в руках.
Быстро подключив питание, магнитофон загорелся приятным янтарным светом и на экране высветилось "CodE". "0508!" — подумал я и тут же поспешил ввести пароль. Пароль не сработал. Не сработал он и во второй и в третий раз. Магнитофон заблокировался. Блин, но продавец уверял что это пароль! Потом были чёрточки и двое суток нетерпеливого ожидания, когда же он снова соизволит запросить ввод пин-кода.
Всё это была присказка, а сказка дальше начинается.
Методом научного тыка я выяснил, что пин-код, написанный на корпусе, вовсе не пин-код, а непонятно что. Пришлось искать как разблокировать. Платные ресурсы в интернете отмёл сразу, попробовал поспрашивать на профильных форумах, да как-то безрезультатно. Как всегда пришлось делать всё самому.
Процесс разблокировки. Подключился к пинам 5 и 6 микросхемы EEPROM.
Прочитав пару десятков различных статей, статеек, форумов и прочего, я выяснил, что этот секретный пароль находится в энергонезависимой памяти магнитофона, а значит, для этого необходимо к ней подключиться и вытащить содержимое (дамп) памяти. Делов-то, только бери программатор, специальный софт (пусть и бесплатный), да вперёд. Но где взять программатор в 2 часа ночи, когда ты только вник в суть проблемы? Заказывать из Китая? Нет, всё можно сделать проще — Ардуино.
Все функциональные блоки в магнитоле "общаются" между собой по протоколу I2C. Соответственно, необходимо подключить Ардуино к I2C шине магнитолы.
ClassicCarsToday.ru
ClassicCarsToday.ru
Вот эта штука и называется Дамп
В случае использования Ардуино Нано, это будут порты А4 для линии данных, и А5 для линии синхронизации. На плате магнитофона же можно подключиться к шине I2C непосредственно к пинамn 5 и 6 микросхемы EEPROM. Итак, к шине подпаялись. Теперь необходимо просканировать шину и определить адрес EEPROM. В моём случае это был 0х50. Для сканирования можно использовать стандартный набор библиотеки Arduino I2C Scanner.

Чтобы скачать дамп из EEPROM необходимо загрузить в Ардуино следующий скетч:
// Запись, четение и стирание ячеек в EEPROM 24C02, 256 x 8 (2K)
// 30.06.2017, Arduino IDE v1.8.3, ClassicCarsToday.ru
//---------------------------------------------------------------------------------------------------------
#include "at24c02.h"
//       _____
//  A0 -|  ^  |- VCC
//  A1 -|     |- WP(GND)
//  A2 -|     |- SCL
// GND -|_____|- SDA

at24c02 eeprom(0x50);                             // 0x50 = A0(GND), A1(GND), A2(GND)

char ch;
//---------------------------------------------------------------------------------------------------------
void setup() {
  Serial.begin(57600);

  eeprom.init();
  // Wire.setClock(400000L);                      // 100kHz / 400kHz
}
//---------------------------------------------------------------------------------------------------------
void loop() {
  Serial.println("EEPROM 24C02:");
  Serial.println("r - Read");
  Serial.println("b - Blank (write 0xFF)");
  Serial.println("x - Write random data");
  Serial.println();

  while (1) {
    if (Serial.available() > 0) {
      ch = Serial.read();

      if (ch == 'r')                              // read
        eeprom_read();

      if (ch == 'b') {                            // blank and read
        eeprom_blank();
        eeprom_read();
      }

      if (ch == 'x') {                            // write random data and read
        eeprom_write_random_data();
        eeprom_read();
      }
    }
  }
}
//---------------------------------------------------------------------------------------------------------
void eeprom_read() {
  Serial.print("         ");
  for (uint8_t i = 0; i < 16; i++) {
    Serial.print('0');
    Serial.print(i, HEX);
    Serial.print(' ');
  }
  Serial.println();

  for (uint8_t j = 0; j < 16; j++) {
    Serial.print("000000");
    Serial.print(j, HEX);
    Serial.print("0 ");
    for (uint8_t k = 0; k < 16; k++) {
      uint8_t read_byte = eeprom.read(j * 16 + k);
      if (read_byte < 16)
        Serial.print('0');
      Serial.print(read_byte, HEX);
      Serial.print(' ');
    }
    Serial.println();
  }
  Serial.println();
}
//---------------------------------------------------------------------------------------------------------
void eeprom_blank() {
  for (uint16_t i = 0; i < 256; i++)
    eeprom.write(i, 0xFF);
}
//---------------------------------------------------------------------------------------------------------
void eeprom_write_random_data() {
  for (uint16_t i = 0; i < 256; i++)
    // eeprom.write(i, random(0, 256));
    eeprom.update(i, random(0, 256));
}
Если всё сделано правильно, то в мониторе порта в среде Arduino появится меню. Выбираете "r - Read" и скетч считывает сожержимое памяти, выводя на экран в виде таблицы.
Из всего набора данных нас интересют две ячейки из 50 строки, расположенные в колонках 0А и 0В. На скриншоте выделил эти ячейки синим цветом - 29 83. Эти две ячейки как раз и содержат данные о коде разблокировки магнитофона, но код записан в шестнадцатеричном формате. Для перевода в десятиричную систему счисления воспользуйтесь калькулятором. Так, 29 83 при переводе в десятичную систему дадут 8329 - это и будет код разблокировки. В моём случае получилась симметричная комбинация, однако в других магнитофонах это может быть другая комбинация.
ClassicCarsToday.ru
ClassicCarsToday.ru
Вот эта штука и называется Дамп
Казалось бы, вот оно счастье, ан нет, магнитофон бодро перелистывал радиостанции, крутил кассету, но из колонок доносилось — НИЧЕГО. Ни шума, ни шипения — тишина. Вот тут я и понял, что быть второй части, где надо будет победить выходной усилитель мощности звуковой частоты…
Продолжение следует.
Интересно? Подпишись!
Чтобы не пропустить новую публикацию. Спамить не буду, обещаю.