Login Register Sign up for the GRM e-newsletter

Login to post Forums » Grassroots Motorsports » CAN bus question
  • Keith

    Aug. 13, 2010 3:44 p.m. Keith SuperDork

    Anyone here know much about dealing with a CAN bus? The 2006-10 Miata has one, and I'm trying to figure out how to make the gauges fit with a, ahem, non-standard engine. Specifically, the tach signal. That's sent to the cluster via the CAN bus. Is there a way to inject a new tach signal into the bus? Most of the information I've found has been on how to extract a tach signal for running a shift light, for example.

  • Tyler H

    Aug. 13, 2010 4:02 p.m. Tyler H Dork

    Keith wrote:

    Anyone here know much about dealing with a CAN bus? The 2006-10 Miata has one, and I'm trying to figure out how to make the gauges fit with a, ahem, non-standard engine. Specifically, the tach signal. That's sent to the cluster via the CAN bus. Is there a way to inject a new tach signal into the bus? Most of the information I've found has been on how to extract a tach signal for running a shift light, for example.

    All I know is that my 8 year old MINI has three different bus systems and I hope they don't fail.

    The shop manual tells me that the Big Ben speedo in the middle of the car is IKE. And you don't F with IKE.

  • Keith

    Aug. 13, 2010 4:10 p.m. Keith SuperDork

    I've tapped into the ibus on my E39 M5. I can eavesdrop as the light control module chatters away to the radio about where the GPS thinks we are. It's awesome.

    But I haven't tapped into the CAN bus...

  • Fit_Is_Slo

    Aug. 13, 2010 9:37 p.m. Fit_Is_Slo Reader

    Sell car.... Buy older car.....

  • VanillaSky

    Aug. 13, 2010 10:18 p.m. VanillaSky HalfDork

    I'd like to know a bit about this as well.

  • AngryCorvair

    Aug. 14, 2010 12:02 a.m. AngryCorvair SuperDork

    Keith wrote:

    Anyone here know much about dealing with a CAN bus? The 2006-10 Miata has one, and I'm trying to figure out how to make the gauges fit with a, ahem, non-standard engine. Specifically, the tach signal. That's sent to the cluster via the CAN bus. Is there a way to inject a new tach signal into the bus? Most of the information I've found has been on how to extract a tach signal for running a shift light, for example.

    Does Mazda have an engineering center in the USA? I'd think that with your Miata cred, you could probably call someone "on the inside" and get a properly engineered solution.

  • Keith

    Aug. 14, 2010 12:16 a.m. Keith SuperDork

    I wish I had that much cred We'll give that a try, and I have a couple of engineers with brains the size of a planet looking into it as well. I was just curious if anyone had this sort of knowledge base already. It actually looks like a pretty cool system.

  • Aug. 14, 2010 1:53 a.m. mistanfo SuperDork

    Keith:

    Step One:nget factory wiring (remove from car) Step Two: ????? Step Three: Profit.

    Really, might this be a good time to rewire an NC? Of course, you would then have to obtain new instruments, likely lose the HVAC, etc. But with LSx power, would you really care about any of that?

  • Ranger50

    Aug. 14, 2010 8:13 a.m. Ranger50 New Reader

    CAN bus operates as a nearby module gathers signals and then distributes all those signals out to the other modules for them to decide what they want and what they don't want.

    So basically, to keep it simple, you will need to get the engine rpm signal into the factory pcm so it can be "bussed" out to the cluster to display the RPM.

    Also, I know in the case of some DCX and GM's, if you remove a module, the network goes down and the vehicle doesn't operate. So be careful! :)

    Brian

  • Keith

    Aug. 14, 2010 9:15 a.m. Keith SuperDork

    Rewiring the car really isn't an option, the bus is dug into all sorts of things like the ABS and probably even the control for the folding hardtop. And our customers will expect cars that have all the mod cons. One of the biggest complaints about the NA/NB conversions is that we don't have functioning cruise control! I know we'll likely lose the traction control and stability control but that's okay.

    Injecting the engine RPM signal into the bus so the cluster can read it is exactly what I want to do. I just don't know how or if it's ever been done.

    I don't think tell the stock PCM what the engine rpm is because I suspect it'll then get cheesed off that it's not controlling the engine and that the sensors don't agree with each other - my thoughts are that the best way to make this work will be to set things up so the stock ECU knows the ignition is on but not that the engine is running. I'm guessing the speedo will still work at that point, along with the other gauges other than the tach. Here's what I can find that's attached to the bus in the 2006 Miata. It's interesting that the fuel signal comes through the ECU but the oil pressure does not.

    Looks like the CAN bus in the NC talks to:
    PCM (duh)
    Instrument cluster
    Data link connector
    Steering angle sensor
    Keyless control module
    DSC
    ABS
    TCM

    Possibly more on a later car, that's an O6.

    Extrapolating from the wiring diagram, the following gauges are run by the PCM via the bus:
    Fuel
    Temp
    Tach
    Speeeeedo
    Various idiot lights

    I may start with a fully functioning car and start disconnecting various pieces to see how the system reacts. The ibus in the M5 is giving me a good concept of how this is all working, and I'm reasonably computer-savvy so I can understand the idea of an in-car network.

  • Tyler H

    Aug. 14, 2010 10:16 a.m. Tyler H Dork

    On the MINI, even the dome light runs on the bus. All of these components have a bus ID and I would imagine the CAN-bus needs to be reprogrammed to interact with a new (different) CAN-bus speedo.

    If if I'm not mistaken on the MINI, the CAN operates the engine controls, there is a different bus for ABS/DSC and IKE controls all of the accessories, lights etc.

    Is the donor engine managed with CAN-bus?

  • pigeon

    Aug. 14, 2010 11:33 a.m. pigeon HalfDork

    How does the stock engine give the rpm signal to the CAN bus? I would assume a simple sensor. Any way to graft that sensor onto the "non-stock" engine?

  • Aug. 14, 2010 11:51 a.m. qued New Reader

    Check out Madox.net , or search on the AVR or PIC boards.

  • Aug. 14, 2010 12:33 p.m. Knurled Reader

    pigeon wrote:

    How does the stock engine give the rpm signal to the CAN bus? I would assume a simple sensor. Any way to graft that sensor onto the "non-stock" engine?

    The PCM sends it. There is basically zero direct interaction between sensors and gauges, or switches and accessories, on any modern car. Inputs go to a computer module, data gets thrown around on various buses (up to six) to the item to be controlled, which is also a module, and the item works.

    Which is my thought. I am assuming that the problem is that the "non stock" engine has a different engine controller.

    I'm surprised the bus works at all with the PCM removed, but this may just be because the PCM tends to be at the end of the daisy-chain. (In which case, I'm also surprised that the IPC or whatever does the bus controlling isn't throwing out a bunch of communications codes)

    Question: Why not leave the PCM wired in and give it a crank signal, assuming that this won't be a major production with respect to getting a Mazda-eqsue crank signal from the "other" engine? So what if it freaks out, as long as it sends out an RPM signal. The U-codes will cause a check engine light no matter what.

    Another question: Is this "other engine" Ford based? If the Mazda is using EEC-V, the new engine's controller should talk to the CAN just fine all on its lonesome.

  • Aug. 14, 2010 12:41 p.m. Knurled Reader

    qued wrote:

    Check out Madox.net , or search on the AVR or PIC boards.

    Oh dear god, I love that link.

  • Tyler H

    Aug. 14, 2010 4:42 p.m. Tyler H Dork

    pigeon wrote:

    How does the stock engine give the rpm signal to the CAN bus? I would assume a simple sensor. Any way to graft that sensor onto the "non-stock" engine?

    Versus a resistance-based analog or a PWM digital sensor, CAN devices trasmit on a protocol, with multiple sensors/devices sharing the same wires. So the speed data would come from whatever sensor, encoded.

    Here is a device that taps the CAN-bus and pulls out the speedo and tacho signal. It doesn't list MX-5, but I bet it is similar to Mazda 3.

    http://www.racelogic.co.uk/_downloads/vbox/Datasheets/Accessories/RLVBCSI_DATA.pdf

  • pigeon

    Aug. 14, 2010 7:41 p.m. pigeon HalfDork

    Knurled wrote:

    pigeon wrote:

    How does the stock engine give the rpm signal to the CAN bus? I would assume a simple sensor. Any way to graft that sensor onto the "non-stock" engine?

    Question: Why not leave the PCM wired in and give it a crank signal, assuming that this won't be a major production with respect to getting a Mazda-eqsue crank signal from the "other" engine? So what if it freaks out, as long as it sends out an RPM signal. The U-codes will cause a check engine light no matter what.

    That's what I was trying to say - if you've got a sensor ready to give the signal to the PCM, which would then sent it along the bus to eventually get to the tach, why not re-use it?

  • friedgreencorrado

    Aug. 14, 2010 8:50 p.m. friedgreencorrado SuperDork

    I have absolutely nothing of value to add to this thread. I only just barely comprehend what some of these components you're talking about actually are. I just wanted to say that watching you younger guys discuss this issue so calmly and matter of fact makes me very happy about the future of our sport.

    Apologies for the derail..back to the diagnosis!

  • Aug. 14, 2010 10:40 p.m. qued New Reader

    You might want to look at CanHack , canbus shareware.

  • Keith

    Aug. 17, 2010 11:16 a.m. Keith SuperDork

    Thanks for the input, guys. As mentioned, the tach is driven directly by the PCM. This isn't restricted to newfangled cars with a CAN bus, even the 1990 Miata does that.

    I've thought about giving the Mazda computer an engine rotation signal from the new engine - no big surprise here, we're talking about an LSx - as mentioned earlier. That will likely be the easiest solution, but I don't know if it will work.

    I don't know how well the CAN bus will deal with partial amputation. I'm in the preliminary stages right now and haven't started pulling a car apart yet.

    Pulling the signal out of the existing bus should be relatively easy - you can get the tach signal from eavesdropping on a coil wire, for example - it's the injection part I need to work with.

    Thanks for the links to CanHack and Madox, there's some good information in there. Even if I don't use it, it's something I can pass along to the tame brainiacs who will likely be doing the work. Heck, a standalone signal injection interface might actually be useful for other people with other cars - just give it some inputs, set up the mapping as to what goes where, and let it run.

 
Tire Rack- Revolutionizing Tire Buying

You'll need to log in to post.