Skip to content

dirksan28/Scenic2DashCanEmu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

A low-cost DIY CAN bus emulator for Renault Scenic 2 dashboard repair

My personal contribution to the right to repair initiative.

Subject

These dashboards have a tendency to fail at least once over the vehicle’s lifespan. For repair purposes, a method is required to power and operate them on a workbench. The DIY CAN bus emulator introduced here serves this purpose.

Features

  • Designed to test your Renault Scénic II dashboard during and after repair
  • Powers up the dashboard without requiring installation in the vehicle
  • Includes an extended test sequence that even displays the stored mileage at startup (see video)
  • Outputs timestamped messages to a serial console when connected
  • Supports standalone operation using a standard charging adapter


click to watch the full vid on Vimeo

What you need

Hardware

Wiring

Arduino <-> MCP2515

PIN on Arduino PIN on MCP2515 CAN Bus Breakout Board
D2 INT
D10 CS
D11 SI
D12 SO
D13 SCK
5V VCC
GND GND

On the MCP2515 board, ensure the jumper labeled J1 is closed to enable CAN bus termination.

The dashboard

PIN# (grey connector on dash) meaning
1 +12V
2 GND
29 CAN LOW
30 CAN HI

Important

Ensure your power supply and cabling can handle 4-5 amps peak current (filament heating, capacitors) at startup. Especially when using small current limiting lab power supplies this may become a thing. Should your power supply not provide enough current, the program might run, but the dashboard will remain dark.

Software

The Arduino project can be compiled and uploaded via the Arduino IDE. Either clone this project or download it as a ZIP-File. The code running on the Arduino is based on MCP_CAN_lib. For convenience, a copy of this library is part of this project. Just place the entire can-library folder (MCP_CAN_lib-master) into the library folder of your Arduino IDE (on linux: ~/Arduino/libraries), (on MAC-OS: /Users/YOUR-USER-NAME/Arduino/libraries/) .

The message sequence can be extended or modified by editing the following code fragments within the canEmu.ino file:

/**
 * the following struct contains the messages which are send to the dashboard
 * for initialization
 * feel free to add or remove messages.
 * {duration, id, dlc {byte1, byte2, ... byte_dlc}}
**/
const struct msgStruct initMessages[] PROGMEM = {
   {10, 0x35d, 8, { 0x10, 0x03, 0x20, 0x00, 0x00, 0x00, 0x50, 0x00}}   //dash on
  ,{4, 0x60d, 8, { 0x00, 0x10, 0x00, 0x00, 0x27, 0x73, 0x21, 0x71}}    //reset displayl state
...
};

/**
 * the following struct contains the messages which are send to the dash
 * within a loop
 * feel free to add or remove messages.
 * {duration, id, dlc {byte1, byte2, ... byte_dlc}}
**/
const struct msgStruct messages[] PROGMEM = { //load into flash-memory (sram was to small)
  {1, 0x743, 8, {0x02, 0x10, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00}}  //enable indicators
 ,{3, 0x743, 8, {0x04, 0x30, 0x06, 0x20, 0xFF, 0x00, 0x00, 0x00}}  //left ind. lights
 ,{3, 0x743, 8, {0x04, 0x30, 0x07, 0x20, 0xFF, 0x00, 0x00, 0x00}}
 ,{1, 0x743, 8, {0x04, 0x30, 0x01, 0x20, 0x01, 0x00, 0x00, 0x00}}
 ,{1, 0x743, 8, {0x04, 0x30, 0x01, 0x20, 0x07, 0x00, 0x00, 0x00}}
 ,{1, 0x743, 8, {0x04, 0x30, 0x01, 0x20, 0x06, 0x00, 0x00, 0x00}}
  ...
  };

Note

To see what the code is doing, start the serial console of the Arduino IDE at 9600 baud.

Tip

If you remove line #4 (#define ENABLE_CANBUS), output to the MCP2515 breakout board will be skipped. By doing so, the code runs fine within the famous and free WOKI Online Arduino Simulator, making it easier for debugging purposes.

Current state

The code was tested on a V5.14 dashboard and runs fine.

Design principles

  • Keep it simple.
  • Ensure even non-Arduino experts can easily use and set up the project.
  • Minimize dependencies (e.g., libraries, source files, additional hardware, etc.).
  • Make it adaptable and expandable even without knowledge of C / C++.

Collection of ideas

  • Read the CAN messages from an external SD card (supporting different dashboards without compiling the code).
  • Single-step mode (possibly forwards and backwards) via an additional button.
  • PCB layout for a self-contained, single-board solution.

Known issues

  • The CAN message to activate the lightbulb symbol is currently unknown.

Further infos & links

Resources

How to power up the dashboard even without a CAN-bus emulator

Tip

For an initial test on your desk, you can partially switch on the dashboard (only the small clock display) even without a CAN-bus emulator.

Connect the gray connector to your power supply as usual:

  • Pin1 +12V
  • Pin2 GND

And on the red connector (Check this link for connector pinout & schematic of the steering wheel remote and its sense circuit)

  • Pin1 via a 1kΩ resistor to +12V

This simulates turning on your car's radio, which causes the clock display to turn on.

Forks and Variants

About

A arduino based lowcost CAN-Emulator for repairing Renaults Scenic 2 dashboards / instrument cluster.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors