Skip to content

rynbrd/r51-ecu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nissan Pathfinder R51 Systems

This repo contains documentation and code to allow integration of custom ECU's into the Nissan Pathfinder R51 (2005 - 2012). Some of these integrations may work with other Nissan vehicles (Armada, QX56, etc) but have not been tested.

These ECU implementations specifically target removal of the stock infotainment center.

Supported Environment

This repo targets the Longan Labs CANBed boards based on the RP2040. The CANBed Dual board is used to bridge the vehicle bus to J1939 and the CANBed RP2040 board for individual components.

This is an Arduino project and uses the Longan RP2040 core. Earle Philhower's Arduino Pico Core will not work as the SPI pin definitions are not correct for the Longan boards.

All libraries are either included directly in the repo or linked in using git submodules. Libraries are included in the [libraries] directory. The Arduino IDE should be configured to use this repo's root as the sketchbook location in order to utilize the included libraries.

CANBed Dual Notes

There have been multiple versions of the CANBed Dual board. The latest version uses a separate GD32 chip as the CAN controller while the older version used MCP2515 and MCP2518 chips for CAN 2.0 and CAN FD respectively. This project uses the older version. Additional work would be needed to support the GD32 flavor of the board.

Components

Bridge ECU

The bridge module serves to bridge connectivity between vehicle systems, a J1939 bus, and serial over Bluetooth BLE for RealDash connectivity. It connects to the infotainment harness via GPIO to retain the steering wheel controls and to control the rear window/side mirror defrost heaters.

Its hardware consists of a CANBed Dual board and an Adafruit Bluefruit LE SPI Friend for BLE connectivity.

If you're interested in implementing your own set of controllers over J1939 then this would be immediately usable to you.

Controller ECU

The controller module provides a user interface to replace the functionality originally part of the stock system. This includes climate control and settings. It also adds support for the [third party components](#Third Party Components) used by this implementation.

Its hardware consists of a CANBed RP2040 board, two Adafruit I2C QT Rotary Encoder boards, and a Nextion NX8048K050.

Standalone ECU

The standalone module combines the bridge and controller functionality to reduce hardware BOM.

Third Party Components

The controller integrates with the following aftermarket J1939 systems:

Wiring

The bridge and standalone controllers need to be wired to the steering wheel and defrost controls. The steering wheel analog lines require 2k ohm pull-up resistors. The defrost activation requires a 1k ohm resistor wired in series between the Arduino pin and the vehicle pin. See the pinout docs to determine which vehicle harness pins to connect to.

Vehicle Details

The vehicle systems have been reverse engineered to determine CAN bus operation and pinouts. These are documented in the following:

  • Climate Control - Operational details including CAN frame definitions.
  • Settings Management - Operational details on managing vehicle settings.
  • Pinouts - Pin outs and connector part numbers for the infotainment unit.

License

The contents of this repository are covered under the GPLv3. See the LICENSE file for full details.