Help Us Collect Data!


Hi all,

I’m looking for people who have an M2 and a vehicle they would be willing to run a simple test on. The test itself takes less than 30 seconds and the whole process from start to finish should take less than 10 minutes.

Follow this link to learn more.



The objective of this test is to measure the vehicle voltage versus time during engine ignition. By determining the characteristics of this response over a wide range of vehicles devices can be programmed to detect when a vehicle has started. This is useful for devices that consume large amounts of power, such as cellular modems, and should be kept off when the engine is off to avoid draining the battery.

Here’s a graph of the data we’ve collected so far:

This graph shows the voltage dips down to around 9 volts as the starter motor runs and then rises to around 14 volts once the alternator kicks in. The band shows the range of values collected so far. As more test results are submitted the hope is we’ll be able to tighten up this band to more definitively characterize the voltage response in a starting vehicle.


Are you wanting any info from hybrids? I have a gen3 Prius. It does not have a starter so the voltage drop is nothing like you shown in your graph.

Let me know.


I have a Chevy Volt and it doesn’t use a starter to power up would you want data on that also?

split this topic #5

2 posts were split to a new topic: Under The Hood (UTH) back order


The idea of monitoring voltage to detect starting is certainly valid. However, I would also suggest to back it up with additional testing. The nice thing about voltage monitoring is that it can be done by comparators at extremely low current draw. That’s great for producing a wake up for larger current draws but is also prone to some false positives and negatives. So, one approach would be to produce a voltage response that seems characteristic of an engine start but make it a bit “Wide” so that it quite easily triggers. Then when the voltage comparisons trigger do an OBDII PID request for engine RPM. Obviously a started engine will show some RPM while an idle engine will not. I have to assume that this will work even for a hybrid. But, yes, I’d also love to see what the voltage profile looks like when the ICE starts in a hybrid. They don’t need a starter, the electric motor is already spinning and can kick start the gas engine. They probably use a DC/DC converter to keep the 12v battery fresh so the voltage is not likely to change a lot much of ever. But, so long as the DC/DC converter is on you aren’t going to drain the 12v battery either.

Then, there are full electric cars. They never start a gas engine so the voltage profile for the 12v battery is even stranger. In an electric car the 12v battery will rest at a certain voltage, say 12.8v but as soon as you power it up the DC/DC converter will push that voltage up past 14v very rapidly. Thereafter it is likely to settle to whatever voltage the DC/DC converter puts out and stay there as long as the car is on.

In either a hybrid (increasing common these days. In fact, I think non-hybrid vehicles will quit being produced soon) or a full electric whether a gas engine is running or not is functionally irrelevant. It means nothing at all. What really needs to be known across all three vehicle types is whether it is “running” or not. The definition of running is a bit different between the three types. There are a few things in common between them:

  1. The voltage of the 12v system will change depending on whether the car is “on” or not.
  2. There will be changes in the CAN traffic. Some vehicles have no CAN traffic at all when off for a sufficiently long time, some continue to send some traffic but far less than when they are on

I would suggest that the definition of ON for all three would be the battery going over a certain threshold. When you fire up an EV the battery jumps in voltage. When you power on a hybrid, same thing. When you start a gas engine the voltage sags then jumps up but it still makes it higher than the resting voltage very soon after starting. So, maybe a voltage threshold followed by PID queries if possible to check for standardized data that suggest the vehicle is ON (be that RPM, run time, etc).


Thanks for sharing the sketch and data collection method. Just uploaded data from similar cars (same brand, model, engine and model year) fitted with 2 different battery types: conventional Lead-Acid vs LiFePO4. Using a threshold for engine running detection would work but the voltage range in a car with a LiFePO4 battery is limited: 13.5 to 14.3V. Detecting the starter drop is good for combustion-engine-only vehicles.


vtech011, brainbri6,

Yes those vehicles would be great. One of the goals of this data collection is to find vehicles that don’t correspond with the characteristic response we’ve already seen on normal vehicles. Thanks for your help!


Thanks a lot for a really insightful response. You’re right that voltage won’t be the whole solution on its own, and in fact Josh was just mentioning doing a PID query on engine run time.

One thing we’re wondering now though is what happens with vehicles that automatically cut the engine when stopped at a light. Not sure how the CAN traffic would look during a stop-start like that, maybe you have an idea?


Thanks for getting data for Li vs. Pb chemistry batteries, there should be some interesting comparisons to make there.


I’m not entirely sure either. However, OBDII PID codes do have a code for engine RPM (0xC) so it would seem possible to periodically ask for the RPM and see if it reports as 0. If so the engine is off. There is no standard way to query for gear so you can’t know, in any platform agnostic way, whether you’re parked or driving except for trying to perhaps also query the vehicle speed. This doesn’t help to differentiate between stopping with your foot on the brake and stopping in park. But, RPM and vehicle speed are the only two standard things I could think to query that I also believe any car of any sort would support. EXCEPT, and there’s always that annoying exception - more recent electric vehicles do NOT necessarily have an OBDII port nor respond to PID codes. The Tesla Model 3 has no plug and does not respond to OBDII.

I’ve got a couple of Nissan Leafs. I’ll check to see if they do truly respond to such standard OBDII codes as RPM and vehicle speed. I’m almost positive they do.


I tried a Leaf–forget the year, it did not respond to standard OBD/UDS queries. Running Caring-Caribou on the car also gave no hidden service modes. Seems they’re using something else for the Leafs (ymmv depending on model year!)


Kind of… It does respond to UDS queries but not in a particularly standard way. I still haven’t gotten to it more recently but around a year ago I did test UDS against a Leaf. It does respond but I think it responds 0x20 higher in ID instead of 0x08 higher like OBDII specifies it should. Also, the IDs it is using for the ECUs are not standard either. They should be 0x7E0 through 0x7E7 but they aren’t. Instead the ECUs have addresses scattered all around in the ID space. I don’t remember if it responds to OBDII PID codes, perhaps not. Since OBDII was conceived as an emissions standard it isn’t really all that relevant to fully electric cars. They after all do not have gas/diesel engines. So, no O2 sensors, no crankshaft, no emissions to track. As such they rarely bother with all that much OBDII support. Traditionally they supported it somewhat.

SavvyCAN can successfully query a Leaf and get it to respond but I just haven’t done it lately. Perhaps I can try it out soon.


That makes sense why I didn’t find anything. I’ll have to retest and look for 0x20 responses.


Thanks everyone for collecting some great looking data! Here’s an update on what the responses look like so far: