Hyundai Ioniq - Battery level - timing for Conditioning

I have used EVnotify before. Unfortunately only the charge status was read with EVnotify, so I changed to Torque Pro.
I also used a cheap ELM 327 adaptor. I have noticed with the adapter that the battery was draining slowly, i.e. after about 2 days the relatively small 12V battery was empty.

1 Like

I buy new Hyundai Kona ev
I want do same thing as you.
Remote contrôle the air con and check batterie status.
Can we do it ?

Hi Remy,

To my knowledge of the Ioniq, which I assume will be very similar for the Kona, one can only read the status from various controllers like the BMS and the motor controller. I have not heard of any successful attempts to control things yet.

I am hoping that as the community of DIY users grows, we will be able to figure these things out.



Hi guys

Our main problem right now is that the autopi detects the engine running when the rpm is above 0 - which works great on a non EV car, but for hybrids and EV’s we need to figure out a better way to know when the ignition is on.

We may need to do something advanced, but it may also be that we just need to have the autopi request some other OBD pid, or something like that.

Pinging @Nejc_Koncan @Daniel_Senic @Mikael_Madsen
Do you guys know if your vehicles have something similar to RPM, or some other value that can be used to know when the ignition is on?

Thanks in advance :slight_smile:

Best regards

1 Like

Hi @Malte :slight_smile:

All EVs have a “ready” signal light on dash do you could either use that or there must be an active PID when the high-voltage relays turn on. IMHO a better option would be to somehow find the PID that is active when car is in state ready (green car icon on dashboard is on).

I would love to help you guys with this somehow, if you can point me in the right direction :slight_smile:


Hi Malte,

What I have noticed when experimenting with the AutoPi is that the car does not respond to ANY queries while the car is off.

Now, I have not done much snooping around, so I may be wrong, and some controller in the car will respond to an OBD query even when the rest of them are off.
I have only queried 7E4, 7E2 and a few others, and found that none responded while the car was off.
Take a look at this discussion for some info.

But when the car is on, one could query 7E4#022101 and look at the last response sent (the one beginning with #28). It contains data relevant to drive motor speed (first 4 bytes), but I do not know how that data is presented (the formula required to get the actual motor data).

I have read somewhere that the CAN bus on the Ioniq is quiet and that controllers only transmit something when queried. Perhaps they use a different bus for inter-controller communication during normal operation, and the ODB connector only provides diagnostic interaction which is typically a respond-to-a-query type of communication.

Hope this helps in some way…


1 Like

Here are PIDs that work… maybe this can help?

1 Like

Hi Daniel,

Yeah, that is what I was using.


Hi @Malte,

are there any news regarding Ioniq EV? @Daniel_Senic and I were thinking of buying AutoPi at least to monitor BMS data (state of charge, battery temperatures and such).
Can you now get any data from it yet or no? If no, I’d be happy to help you guys with this.

Thanks in advance and I wish you all a great 2019 :slight_smile:

@romihs sorry for stalking you on FB (see message requests), I see you’re also Slovenian so I wanted to say hi :slight_smile:

1 Like

No need (i think). At least for Kona, and i suspect other EVs might be the same, the main battery SOC and possibly current and voltage PIDs, are only available when the car is in the on state or the charge state. Since you need the Autopi precisely in those states as well, that matches the requirement pretty well.

1 Like

Good point. So AutoPi should turn on when 12 V battery voltage goes up and should turn off when it can’t read any PIDs anymore. OBD2 port goes silent after car is turned off or stopped charging.
@Malte would that help you?

I meant - use main battery PIDs, not aux (12V) battery, for everything.

I’ve gotten very unreliable results with Navdy, which uses aux battery voltage to detect power-on and power-off. It used to detect power-on in original firmware, so i guess there is some kind of a voltage spike when powering on. But it never detected power-off. Also, after trying a few hacked firmwares, even power-on detection via 12V battery voltage doesn’t work anymore.

Additionally, Hyundai EVs also recharge the 12V battery from the main battery occasionally, when the car is off, which will cause the voltage to go up, and needlessly trigger autopi to turn on.

So, IMO, detecting whether there’s a PID available/readable for main battery SOC should do the trick. I’m planning on playing around with Torque a bit this weekend and will report what i find.

1 Like

Detecting PIDs means that Raspberry needs to be alive. Detecting 12 V battery changes can be done with small external components that don’t draw nearly as much current as Raspberry.
Yes, it’s true, Hyundai cars have Battery Saver + option to periodically recharge the small battery. That would just turn on Raspberry. Since it wouldn’t get any PIDs back (probably?) it would turn off after a specified time. Raspberry should be active for let’s say maximum 5 minutes after no PIDs are available anymore.
Would that work?

1 Like

Good point re: not being able to read PIDs if raspberry isn’t alive.
Yeah, seems like that should work.

Although, like i’ve said, i haven’t had much luck with 12V voltage detection on a Navdy recently. It refuses to power on with the car, no matter what. This used to work before, but sporadically. No idea what’s happening to the voltage.

I’ll need to hook up a multimeter and log the min/max values while turning it on/off, i guess…

PS: we’re neighbours, sorta (i’m in Croatia).

Okay, so quick test with a generic ELM clone obd2 adapter…

The aux battery voltage is 13.0-13.2V when off, and 14.2V when on, so at least we know that works as expected (odd that Navdy doesn’t detect it consistently).

After turning the car off, the main battery SOC and other stats are returned for about 15-30 more seconds, then stop responding altogether.

Sometimes the aux battery PIDs continue to be reported, and sometimes the OBD2 adapter errors out after that and stops reporting anything (the ECU shuts down?)

The bottom line seems to be - your proposed strategy should work perfectly, as long as the voltage threshold for the aux battery is set so it triggers above, say, 13.5V.

The tests were with the aux battery at 98% SOC, btw, so 13.5V should be enough of a margin.

Zdravo :smiley: (it means Hi)

If you’re actually reading PIDs for 12 V battery then it’s (at least in my case) the same as other PIDs. Car will respond for a minute or so after powering off or finished charging. If you’re relying on battery voltage reading from ELM itself, the ELM can read battery level even if car doesn’t respond at all. The chip has internal voltage reading option (if you send command “RV” to ELM directly, you will get voltage reading).
For AutoPi you can actually set the limits and time when it will deem that car has turned on. I have that set at voltage change of +0,2V for at least 1 second, the AutoPi will turn on.

Pozdravljeni! :slight_smile:

Yeah, i was reading the aux voltage PID. The interesting thing is, it will stay around for a while longer than other PIDs (until the EMU stops responding completely), whereas the main battery PIDs go away almost immediately after turning the car off.

That’s neat that you can set up the delta as opposed to a threshold. Ordered my autopi yesterday, so that’s good to know. The Navdy, unfortunately, works off of voltage thresholds, so its detection is a bit less robust.

I still need to measure the actual voltages on the OBD with a multimeter and see how they correspond to the aux battery PID and what the ELM reports/measures.

You guys are spot on.

The device turns on based on voltage changes, so as @Nejc_Koncan says, it will turn on after a voltage change of +0,2V for a configurable amount of time.
When it wakes up, it will start to listen for data, and if no available BUS is found, it will power down after the configurable inactivity delay, the default is 5 minutes.

So depending on the car, if it charges the battery or otherwise does something that draws enough power to reach the delta change, the autopi will turn on, but then turn off after a short while.

We are working on making the event reactors configurable, this means that it will be possible to change the way the device lifecycle works, so that you EV guys can ignore the RPM PID and instead monitor something else.

So whatever you figure out regarding voltages and voltage changes, right now it will help you configure the device to match the specific models that you have, but later when the above changes are implemented it will very likely assist you (and us) in choosing the right lifecycle configurations.

Best regards


Okay, just did some voltage measurements on the 12V line of the OBD itself.

Turns out the car is too smart for its own good, and never really outputs the usual charging voltage on the 12V line, but instead, supplies a voltage regulated(ish) 12V. I didn’t use a multimeter, and instead used Navdy’s supply voltage logging, which uses an ADC on the OBD chip itself to measure the voltage on the 12V OBD pin. It might not be super accurate, but it’s enough to give you an idea of what’s happening.

With the car off, the voltage is pretty consistently 12.4V, but occasionally jumps to 12.5V. This might just be noise in the ADC.

With the car on, the voltage goes to 12.7-12.8V.

So clearly enough to get triggered by the 0.2V delta (barely!), but still kinda unusual :slight_smile:

Interesting. My car makes the spikes that are quite high. Up to 14,73 V when charging the aux battery and it drops to about 12,14 V when