Как разблокировать 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
Вот эта штука и называется Дамп
Казалось бы, вот оно счастье, ан нет, магнитофон бодро перелистывал радиостанции, крутил кассету, но из колонок доносилось — НИЧЕГО. Ни шума, ни шипения — тишина. Вот тут я и понял, что быть второй части, где надо будет победить выходной усилитель мощности звуковой частоты…
Продолжение следует.
Друзья, все мои разработки теперь можно скачать на официальной странице Boosty.
Подписывайтесь чтобы не пропустить новую публикацию!