Jump to content

G4+ Mazda RX8 CAN Bus


littlefeck

Recommended Posts

A brief google suggests there might be a chance of getting it to work.  Taken from this page here:  https://www.cantanko.com/rx-8/reverse-engineering-the-rx-8s-instrument-cluster-part-one/  the below info suggests just those first two ID's would give you a working dash.  500Kbit/sec rate.  I dont have enough experience with OEM CAN conventions (if there are any) to know what the byte order will likely be but trial and error will probably work that out.

If you have a car fitted with a G4+ and its already running and connected to the CAN bus then I can give you a couple of examples to try.

DJqcd0M.png

Link to comment
Share on other sites

This guy has a really good process on how to observe and reverse engineer canbus signals

http://bobodyne.com/web-docs/robots/MINI/CAN/MINI_CAN.pdf

His example use a mini but the process applies to everything. Its basically push the car through some known states eg press gas pedal, speed up, slwo down, turn steering wheel. Graph the output of each stream of data coming across the can bus, then try to map what you did to something you can see happening on the canbus.

I've done this myself on a subaru using one of these

https://www.aliexpress.com/item/Dual-Channel-USB-To-CAN-Analyzer-DeviceNET-iCAN-VRMS-CANOpen-J19339-CAN-Analyzer/32359550686.html?spm=2114.search0104.3.1.TSYAka&ws_ab_test=searchweb0_0,searchweb201602_4_10152_10065_10151_10344_10068_10345_10342_10547_10343_10340_10341_10548_10541_10084_10083_10560_10307_10175_10060_10155_10154_10056_10055_10539_10537_10312_10536_10059_10313_10314_10534_10533_100031_10103_10073_10102_10557_10142_10107,searchweb201603_25,ppcSwitch_5&btsid=c137e58f-7221-4cd6-8e73-88f833c9f482&algo_expid=3d31339c-5443-452b-a5c7-85399dba71d8-0&algo_pvid=3d31339c-5443-452b-a5c7-85399dba71d8

It looks really daunting to start with as literally nothing has labels, but as soon as you get your head around which devices are which ID's you can start to focus on things that matter - eg tacho signal has to come the ecu, speed has to come from the abs computer (check wiring diagrams but this is usually true) so you have a pretty good idea where to look, graph each block of data, then look for a graph pattern that matches what you did with the vehicle, then work out the scale of it. You may want to start by watching the ID's that are present and the time intervals of them and disconnecting abs/ecu/body control computer/etc to start with as the first step. Remember you dont have to understand all of it, just the signals you are sending from the ecu or receiving via canbus (eg speed)

Link to comment
Share on other sites

  • 5 months later...
  • 2 months later...

@Adamw Hi Adam, I am currently trying to configure the CAN bus on my base map but am having some difficulty making sense of the example data to plug into it. Also is it possible just to send a frame of data to keep the power steering working -

200 00 00 FF FF 00 32 06 81 // EPS doesn’t work without this

202 89 89 89 19 34 1F C8 FF // EPS doesn’t work without this

http://www.madox.net/blog/projects/mazda-can-bus/ has additional information but I cant make sense of the ID that sends individual wheel speed (link ECU receives)

000004B0 0,1     Left Front Wheel Speed Check Order. Scale = (X-10000)/100 km/h, unsigned (Refer to handle position). Correlates with 00000020F vehicle speeds.
000004B0 2,3     Right Front Wheel Speed Check Order. Scale = (X-10000)/100 km/h, unsigned (Refer to handle position). Correlates with 00000020F vehicle speeds.
000004B0 4,5     Left Rear Wheel Speed Check Order. Scale = (X-10000)/100 km/h, unsigned (Refer to handle position). Correlates with 00000020F vehicle speeds.
000004B0 6,7     Right Rear Wheel Speed Check Order. Scale = (X-10000)/100 km/h, unsigned (Refer to handle position). Correlates with 00000020F vehicle speeds.
000004DA 0,1     Steering Column Angle (X-32768)/10 Degrees, Clockwise +ve.

 

The id is shown above as 000004b0 but the ID in the ECU is numerical only.

I have attached my base map and am using CAN bus 2

 

 

 

rx8.pclr

Link to comment
Share on other sites

  • 6 months later...

So this will work for getting the wheel speeds to the ECU rather than via the DI's? 

Id like to save these inputs if possible.

Also is there a way to turn the termination resistor off to turn the ECU into an node as i am planning to add another device to input CAN signals to the dash which already has the terminator built in.

Link to comment
Share on other sites

yes, this will receive wheel speeds via CAN.  The termination resistor can only be removed (unsoldered) but try it as it is at present, I have had systems work fine with 3 resistors connected before.

also attached an updated map that has a bit more CAN bus dash functionality set up.

RX8 CAN example.pclr

Link to comment
Share on other sites

Wow. That's awesome, nice work!

I'm a total noob when it comes the CANbus so what exactly does this send to the dash?

looks like you have added oil pressure, but what are the VA8 outputs in stream 4? That virtual output is turned off. are they used to turn off other warning lights?

Things I require are:

RPM

Charrge

Speed inc Odometer

Check engine light 

Cruise on light

Coolant temp

Oil pressure (via ANV input 10bar sensor) ( i know the dash works off a switch but can the ecu output at say 25psi and above or something?)

This will be for my RX8 running a 1JZ VVT-i using the RX8 e-throttle with Aircon.

Ive attached my installer IO. Planning to run a Fury and it would be nice to save on some of the AUX outs and DI's.

 

ECU-IO (1).pdf

Link to comment
Share on other sites

The VA8 is just used to generate a constant.  VA8 cannot be used for anything else and must remain set to off for this to work.

I can't confirm if the ODO works as I haven't had feedback from anyone on that.

The cruise light wont work but everything else you mention should.

Link to comment
Share on other sites

  • 5 months later...

I am having trouble to set up the Cruise control light. I believe I have the correct ID (Message id="0x165" (decimal 357))

How can I set the different values to output correctly?

Cruise Main Indicator" offset="6" length="3" endianess="big"
                off value=0
                ready, not active (yellow) value=2
                 ready, value set (yellow" value=3
                 active, value set (green) value=5

CAN.png

Link to comment
Share on other sites

  • 2 weeks later...

I know I'm a notorious moaner when it comes to CANBus, but given my frustrations I've begun development of what would effectively be a configurable translator module to allow Link ECUs to operate in vehicles that are heavily dependant on CANBUS (my GT86, the above RX8 etc)...

Unfortunately that comes with a feature request, as currently both the ECU and the translator module find themselves having to waste considerable numbers of I/O pins on functions which would ordinarily be transmitted over CAN. Note that I'm not asking for improvements in the CAN environment to enable direct OEM integration. As I appreciate that's a lot more work, and simply not on the roadmap.

What I'd like to see is a number of 'Virtual I/O' pins which can be assigned to any function as if they were physical pins. So a pin like 'CAN DI #1' would have a page like 'DI 4' does. Giving me the ability to assign a Start Switch, Traction Control Switch or GP Input for Map Switching. Virtual analogue in might be more difficult, but it would be helpful in situations where the CAN bus presents an input with a linear value (torque reduction request, etc)

And the same kinda thing for the outputs. This would save Link engineers from having to create specific code to make things like Cruise Control indicators work over CAN. You could simply assign them to a virtual output.

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
On 1/9/2019 at 7:23 AM, Adamw said:

yes, this will receive wheel speeds via CAN.  The termination resistor can only be removed (unsoldered) but try it as it is at present, I have had systems work fine with 3 resistors connected before.

also attached an updated map that has a bit more CAN bus dash functionality set up.

RX8 CAN example.pclr

the canbus file for can bus rx8 1jzvvti ? ecu link strom

Link to comment
Share on other sites

9 minutes ago, alexjohn said:

 canbus file for rx8 runing gauge oem....use engine 1jz ecu strom ?

Yes.  Just copy the settings out of this file into your map.  You can open two instances of PC Link side by side to make it easy.

Link to comment
Share on other sites

  • 3 weeks later...

So I've copied everything can over into my thunder to get the rx8 dash to work. 

 

I cut the OE can wires at the rx8 ecu and connected the thunder can wires there. Trouble is now the stock immobiliser won't turn off. Is there a way the thunder can tell the car it's okay to de-immobilise? Or is it a case of just rewiring the key/starter solenoid? 

Sorry, CAN newbie here 

Link to comment
Share on other sites

The rx8 immobiliser is made up of the engine ecu, remote keyless entry box (rke) gauge cluster and the key pickup. When you remove the stock ecu the immobiliser function is now gone. Everything should work but youll get a flashing light on the dash. The rke has a wire that flashes this directly to the gauge cluster. If you cut this wire the light will be gone. Ill look at my wiring diagram for you tomorrow. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...