Problem reading my fiat 500e


Im trying to read the Canbus C (HS-CAN) on pin 6 and 14. It seems to work but my car is like an christmas tree when plugging the macchina in to the socket, i do read a LOT of info… around 2000 id’s a second. (under the dash version).

I have controlled that i have the correct pins, its an propertarian fiat outlet. Reading with 500kbit speed which should be correct? Using macchina m2 with m2ret and savvycan. I have also put the savvy to read only and only reading on can0 = which should be 6 and 14.

Ive also tried another (few years older) car it seems a little bit less sensitive but still a lot things blinking and disturbed. Very frustrating!

I only want to read canbus id’s for reverse engineering and in future send commands.

What am i doing wrong?


I’m not very experienced with SavvyCAN but that just looks to be the traffic on the Fiat’s CAN. There is a lot of data transmitted on the bus & it can become difficult to pinpoint or discover particular signals. Is there something in particular you’re trying to reverse engineer?


Have you made sure you aren’t connected to other buses at the same time? It should be able to connect without disturbing the bus. I’ve heard some other reports of this sort of thing happening to people. But, lots of people have been using M2’s for all sorts of things and most of us aren’t getting bus errors when we do so. But, if you could maybe accidentally be connected to a secondary bus at the wrong speed then that might explain the christmas tree effect.

1 Like

Yes, a lot of info but still manageble. Im new to this aswell, but the most of the data feels logic. I just dont understand why it’s going crazy just by plugging the m2 to the socket.

I’m trying to find all battery data of the ev for an coming project as I want to implement chademo charging on the fiat 500e.


The first times I probably had all busses on. But after I read a little more I inactivated everything besides can0 but I have the same problem still. I’ve checked that the high speed can goes at 500k speed as in the workshop book says.

Could it be something else as I get pretty much the same problem plugging it in to a Land Rover (my other car).

Looks like the savvy sends “write to serial: f1 9” and gets answer “got data from serial: len 4 = f1 9 de ad” all the time fuzzing the bus? Is it supposed to do this?

If that’s not the problem, where in the sketch could I hard-inactivate all busses besides can0?


F1 09 is a keep alive message to the M2 and F1 09 DE AD is the reply from the M2. I thought I was funny so an alive board sends DEAD over and over to prove it’s alive. But, then again, I am a kidder.

The M2 should have a serial console you can access with any terminal software. When you plug it in you can get a console on the serial port and see if CAN1 is enabled. You need to send line endings for your commands. Send ? followed by a line ending to get a help screen.

It is possible that the M2 has functionality enabled on some pins that conflict with your vehicles. It seems to work great on GM vehicles as their OBDII port is configured just like the M2. If you’re having problems you might try an OBDII breakout board to make sure you can only hook up the signals you need. Otherwise I don’t know why it would make your vehicles mad when you plug it in.

1 Like

What do you want to achieve with chademo charging?
F500e has OBCM L1/L2.


With Chademo i could charge with 50kw instead of 7kw as the f500e obcm has L1 + N not two phases.

Sadly i havent had any time to get my hands on it yet. and the macchina with savvycan still triggers all type of faults just by plugging it in. Next step would be to only wire the canbus cables directly to the macchina instead of plugging it in the port.


Is this pack still in the vehicle?
How do you want to route the charger HV to the pack?
Planning to bypass OBCM?


The OBD port under the dash has no Powertrain CAN messages, there’s a separated bus for EVCU, PIM, BPCM, and OBCM.


The pack is still in the car. I was thinking about tapping in to the hv-cables at the power distribution box.


The fiat 500e (says the 500e guide) have three buses:

  • Canbus C (highspeed at 500kbps) for powertrain and chassis modules
  • Canbus B (lowspeed at 50kbps) for body and interior modules
  • LIN bus for single wire communication at 9.6kbps like the HUM, AEH, ePRND-module, IBS, PECP, BCP-after the BPCM.

So… i should be able to read canbus for wake-up of the OBCM… EVCU for statuses, even the PIM (Invertermodule). BUT at the moment all i get is a overloaded macchina / savvycan that crasches. AND a car that looks like a christmas tree.

Maybe i got it wrong connecting the macchina directly “under the dash version” and not with each specific cable to the port.

I know that the fiat isnt compatable with connecting an obd-unit with connector pins 1 and 9 that has an resistor or is short-circuited. Actually, i have to measure that on the macchina maybe thats the funky problem?

So… so far i could see i would be able to see all can traffic on highspeed canbus c just by tapping in to pin 6 and 14.

This is spec from FCA-tech:

And this is my picture from my car from a couple of weeks ago, guessing… seems that im not far from the technical spec:

Any thoughts? does the macchina interfere with the ports causing these problems?


Sorry–I misunderstood your initial post. I thought you were strictly talking about the amount of data.

Definitely sounds like shorting, termination, or a bitrate issue. Have you tried 250kpbs on the bus? Sometimes service manuals are hit-or-miss. Those IDs also look like 29-bit IDs which should not exist in your passenger car. IMO the CAN controller is mis-packing messages due to some error. Alernatively–can you run pins from the Macchina M2’s OBD connector directly to 6/14 (CAN-H/L) on the car and see if this works without the Christmas-Tree effect?

If this still results in warnings, do you have a multi-meter to check for proper termination? It could be that your car is very finicky with resistance.

Good luck!


All right… i found out it was a easy? fix… i had replaced the values on each bus and the fiat doesent like to connect and scan only on bus at the time… i cant do one bus at the time for the moment at least then the car throws error codes in the dash. so can0 for 500000kbps high and can1low can=50000kbps.

But… seems like i got it working now.

The yellow is my vin_number. changing bits under 0x0C514000

Next is how to understand… to send hazard warning lights command as that seems to be the easies can id i could see at the moment. only two bits changing.

Should it be just to replicate exactly the same in to the bus it came from?


Seems that my 500e dont like the macchina m2 or if its the gret/savvycan. I can only get ID’s thats 0x00000000 long… that dosent seem to be correct. And if i try to send back and id (what i think is hazard lights) the car just goes of like a christmas tree again.

Ive ordered a obdlink mx, maybe thats easier to listen and send messages with as my coding skills are vague.


I recommend trying some common bitrates and double-check your resistance. Your CAN controller seems to be incorrectly packing messages. Common bitrates=125000, 250000, 500000.

Your car may also be particular about resistance. CAN is meant to be terminated with 120-ohms on each physical side of the bus–typically it’s not a big deal for an OBD device but it’s worth a shot to look at.

You should be getting messages that look like: 0x0C7 instead of the long ones.

For what it’s worth–if you’re just looking for diagnostic data, the obdlink mx might be a better route for you. If you’re looking for the raw CAN data however, I’m unsure that unit is fast enough for your HS-CAN (the listing I found specifies MS-CAN but not a particular bitrate).