2009 Dodge challenger New user tips Savvy CAN

I have just received my macchina.

I would like to ask some questions regarding savvy CAN and i’d like to offer a few suggestions.

First off, it should be noted that i spent quite a considerable amount of time trying to flash m2ret and gvret via arduino software. this was not successful by any means.

after some digging i found it was best to flash the macchina “under the dash” unit via Colins flashing software directly on his web site. anyone reading this should note this. and i feel it may be a good thing to add to his web site as a “hint” or “tip” hours of fiddling around were wasted trying to collect all the correct files and flash them to the M2. it never worked.

Flashing topic:

i was only able to flash gvret correctly with collins flasher program. the m2ret flasher from collins site would not work properly.

question:

what is the difference between gvret and m2ret? which one should i use? possibly a list showing specific criteria would be helpful for new users to select the correct version. I still don’t know myself.

question:

when i had gvret flashed and i connected to my vehicle i was unable to get any of the data flow to show up until i selected UDS scanner and fiddled around with it making some guess at where to scan. it did scan and report back addresses. I should also not that it did report back 3 can busses. 2 at 500k and one at 33k

but scanner still would not show continuous data. in the communication screen dialog when i click the “check” box to enable it did start streaming messages in the little dialog box. all connections were active and created and on the correct com port as in the device manager.

I seem to be missing something to be able to view live streaming can data, so far i have only been able to scan for addresses i started the scan with values from “oxff” to “oxff” and it went through and reported back a list of address. after a slow scan process.

question:

can someone tell me if i am missing something.

I flashed the m2 with gvret
opened latest version of savvy can
connected to the car and started the connection dialog box.

this is where things come to a end.

is there a data base i am missing?
also does a DBC file exist for the dodge platform? or is it already in files of savvy can? is there another CAN template/database i am missing that its not properly scanning my vehicle?

thanks for the help

Sorry you are having trouble getting things set up. Development is happening so quickly that instructions and documentation always tend to fall behind. You are in the right place to ask questions though. Let me see if I can answer some things:

GVRET is firmware designed specifically for EVTV hardware including “GEVCU, CANDue (1.1 or 2.0), or EVTVDue” M2RET is a fork of that code base that takes advantage of some of the additional circuitry found on M2. (i.e. additional SW CAN channel). In other words, you should be using M2RET if you want to use SavvyCAN with M2.

For reference to others, here is that link. This is a .ZIP file with several files. Extract, plug in M2 and run “M2RET_Flash.bat” to program M2 without compiling. You said it would not work properly, can you expand on this more?

I’m thinking you’ll want to get the M2RET code to run on M2 in order for SavvyCAN to work properly with M2.

i got m2 ret flashed properly.

this is what happens now when i open savvy can

I must be missing something that allows savvy can to read my vehicle. some setting?

Well, things seem close to working. When you enabled the debug console you see some text flowing by. Because I think of myself as hilarious the keep alive traffic is in fact 0xDE 0xAD (so it returns DEAD when it’s alive. Yeah, hilarious.) Anyway, you can see DEAD coming through over and over so M2RET is alive on the hardware. Now, you certainly aren’t seeing any traffic though so that’s a problem. There are a variety of possible things here. One, you could have the wrong speed set. 500k is extremely common but it could be 250k or 1000K (1M) as well. Or, something could have gone wrong with CAN filtering. If you have the Arduino IDE installed then you might try the “Serial Monitor” from within the IDE. The baud rate set is not relevant but you will need to use some form of line ending other than none. CR, LF, or CR/LF are all valid. Then, type ? and hit enter. You should see a list of options. And, if you’re attached to the car then you ought to see traffic. Lastly, if you got results on the UDS scanner but you aren’t seeing traffic normally then the people who built your vehicle might be the sort of people who lock down the CAN bus and don’t allow normal traffic to tunnel to the OBDII port without a secret handshake. This is a perfectly valid thing to do. They are only required to allow OBDII related traffic on that port. Usually a lot more traffic is visible but it isn’t required to be there. I’d be interested to see what your UDS scan says.

I do not know what you mean by try the serial monitor. can you briefly describe how to do that. i also do know know what you me “if i have ide installed” I have set the m2 board as per the macchina setup page and have done nothing else.

here is what happens when i press the uds scan:

thank you for the help.

I just realized there what the serial monitor is that you mentioned above.

i did as asked and no lines showed up in the diag box

question:

on the m2 (under the dash style unit)

PIN 6 is CAN high
PIN 14 is CAN LOW

the research i am coming up with shows that the OBD connector on my challenger has PIN 6 called “CAN -” and PIN 14 “CAN +”

is it possible these are somehow reversed? or is it a industry standard for pinout and im just looking at it wrong?

next question is if they are reversed for whatever reason, is there a way to switch the software to flip the pins on the M2. or would i need to physically de pin the obd connector and change it there?

if able to be done in the software from m2rev, could i be given a quick rundown of where to change it.

thanks

Sorry, actually if you’ve connected SavvyCAN you’d have to do what I said twice. ? then enter ? then enter. The reason is that savvycan puts the comm into binary mode and keeps sending data so you need to send some bytes a couple of times to clear out the binary comm and allow it to go back into a mode where the serial terminal works.

Anyway, I think they’ve segmented the CAN bus on you. You can see in your video that you got a reply to a message sent on 0x7E0. The reply was on 0x7E8. This is a bad sign for you as it means that your adapter and car are working and things are talking. So, apparently things work fine and the real trouble is that the automotive engineers have disallowed any non-OBDII traffic on that port. It’s entirely reasonable for them to do that it’s just that normally no one bothers to do that so you normally see a lot more traffic. You are likely then to not be able to do anything on the OBDII port except talk to the ECU for engine diagnostics. Apparently on that vehicle you need to do a secret handshake to open up traffic on the OBDII port or you need the under the hood version and you’d have to tie into ECU wires under the hood (a bit more scary of a proposition).

But, the fact that you received traffic seems to suggest that nothing is wrong with any of the hardware.

Yup…stupid chrysler, all the regular “inter-vehicle” communications stuff is on a different CAN bus that is isolated from the OBD port. The TIPM (totally integrated power module, the underhood fuse box) is the CAN gateway between the OBD port and the rest of the vehicle.

So if you want anything via the OBD port, you have to specifically ASK for it, then the TIPM will respond, ask the other modules on the separate “IHS CAN bus” for the info, and relay it back to the Macchina plugged into the OBD port.

You’re going to have to splice into the separate CAN bus, or reverse engineer the chrysler scan tool commands, to ask the TIPM for information…

Ok. I also just found info elswhere about the obd port not carrying any traffic. And having to tie into the can wires directly.

I have a scan snap-on modus scanner that is able to connnect to dodges and get info like the scan tools youd find at the dealer.

Its getting a bit beyond my skill set to figure out the handshake from a scanner that would wake up the car up the cars bus and then use that info and turn it into a custom code so the m2 and collins scanner would then work

Making the data log of the handsake i can do pretty easily and post it here as well as many other brands and makes from this scanner if someone would be able to help with the side of deciphering and turning it into the code. The snap-on modus i have is a about as high end as you can get for a repair shop and talks to most all the modules on fords gms chryslers etc… so id be more than willing to help solve this issue and get a custom code that talked to all busses without having to hard wire into car. Along with any other makes out there for other people.

That unit runs windows on it doesn’t it?

I ask because there might be another way depending…

Yes it does. What is your idea?

Check your PM’s I sent you a private message.

@fox95 I’d be interested in seeing what that handshake log would look like. I bet there are some folks on this forum that would be happy to help decipher and write up some code too. I’ve got a dodge and can help test too.

I highly doubt its anything complicated.

Its probably just something along the lines of:

Keep sending $01 $3E (device control/scan tool connected) once a second

Then request PIDs as you need them.

$02 $1A xx xx xx xx

Or you can dynamically define your own group of PID’s.

NOTE…those hex values are for GM ECU’s, I cant say for sure if chrysler is the same, but its probably something along those lines. I highly doubt theres any complex seed/key or anything like that.

When I was talking about a handshake earlier I meant in order to turn on full traffic on the OBDII port. There is likely a command sequence to do this so that technicians can hook up via OBDII and get more diagnostic info. But, I’ll bet the way to do it is closely guarded.

As for 1, 0x3E and 0x2 0x1A and the like, that’s a standard. OBDII PID codes are standardized and the OBDII protocol has a wide range of standard commands. 0x3E = tester present and it’s a standard across all vehicles. Then there are a list of standard PID codes that everyone uses. The hard part is that there are likely lots of “extended” codes that don’t follow any standard. Of course the automakers have tools that can use these codes but they jealously guard their secrets.

SavvyCAN has a UDS scan interface. OBDII is a subset of UDS so you can use the UDS scan window to search for codes that aren’t standard. Just ask it to try a range of pid codes. The fuzzing window can be used to do that as well so long as you know the interface ID for the ECU you want to query. I REALLY need to start documenting these things because the program can do all sorts of things that only I know about. It’s quite full featured but that just means that it’s tough to figure out what to do or know what you could possibly do with it.

I understand newer VWs also have some sort of “handshake” to get basic OBD2 information. Maybe someone could use a OBD2 splitter, SavvyCan + M2, and a known-working scanner to capture that handshake and post it up here?

sorry havent got to this yet. somewhere along the line of downloading arduino files and git hub CAN files i got a nice little virus that wrecked the boot sector on my drive. I’ve never had a issue with anything like that until that night. im afraid to say i think there’s some no so nice people out there…lol (sidenote, my laptop has never had any issues ever and im usually diligent about downloading and scanning files for crap, but in haste that eve with the CAN stuff i think i overlooked something. long story short i got sidetracked on this thread with a laptop hard drive resurrection.