Алина Голубинская
New member
Кого бесит после замены штатного на китайское ГУ на БК время с американским 10am/05pm вместо православного 22 или 19 часа - нашелся достаточно примитивный способ, надо пару секунд канхакером по ID 28F последний байт вместо 80 подавать 82.
Т.е. например канхакер "слышит":
ID 28F, DLC 8, Data C1 00 00 38 00 27 10 80
Надо пихнуть в каншину
ID 28F, DLC 8, Data C1 00 00 38 00 27 10 82
раз 20-100, т.к. кнопку на штатной магнитоле надо держать для переключения 12/24h.
Это придется проделывать каждый раз, после сброса АКБ. Можно сделать элегантнее, написать скетч на Ардуино, и совсем круто, если найдется программизд, перекомпилирующий ms.apk в прошивке, исходники вроде бы там есть.
===
Если кому не лень будет построить схему из двух сторублевых деталей (Ардуино нано и КАН шильд), то вот примерный скетч и библиотеки:
#include <SPI.h>
#include <mcp2515.h>
struct can_frame canMsg1;
MCP2515 mcp2515(10);
//иницилизация кнопок, номер пина
const int buttonPin1 = 2;
void setup() {
canMsg1.can_id = 0x28F; //кнопка часы 12/24h
canMsg1.can_dlc = 8;
canMsg1.data[0] = 0xC1;
canMsg1.data[1] = 0x00;
canMsg1.data[2] = 0x00;
canMsg1.data[3] = 0x38;
canMsg1.data[4] = 0x00;
canMsg1.data[5] = 0x27;
canMsg1.data[6] = 0x10;
canMsg1.data[7] = 0x82;
while (!Serial);
Serial.begin(115200); // инициализация порта
SPI.begin();
mcp2515.reset();
mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ); // инициализация CAN с кварцем 8MHz
mcp2515.setNormalMode();
Serial.println("Example: Write to MS-CAN 12/24h command");
//инициализация кнопки, номер пина
//const int buttonPin1 = 2;
//подтяжка кнопок
pinMode(buttonPin1, INPUT_PULLUP);
}
void loop() {
// если нажата кнопка 1
if ((digitalRead(buttonPin1)== LOW)) {
Serial.println("Получено нажатие кнопки");
// отправка текстовой части по CAN
mcp2515.sendMessage(&canMsg1);
Serial.println("Messages sent");
delay(100);
}
}
Приобрести потребуется:
Arduino nano (Arduino mini) ali.onl/1HOI
CAN MCP2515 ali.onl/1HOK
Можно дополнительно DC-DC преобразователь ali.onl/1HOM
Библиотеки для скетча CanHacker (уже настроены на кварц 8 Мгц CAN-модуля)
Программа CanHacker (скорость COM порта в программе CanHacker в настройках делаем 115200).
Т.е. например канхакер "слышит":
ID 28F, DLC 8, Data C1 00 00 38 00 27 10 80
Надо пихнуть в каншину
ID 28F, DLC 8, Data C1 00 00 38 00 27 10 82
раз 20-100, т.к. кнопку на штатной магнитоле надо держать для переключения 12/24h.
Это придется проделывать каждый раз, после сброса АКБ. Можно сделать элегантнее, написать скетч на Ардуино, и совсем круто, если найдется программизд, перекомпилирующий ms.apk в прошивке, исходники вроде бы там есть.
===
Если кому не лень будет построить схему из двух сторублевых деталей (Ардуино нано и КАН шильд), то вот примерный скетч и библиотеки:
#include <SPI.h>
#include <mcp2515.h>
struct can_frame canMsg1;
MCP2515 mcp2515(10);
//иницилизация кнопок, номер пина
const int buttonPin1 = 2;
void setup() {
canMsg1.can_id = 0x28F; //кнопка часы 12/24h
canMsg1.can_dlc = 8;
canMsg1.data[0] = 0xC1;
canMsg1.data[1] = 0x00;
canMsg1.data[2] = 0x00;
canMsg1.data[3] = 0x38;
canMsg1.data[4] = 0x00;
canMsg1.data[5] = 0x27;
canMsg1.data[6] = 0x10;
canMsg1.data[7] = 0x82;
while (!Serial);
Serial.begin(115200); // инициализация порта
SPI.begin();
mcp2515.reset();
mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ); // инициализация CAN с кварцем 8MHz
mcp2515.setNormalMode();
Serial.println("Example: Write to MS-CAN 12/24h command");
//инициализация кнопки, номер пина
//const int buttonPin1 = 2;
//подтяжка кнопок
pinMode(buttonPin1, INPUT_PULLUP);
}
void loop() {
// если нажата кнопка 1
if ((digitalRead(buttonPin1)== LOW)) {
Serial.println("Получено нажатие кнопки");
// отправка текстовой части по CAN
mcp2515.sendMessage(&canMsg1);
Serial.println("Messages sent");
delay(100);
}
}
Приобрести потребуется:
Arduino nano (Arduino mini) ali.onl/1HOI
CAN MCP2515 ali.onl/1HOK
Можно дополнительно DC-DC преобразователь ali.onl/1HOM
Библиотеки для скетча CanHacker (уже настроены на кварц 8 Мгц CAN-модуля)
Программа CanHacker (скорость COM порта в программе CanHacker в настройках делаем 115200).