Skip to content

About

RX-8 Instrument Cluster CAN Controller

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

RX-8 Instrument Cluster CAN Controller

Емулятор CAN-шини для приладової панелі Mazda RX-8 (стенд/тестування панелі окремо від автомобіля). Формує HS-CAN фрейми, які кластер очікує від ECU/BCM, та дозволяє керувати показами (оберти, швидкість, температура, індикатори) через Serial-консоль.

Апаратна частина

  • Arduino Nano v3 (або сумісний, ATmega328)
  • Модуль MCP2515 (CAN-контролер) + TJA1050/подібний трансивер
  • Термінуючий резистор 120 Ом між CAN_H і CAN_L

Підключення MCP2515 → Arduino Nano

MCP2515 Arduino Nano
VCC 5V
GND GND
SCK D13
SI (MOSI) D11
SO (MISO) D12
CS D10
INT D2 (INT0)

Підключення до роз'єму кластера RX-8

Пін кластера Сигнал
A3 (B/Y) +12V Ignition (ключ)
A4 (B) GND
B3 (Lav) CAN_H
B4 (G/B) CAN_L

Протокол

HS-CAN, 500 kbps, 11-bit Standard ID. Кристал на більшості китайських модулів MCP2515 — 8 МГц (MCP_8MHZ); якщо на платі вказано 16 МГц — змінити на MCP_16MHZ у setup().

Вихідні фрейми (Arduino → кластер)

ID Період Вміст
0x201 100 мс RPM (byte 0-1, big-endian, RPM*4), byte2 = 0x40 (offset), Speed (byte 4-5, big-endian, (speed_kmh+99)*100)
0x420 100 мс Температура ОЖ (byte0 = T°C+40), одометр (byte1, змінюється при перемиканні 0xEF↔0xDF), індикатори oil/MIL/coolant/battery (byte4-6)
0x300 100 мс EPS/Steering Warning (byte0, bit7); в оригіналі кластер очікує цей фрейм раз на 500 мс, тут спрощено до 100 мс
0x212 100 мс ABS Warning, DSC OFF, ручник (byte3-4); в оригіналі — 500 мс
0x650 100 мс Cruise Control (byte0: 0x00 вимк / 0x40 зелений / 0x80 жовтий)

Одометр: кластер реагує не на значення байта, а на факт його зміни. Кожне перемикання 0xEF↔0xDF = +100 м пробігу (33 перемикання = +1 одиниця одометра, тобто 0.1 км).

Вхідні фрейми (кластер → Arduino)

  • 0x430 — статус кластера; byte[0-2] = FF FF FF означає, що кластер не бачить аналоговий датчик рівня палива (очікувано за відсутності підключення).

Відомі невирішені питання

  • 0x420 byte[2] і byte[3] — призначення не встановлено; є гіпотеза про fine-adjust температури ОЖ.
  • У діапазоні приблизно 70–110°C стрілка температури не рухається ("мертва зона") — причина ще не з'ясована.

Керування через Serial

Швидкість порту: 115200 бод. Формат команди: ключ=значення\n.

rpm=3000
speed=80
temp=90
mil=1
Ключ Опис
rpm оберти двигуна, об/хв (0..9000)
speed швидкість, км/год (0..300)
temp температура ОЖ, °C
mil Check Engine: 0=вимк, 1=горить, 2=блимає
oil стрілка тиску масла: 0/1
oil_low індикатор низького рівня масла: 0/1
coolant_low індикатор низького рівня ОЖ: 0/1
battery індикатор низького заряду АКБ: 0/1
handbrake індикатор ручного гальма: 0/1
abs_warn індикатор ABS: 0/1
dsc_off індикатор DSC OFF: 0/1
steering індикатор попередження EPS: 0/1
cruise Cruise Control: 0=вимк, 1=зелений, 2=жовтий

Залежності

Обов'язково використовувати бібліотеку autowp/arduino-mcp2515 саме з цього архіву:

https://github.com/autowp/arduino-mcp2515/archive/master.zip

Варіант 1 — Arduino IDE

  1. Завантажити zip за посиланням вище.
  2. Sketch → Include Library → Add .ZIP Library... → обрати завантажений файл (або розпакувати вручну в Documents/Arduino/libraries/arduino-mcp2515-master).
  3. Відкрити rx8_cluster/rx8_cluster.ino.
  4. Обрати плату Arduino Nano (та відповідний процесор/бутлоадер за потреби).
  5. Завантажити скетч.

Варіант 2 — PlatformIO

У репозиторії є platformio.ini, де залежність вже прописана саме на цей zip (lib_deps = https://github.com/autowp/arduino-mcp2515/archive/master.zip), а не на PlatformIO Registry — щоб збірка була відтворюваною і не «розʼїжджалась» з майбутніми змінами бібліотеки:

pio run
pio run --target upload

Дисклеймер

Проєкт призначений для тестування/стендової роботи з приладовою панеллю окремо від автомобіля. Підключення до реального CAN-контуру працюючого авто не тестувалося і не рекомендується без розуміння наслідків для інших блоків, що сидять на тій самій шині.

Ліцензія

MIT — див. LICENSE.

About

RX-8 Instrument Cluster CAN Controller

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages