BMW E46 CAN: Difference between revisions

(added install pic)
 
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Installation==
=Installation=
Integrating with the E46 requires just one cable, tapping into the CAN bus data of the E46's instrument cluster.
 
==Required parts==
 
[[file:E46_integration_cable.jpg]]
 
==DIY Cable==
To make your own cable, you'll need the following:


===Things you'll need===
* Crimp tool
* Crimp tool
* Wire cutter
* Wire cutter
Line 7: Line 14:
* Philipps screwdriver
* Philipps screwdriver
* Multimeter
* Multimeter
* 22 gauge solid wire
* 22-26 gauge wire
* RJ 45 (Ethernet) cable, ~6ft
* RJ 45 (Ethernet) cable, ~6ft
* Shrink tubing (optional, electrical tape will work too, but not look as nice)
* Shrink tubing (optional, electrical tape will work too, but not look as nice)
Line 17: Line 24:
* An E46 ;)
* An E46 ;)


===Estimated Time===
==Estimated Time==
2-3 hours, depending on level of wiring experience. The most time consuming part is splicing the CAN, power and ground wires into the RJ45 cable.
2-3 hours, depending on level of wiring experience. The most time consuming part is splicing the CAN, power and ground wires into the RJ45 cable.


===RaceCapture/Pro installation (Race / Spec E46)===
===RaceCapture/Pro installation (Race / Spec E46)===
We recommend installing RaceCapture/Pro to the right of the driver's seat, near the center of rotation to get the best effect from the on-board IMU (Accelerometer + Gyro)
We recommend installing RaceCapture/Pro on the transmission tunnel to the right of the driver's seat. This is near the center of rotation to get the best effect from the on-board IMU (Accelerometer + Gyro)


[[Image:RCP_install_E46.jpg]]
[[Image:RCP_install_E46.jpg]]


===CAN wires===
==CAN wires==
The CAN+/CAN- wires are located in 2 places: under the driver's side dash above the footrest or in the DME panel. For these instructions it is assumed you are using the wires under the dash.
The CAN+/CAN- wires are located in 2 places: under the driver's side dash above the footrest or in the DME panel. For these instructions it is assumed you are using the wires under the dash.


CAN wire colors are as follows:
CAN wire colors are as follows:
* Yellow/Red = CAN+ (high)
* Yellow/Brown =  CAN- (low)
* Yellow/Brown =  CAN- (low)
* Yellow/Red = CAN+ (high)


They are a twisted pair in or attached to the main wiring harness under the driver's side dash above the dead pedal.  
They are a twisted pair in or attached to the main wiring harness under the driver's side dash above the dead pedal.  


====Remove bottom of dash====
===Remove bottom of dash===
You will have to remove the panel below the steering wheel via 3 philipps screws, a plastic thumb screw (turn 90 degrees and pull) behind the pedals and a press fit plastic screw on the transmission tunnel (pull the tiny center pin out first, then the larger screw).  
You will have to remove the panel below the steering wheel via 3 philipps screws, a plastic thumb screw (turn 90 degrees and pull) behind the pedals and a press fit plastic screw on the transmission tunnel (pull the tiny center pin out first, then the larger screw).  


Once you have removed the panel you should see a large wiring harness above the dead pedal.
Once you have removed the panel you should see a large wiring harness above the dead pedal.


====Locate CAN wires====
===Locate CAN wires===
Look for a twisted pair of wires that are Yellow/Brown and Yellow/Red like so:
Look for a twisted pair of wires that are Yellow/Brown and Yellow/Red like so:


Line 46: Line 53:
Those are the 2 wires you need to *tap* into, not cut.  
Those are the 2 wires you need to *tap* into, not cut.  


====Tapping CAN wires====
===Tapping CAN wires===
To tap into the wires, you'll first need to tease them apart because they are very tightly wound. Peel back some of the black cloth tape wrapping the harness and gently pull the wires apart. This may take some time. You'll want to have enough room for 2 fingers in between the wires.
To tap into the wires, you'll first need to tease them apart because they are very tightly wound. Peel back some of the black cloth tape wrapping the harness and gently pull the wires apart. This may take some time. You'll want to have enough room for 2 fingers in between the wires.


Line 57: Line 64:
[[File:Can-tapped.jpg|700px]]
[[File:Can-tapped.jpg|700px]]


====Create CAN wiring for RaceCapture/Pro====
===Create CAN wiring for RaceCapture/Pro===
Now that you've tapped the CAN wires, cut two 6 foot lengths of solid wire, strip both ends and attach one to CAN+ and CAN-. Make sure to label them or you'll have to keep looking under the dash. Yellow/Brown is CAN- and Yellow/Red is CAN+.
Now that you've tapped the CAN wires, cut two 6 foot lengths of solid wire, strip both ends and attach one to CAN+ and CAN-. Make sure to label them or you'll have to keep looking under the dash. Yellow/Brown is CAN- and Yellow/Red is CAN+.


Where you run these two wires is dependent on where RaceCapture/Pro is. You can either run them down the driver's side of the car, next to the dead pedal or find a way to route them into the center dash and out below the CD player/HVAC controls. For these instructions we routed them next to the dead pedal, under the floor mat and taped them onto the transmission tunnel next to the driver hidden away. (Our RaceCapture/Pro was installed on the center rear seat)
Where you run these two wires is dependent on where RaceCapture/Pro is. You can either run them down the driver's side of the car, next to the dead pedal or find a way to route them into the center dash and out below the CD player/HVAC controls. For these instructions we routed them next to the dead pedal, under the floor mat and taped them onto the transmission tunnel next to the driver hidden away. (Our RaceCapture/Pro was installed on the center rear seat)


===Power and ground wiring===
==Power and ground wiring==


Note: You can skip this section if you already have power wired to RaceCapture/Pro and don't want to change it.
Note: You can skip this section if you already have power wired to RaceCapture/Pro and don't want to change it.


Mk1 owners: do not wire in power or ground.
'''RaceCapture/Pro MK1 owners''': do not wire in power or ground via CANx module; connect power via terminal block only.


====Locate power and ground wires====
===Option #1: OBD-II port power===
Using the same cable used for the CAN bus connection you can tap into power on the OBD-II port, for a clean 4 wire connection:


The easiest to tap and most convenient power wires are under the coin holder in the center armrest. Pull the cup holder and coin holder out. Beneath them will be a cloth/foam wrapper containing a cellular phone connector. It contains 12v switched power and ground. Pull it gently towards the back of the car, then up to get more slack. Pull apart the foam to get to the wires.
[[Image:E46_CAN_OBD2_power.png]]
 
 
{| class="wikitable" style="text-align:center; width:700px; height:200px;"
|+ BMW E46 power, ground and CAN bus connections to RaceCapture/Pro
|-
! Connection
! BMW
! RaceCapture/Pro (RJ45 cable)
|-
| +12v
| Yellow-Red (OBD-II connector)
| Brown
|-
| Ground
| Brown (OBD-II connector)
| Orange/White
|-
| CAN High
| Yellow/Red
| Orange
|-
| CAN Low
| Yellow/Brown
| Green/White
|}
 
'''Note:''' These color codes assume EIA-T568B RJ45 cable (check printing on the cable to confirm)
 
===Option #2: Center arm-rest power===
 
An easy and convenient source for power is under the coin holder in the center armrest. Pull the cup holder and coin holder out. Beneath them will be a cloth/foam wrapper containing a cellular phone connector. It contains 12v switched power and ground. Pull it gently towards the back of the car, then up to get more slack. Pull apart the foam to get to the wires.


The 12v wire is purple/white, ground is brown. *Note*: there is also a tan wire that looks very similar to brown. Compare the two and pick the darker one.
The 12v wire is purple/white, ground is brown. *Note*: there is also a tan wire that looks very similar to brown. Compare the two and pick the darker one.


====Splice power and ground wires====
===Splice power and ground wires===


You can tap these wires if needed, for these instructions we cut them.
You can tap these wires if needed, for these instructions we cut them.
Line 82: Line 121:
[[File:E46powerground.jpg|700px]]
[[File:E46powerground.jpg|700px]]


===Connect CAN cable===
==CAN Bus connection==


In order for RaceCapture/Pro to read CAN data you need to connect the CAN+/CAN- wires to a RJ45 (ethernet cable).  
In order for RaceCapture/Pro to read CAN data you need to connect the CAN+/CAN- wires to a RJ45 (ethernet cable).  
Line 88: Line 127:
Cut one end off the RJ45 cable and pull apart all the wires.  
Cut one end off the RJ45 cable and pull apart all the wires.  


Identify and label the CAN1 High, CAN1 Low, 12v and ground wires via a multimeter. Use the following diagram:
Identify and label the CAN1 High, CAN1 Low, 12v and ground wires via a multimeter.  
 
For a standard RJ45 cable (EIA T568B) the colors are:
 
* Orange: CAN1 High
* Green/white: CAN1 Low
* Brown: Power
* Orange/white: Ground
 
Use the following diagram:


[[File:Canrj45.png]]
[[File:Canrj45.png]]
Line 98: Line 146:
Once you have identified and labeled the wires, strip them and attach to the CAN wires and power/ground wires from the car. RJ45 wires are very thin, you will want to loop them around the thicker wires and add tape or shrink tubing.
Once you have identified and labeled the wires, strip them and attach to the CAN wires and power/ground wires from the car. RJ45 wires are very thin, you will want to loop them around the thicker wires and add tape or shrink tubing.


===Step 4: Configure RaceCapture/Pro===
==Configure RaceCapture/Pro==
 
===Set Baud Rate===
[[RaceCapturePro2_OBD2#Enable_CAN_bus|Enable the CAN bus]] in your RaceCapture/Pro configuration
Ensure CAN1 baud rate is set to 500K
 
* Rate is 500kb/s
* Do '''not''' enable OBD-II channels.
 
Add this script to the Scripting section, this will enable Coolant, Oil Temp, Throttle position and brake switch. (More sensors coming soon!)
 
<pre>
coolantId = addChannel("EngineTemp", 10)
oilId = addChannel("OilTemp", 10)
throttleId = addChannel("TPS", 10)
brakeId = addChannel("Brake", 10)
setTickRate(30)
 
function onTick()
  repeat
    id, ext, data = rxCAN(0)
    if id == 809 then
      temperatureC = (data[2] - 48 ) * 0.692
      temperatureF = (temperatureC*1.8)+32
      setChannel(coolantId, temperatureF)
      throttle = data[6]/255
      setChannel(throttleId, throttle)
 
      brake = data[7]
      setChannel(brakeId, brake)
    end
 
    if id == 1349 then
      temperatureC = data[5] - 48
      temperatureF = (temperatureC*1.8)+32
      setChannel(oilId, temperatureF)
    end
  until id == nil
end
</pre>
 
===Step 5: Test!===
Once everything is connected, plug in the other end of the RJ45 cable to RaceCapture/Pro, turn it on and turn on your car. Make sure RCP is connected to your tablet and the RaceCapture/App is running.
 
Swipe to the digital dash page and you should see data for Coolant, Oil Temp, Throttle and brake!


===Troubleshooting===
[[file:Setup_CAN1_500K_baud.png]]
If you don't see any data, verify all connections and splices.  


If everything is connected connect your laptop to RaceCapture/Pro, open the RaceCapture/App, go to the Scripting section, set Logging Level to debug and select 'Poll logfile'. Check the output for any obvious errors.
===E46 CAN bus Preset===
After wiring is complete, load the E46 CAN preset under Setup / CAN Mapping:


If you are still having issues post your problem on the forums here http://www.autosportlabs.org/viewforum.php?f=20&sid=88ccc8d4a459a907c2b8f951f6b3d103
[[file:E46_CAN_preset.png]]


After loading the preset, write the configuration back to RaceCapture.


==CAN Channel Mapping==
==Verifying real-time data==
The full CAN bus mapping can be found in our [[CAN_database#BMW_E46|CAN Database]]
Start the engine, and then navigate to Dashboard / Raw Channels View to verify you are receiving data.


==Additional resources==
==Additional resources==

Latest revision as of 16:03, 31 August 2022

Installation

Integrating with the E46 requires just one cable, tapping into the CAN bus data of the E46's instrument cluster.

Required parts

E46 integration cable.jpg

DIY Cable

To make your own cable, you'll need the following:

  • Crimp tool
  • Wire cutter
  • Wire stripper
  • Philipps screwdriver
  • Multimeter
  • 22-26 gauge wire
  • RJ 45 (Ethernet) cable, ~6ft
  • Shrink tubing (optional, electrical tape will work too, but not look as nice)
  • Posi-tap connectors (2) - Do *not* cut the CAN wires during this installation, use wire taps (Posi-taps work very well)
  • Butt connectors (2) for 22 gauge wire
  • Flashlight
  • RaceCapture/Pro with Bluetooth
  • Android tablet
  • An E46 ;)

Estimated Time

2-3 hours, depending on level of wiring experience. The most time consuming part is splicing the CAN, power and ground wires into the RJ45 cable.

RaceCapture/Pro installation (Race / Spec E46)

We recommend installing RaceCapture/Pro on the transmission tunnel to the right of the driver's seat. This is near the center of rotation to get the best effect from the on-board IMU (Accelerometer + Gyro)

RCP install E46.jpg

CAN wires

The CAN+/CAN- wires are located in 2 places: under the driver's side dash above the footrest or in the DME panel. For these instructions it is assumed you are using the wires under the dash.

CAN wire colors are as follows:

  • Yellow/Red = CAN+ (high)
  • Yellow/Brown = CAN- (low)

They are a twisted pair in or attached to the main wiring harness under the driver's side dash above the dead pedal.

Remove bottom of dash

You will have to remove the panel below the steering wheel via 3 philipps screws, a plastic thumb screw (turn 90 degrees and pull) behind the pedals and a press fit plastic screw on the transmission tunnel (pull the tiny center pin out first, then the larger screw).

Once you have removed the panel you should see a large wiring harness above the dead pedal.

Locate CAN wires

Look for a twisted pair of wires that are Yellow/Brown and Yellow/Red like so:

Canwires.jpg

Those are the 2 wires you need to *tap* into, not cut.

Tapping CAN wires

To tap into the wires, you'll first need to tease them apart because they are very tightly wound. Peel back some of the black cloth tape wrapping the harness and gently pull the wires apart. This may take some time. You'll want to have enough room for 2 fingers in between the wires.

Tapping the wires via Posi-taps (recommended) is easy. Pull the top off the Positap, place the wire in it and tighten. Verify you've tapped the wire by loosening and checking for a hole in the wire.

Positaps.png

Once you've tapped both it will most likely look like this:

Can-tapped.jpg

Create CAN wiring for RaceCapture/Pro

Now that you've tapped the CAN wires, cut two 6 foot lengths of solid wire, strip both ends and attach one to CAN+ and CAN-. Make sure to label them or you'll have to keep looking under the dash. Yellow/Brown is CAN- and Yellow/Red is CAN+.

Where you run these two wires is dependent on where RaceCapture/Pro is. You can either run them down the driver's side of the car, next to the dead pedal or find a way to route them into the center dash and out below the CD player/HVAC controls. For these instructions we routed them next to the dead pedal, under the floor mat and taped them onto the transmission tunnel next to the driver hidden away. (Our RaceCapture/Pro was installed on the center rear seat)

Power and ground wiring

Note: You can skip this section if you already have power wired to RaceCapture/Pro and don't want to change it.

RaceCapture/Pro MK1 owners: do not wire in power or ground via CANx module; connect power via terminal block only.

Option #1: OBD-II port power

Using the same cable used for the CAN bus connection you can tap into power on the OBD-II port, for a clean 4 wire connection:

E46 CAN OBD2 power.png


BMW E46 power, ground and CAN bus connections to RaceCapture/Pro
Connection BMW RaceCapture/Pro (RJ45 cable)
+12v Yellow-Red (OBD-II connector) Brown
Ground Brown (OBD-II connector) Orange/White
CAN High Yellow/Red Orange
CAN Low Yellow/Brown Green/White

Note: These color codes assume EIA-T568B RJ45 cable (check printing on the cable to confirm)

Option #2: Center arm-rest power

An easy and convenient source for power is under the coin holder in the center armrest. Pull the cup holder and coin holder out. Beneath them will be a cloth/foam wrapper containing a cellular phone connector. It contains 12v switched power and ground. Pull it gently towards the back of the car, then up to get more slack. Pull apart the foam to get to the wires.

The 12v wire is purple/white, ground is brown. *Note*: there is also a tan wire that looks very similar to brown. Compare the two and pick the darker one.

Splice power and ground wires

You can tap these wires if needed, for these instructions we cut them.

Cut 2 pieces of solid wire about 3ft long or appropriate length needed. Cut the 12v and ground wires and connect them to the wires you just made. Tape or add shrink tubing as necessary. Label the wires 12v and ground.

E46powerground.jpg

CAN Bus connection

In order for RaceCapture/Pro to read CAN data you need to connect the CAN+/CAN- wires to a RJ45 (ethernet cable).

Cut one end off the RJ45 cable and pull apart all the wires.

Identify and label the CAN1 High, CAN1 Low, 12v and ground wires via a multimeter.

For a standard RJ45 cable (EIA T568B) the colors are:

  • Orange: CAN1 High
  • Green/white: CAN1 Low
  • Brown: Power
  • Orange/white: Ground

Use the following diagram:

Canrj45.png

You will end up with something that looks like this:

Rj45labeled.jpg

Once you have identified and labeled the wires, strip them and attach to the CAN wires and power/ground wires from the car. RJ45 wires are very thin, you will want to loop them around the thicker wires and add tape or shrink tubing.

Configure RaceCapture/Pro

Set Baud Rate

Ensure CAN1 baud rate is set to 500K

Setup CAN1 500K baud.png

E46 CAN bus Preset

After wiring is complete, load the E46 CAN preset under Setup / CAN Mapping:

E46 CAN preset.png

After loading the preset, write the configuration back to RaceCapture.

Verifying real-time data

Start the engine, and then navigate to Dashboard / Raw Channels View to verify you are receiving data.

Additional resources