1 2
Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 8:01 a.m.

Yeah, the hard part is teasing the messages apart. GM publishes their global spec. Mazda won't tell you squat. Stuff like RPM or warning lights are relatively easy to figure out, things limke fuel usage or exterior temp, less so. We had a hard time getting the ND fuel gauge to work properly because the bloody thing works off dead reckoning based on instantaneous fuel consumption, which is not sent as a unit but as a repeating tick every x mL.

But in order to send data, you just need to know the address, format and scaling of the message. And you may need to block the real message, which is a little more difficult. 

alfadriver
alfadriver MegaDork
6/18/21 8:33 a.m.

In reply to Keith Tanner :

You can read the message, right?  That suggests that someone knows the address.

Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 8:41 a.m.

Note that I'm not trying to solve the problem I posted about 11 years ago :) I could solve it now.

It's easy enough to receive messages. The address is part of it, so if you get a message you automatically get the address. But when you're looking at messages with 8 bits of information sent to a couple of hundred addresses, the reverse engineering can be a little opaque. It's a little different when you're dealing with the OE world where you can just ask the supplier for the definitions or tell the supplier what definition to use!

Message 09A might be 98 40 00 32 A9 FF 00 01. It's easy to pick out of the message flow. So what does that mean? That's the hard part. Each one of those 64 bytes can be significant.

BTW, this little guy would be a pretty good toy to play with sending/receiving CAN messages. A bit of off-the-shelf example code and a USB cable and you can be reading the bus in no time. It's what's basically running my analog race dash these days. If there are no collisions, it could receive messages from one source (say, a GM PCM) and transmit new ones (intended for, say, a Mazda gauge cluster). It's when the stock Mazda ECU is still in there and saying "no, RPM is 0" that you need something a little more complex. I've got a gateway that can intercept/block/modify/generate CAN messages on a couple of busses but it's not a friendly little arduino thing.

 

iansane
iansane GRM+ Memberand HalfDork
6/18/21 9:46 a.m.

I love CAN.

I also hate CAN.

Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 10:00 a.m.

Thanks to that video yesterday, I've got three new product ideas and I'm itching to put them into practice :)

iansane
iansane GRM+ Memberand HalfDork
6/18/21 10:33 a.m.

You mentioned the video was going to youtube, do you have a link? I missed the live segment.

bentwrench
bentwrench SuperDork
6/18/21 10:43 a.m.

THe adafruit link is a 404 now

Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 10:45 a.m.

The video will probably go live today, takes a bit of time to get it to YT.

Fixed the link, sorry about that.

Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 11:47 a.m.
alfadriver said:

The #1 key to do this is to know what the address of that signal is.  That's it.

I am FAR from a CAN expert, but had a pretty funny issue in a project- we were adding some sensors to a test car that transmitted over the car's CAN- and someone forgot to check the addresses.  One of the sensors would constantly cycle the door locks, and the other would make the dashboard a little crazy.

Once they found new addresses to transmit it, it was all fixed.

If you can find that, then I'm betting even an Arduino can transmit the RPM signal over the network properly.

Funny issue we had in one project. We had a customer that wanted us to use the exterior temperature readout on the dash to show oil temp. No problem, added a sensor to the system and fed it into the gateway as the exterior air temp reading.

Turns out the HVAC system uses that to stay on top of things and it went into OMG SAVE THE HOOMANS! mode when the reported exterior air temp was climbing towards 200F.

Pete. (l33t FS)
Pete. (l33t FS) GRM+ Memberand MegaDork
6/18/21 12:00 p.m.

In reply to Keith Tanner :

Sweet, so all you need then is an R134a to oil heat exchanger and let the HVAC figure it out smiley  It's not a bug, it's a feature!

Vajingo
Vajingo HalfDork
6/18/21 2:17 p.m.
Keith Tanner said:

Thanks to that video yesterday, I've got three new product ideas and I'm itching to put them into practice :)

Is one of them a module that will make the nc oil pressure gauge actually useful?

Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 2:30 p.m.

Four!

But I think the hardware I'd need to accomplish it would probably put it out of the range of acceptable, because that means a 2-bus gateway and they're not $24.95 at Adafruit. But I have the hardware I need to try it.

captdownshift (Forum Supporter)
captdownshift (Forum Supporter) GRM+ Memberand UltimaDork
6/18/21 2:38 p.m.

Let me know if the forum messaging software is a option for me to shoot you Dave Coleman's contact info, though I assume that you already have it, I'd be shocked if he weren't willing to help out. 

Keith Tanner
Keith Tanner GRM+ Memberand MegaDork
6/18/21 2:47 p.m.

In reply to captdownshift (Forum Supporter) :

Asked Dave & co about it years ago, they say that Mazda Japan won't share. I did find another source from a friend who now works for another OE. It's very much not public the way the GM standards are.

1 2

You'll need to log in to post.

Our Preferred Partners
q6qjS2DqShMYofBxwlsUlJt3FDkKC7XU6V793VPS3KWcwKHknObhFwgKXUFVGacj