I'm not sure whether to post this here or in the "12V battery" thread... I was actually reading some of the "flat battery" threads over at speakev. Anyway, I went to revisit the Jeju PID for "aux battery current" which didn't seem to work for me as given. The file has "Aux Current,Aux Batt CURR,2102,(SIGNED(W)*256+V)/1000,-100,100,A,7E2" or the like. It's mostly right for the Kona, at least the ID and PID and bytes are okay, but the math is apparently wrong. Looking at the raw 16-bit value from W and V seems to center around 32768, with deviations above when the car is in ON and below when it comes to RUN state. I hooked up the ol' current-clamp so I could correlate values to the reality of what's going through the wires. Semi-long story short, it seems that this works well: (32768-((W*256)+V))/100 showing discharge as positive, same as with the traction pack. Adapt as needed to your own PID definitions. Note that it's just current in/out of the 12V battery itself, and doesn't represent running 12V loads of the car once the DC/DC comes on. It stayed fairly negative on a drive this evening but slowly worked its way back toward 0, holding at about -2 amps by the time I got home. That's not enough to run headlights, butt-burner, gauges, etc ... but that's what the DC/DC was floating it at, still around 14.9 volts. I guess it wasn't long enough to reach that state where it drops to 13.6V during driving. The original equation must have been assuming milliamps centered around 0 or something. This doesn't seem to work that way. It makes sense, as most current sensors power from 5V and swing output either side of 2.5. The question now is, where *is* the 12V current sensor, or is it a derived value from other hardware?? I dont see any hint of one in the schematics. _H*
If you are asking the physical location of the 12 V current sensor, I believe it is located attached to the negative battery post as shown in this diagram: https://www.hkona.com/battery_sensor_description_and_operation-690.html I know this is the gas version but I believe the sensor is the same.
So that little doohickey *is* a current shunt after all! I suppose I should have guessed, given the different metals little 2-wire connector coming off it. It seems to be pretty accurate, too, against my clamp-probe. *Absolutely* no hint of it on the schematics; the bit on the positive terminal is undoubtedly a remote voltage sense. [Prius has one too, and has to run the length of the car] _H*
I edited the 12V battery current PID and did some 0.1 sec logging on a 5 min drive to the pub. One worry is that all the battery current readings have the values x.32 (right of the decimal point) leading to the stair-steps in the graph. (The column to the right of Aux batt curr is just the negative of each value)
I started thinking that maybe it's supposed to be "+X" instead, since it comes after W and a lot of other 16-bit values from the same ECU / id are presented as high,,low in the alpha order. It almost certainly isn't (V,,W) as W tracks rough current deltas reasonably well and V jumps all over the place. I could easily see different engineering groups for HV vs. 12V systems having their own preferred endian-ness for reporting and submitting their arbitrary parameter specs to whatever collective finally put it all into the EPCU code. We may have a "what were they thinking" reverse-engineering type of problem here... OBDlink is not your friendliest CAN debugging tool, but it was easy enough to make three simple "gauges" to just read V, W, X as raw (decimal) values, and play with various loads [lights, fan, butt-blasters]. I got these example combinations with higher and higher currents drawn, all in ON-mode discharge as it's easier to control: W V value 124 156 31900 123 212 31700 122 168 31400 122 68 31300 121 224 31200 121 124 31100 120 180 30900 119 236 30700 X just sat there showing "69" the entire time, so it's evidently not in the picture despite my thinking that the value might be (W,,X) instead. But Jeju has that as 12V SOC [directly in decimal percentage, yet], so I wouldn't expect it to move much. It's clear that the combined value is stair-stepping by decimal hundreds when taken as a 16-bit value. The V figure sat quite steadily at the observed values, and didn't "bobble" around much at all. I would expect it to be far more variable, with minor changes such as a different seat-heater level or fan speed. Nope. Rigidly granular. My "/100" interpretation would also only deliver a maximum range of +/- 32.7 amps, and we know the 12V system is capable of much more. But reading this way *was* matching my amp-clamp quite closely in realtime, so while it's useful to have as is I'd rather figure out WTF is really going on here. I should repeat this table with the amp-clamp in, but it's dark and cold out at the mo'. Given that the SOC reports in decimal, maybe this is all about W times some factor centered around 128, only reporting in 8 bits, and the V byte is something else. A simplified (128-W) or the like wouldn't match my amp-clamp very well; maybe this too is a percentage of some known max/min value that the shunt can measure? Anyone know how to contact the mysterious Jeju?? _H*
I got that bit about 327xx/100 limited to 32 amps wrong; it would be more like +/- 327 amps, wouldn't it. I did a little more measuring; the shunt seems to develop about 1 millivolt / 10 amps, so it's pretty wide range. Changing the constant in the equation to 32700 seems to still match reality, and then gives integer amp values for which we can knock off any decimal places. For this we don't really need any more granularity than 1 amp, especially when you can't use OBD2 to measure currents when the car is powered off. _H*
Yes, and now that it seems to work that is an unfortunate limitation regarding using this to diagnose the battery issue. I did some quick tests to confirm as you've mentioned that the data only flows when in RUN mode or when charging. I tried two differing OBD dongles, both behaved the same. Here, I've put the car in RUN mode to initiate TP, powered off, then allowed it to charge at 230V 7 amps for a few minutes. The 14.5 V is still a worry regarding this conventional-appearing starter battery. Just for an alternative view, here's a video from a Tesla guy on this subject with some interesting contrasts.
12V battery current aside, I went after a slightly different aspect today. With the current shunt right on tne battery, that's not an indication of how much overall 12V current is being sent to tne car, once we come up into full RUN mode. Aux battery current eventually gets down to an amp or less of charge. What I wanted was the proper PID for low-voltage DC converter current, feeding everything. There are a couple of possibly-theoretical PIDs for the Niro or Soul, but they seemed to be wrong. I took another look at Jeju's research spreadsheet. In the "VCU" tab under PID 2102, we see "Aux battery curr" filled in with some sampled values. Given the foregoing discussion, the resultant value shown indicates that the battery is discharging, i.e. the car is in ON mode and the LDC isn't running at all. There are nearby pairs of bytes that are 0. I made the assumption that LDC current would never be negative, and could thus be zero-based rather than 327xx midpoint-based. I also made the assumption that since this all talks about many parameters of the VCU or PCU in general, the group concerned with the LDC might all be contained in this small block. I fiddled my "raw bytes" PIDs to watch P and Q, confirmed that they're 00 00 in ON mode, and went to RUN. The two parameters gratifyingly changed as the 12V rail voltage went up. Q was a modest positive value, albeit somewhat variable; P was all over the place. Aha: probably high,,low ... Long afternoon short: I think I have a working PID for LDC current. ID 7E2, mode/pid 2102, math ((Q*256)+P)/100 ... same little-endian methodology, similar reduction from 16-bit. I managed to get my small current probe around the big LDC wire near the relay box. Problem is, current draw is highly variable -- I watched it on a scope, it has somewhat periodic waveforms varying by several amps sometimes. The scope's averaging function helped a little, but I still wasn't sure. Can someone with a bigger current clamp get it around the main LDC wire coming off the PCU, it's on the passenger side and the output fitting is black plastic with a red "+" on it? Bang this PID into your favored OBD2 tool and run different loads ... rear defrost, fans/lights, butt-burners, the non-driver power windows are the big ones. See if I'm actually in the right ballpark WRT measured current here. Different refresh rates might give varying results. RUN with nothing else turned on seemed to sit around 9 -10 amps; with bloody everything in play I could drive it to upwards of 100, and those wires were slightly warm. I didn't look at ab, ac, or anything up from there yet. _H*
So here's the present state of my "dashboard", based on all of the foregoing halfassery ... Keeping it running takes a lot of phone battery, because it's polling for a lot of stuff. But I think I've got the important diagnostic basics, which are definitely worth checking in on here and there. Now it's fun to correlate some of this to what I see in the "electricity use" screen, and things match up pretty well, math-wise. This is just after charging to 90% this morning. Ambient temp around 30F, but the pack has clearly retained a bit of heat from when charging ended sometime in the wee hours. _H*
That's awesome, hobbit, and even more awesome that you know what it all means. I see you're displaying what I think is battery temp of module 3. It's odd that there is no PID for calculating the average of all the modules. Maybe one of the OBD experts here could write one?
Ok, armed with hobbit's LDC current PID, logged a drive, 25 min there, 29 back, 5 second logging interval. Assuming the voltage PID I'm using is accurate (post #67 image), I'm relieved that the battery voltage is mostly at 12.7 V which negates my fear of overcharging. Peaks are at 14.6 V typically, average is 13.0 V. Regarding 12V battery current, putting a trendline on that puts the average close to zero ... as you might expect. So, I think the aux battery is doing exactly what we expected it to do, provide a bootstrap for starting and acting as a capacitor on the LDC. Regarding the curves, there clearly is nothing that can be read into the jiggles. Aside from the sampling effects of 5 second logging, we know the current draw is highly variable, with every touch of the steering wheel causing significant current in and out of the EPS. It's the averages that count, and those seem to indicate that the aux battery is not being mistreated while driving.
There is a PID for this, in "005_Kona&Niro_EV_Extra_gauges.csv", but it doesn't need an expert, just a simple equation of the form (a+b+c+d)/4 Hence, we have the PID: 004_CALC Average Battery Module Temperature,Batt AvgT,0x220101,(val{000_Battery Module 01 Temperature}+val{000_Battery Module 02 Temperature}+val{000_Battery Module 03 Temperature}+val{000_Battery Module 04 Temperature})/4.0,-40,80,C,7E4 where the 4 Battery Module PIDs 01-04 are found in: "003_Niro_EV_BMS.csv"
At the time of plunking in battery temps I was more interested in heat, so watching the BMS "max temp" seemed like the best idea. I threw in temp 3 just to see a single sensor too. Obviously I'm not using the Jeju CSV names and labels, I'm entering my own into "obdlink". I need to watch all the LDC stuff more on a "real drive", as I never went to the 13.x volt state while just sitting in the driveway. For voltage I just use the one that the OBD2 widget directly reports at the DLC. _H*
This graph is while trickle charging the HV battery at 1.6 kW, car is otherwise "off". 27 minutes duration with quarter-second logging. The 12V aux battery remains at a constant 14.7 V despite aux battery current (charging) dropping to 1 amp. I would imagine that the LDC must remain "on" during all HV charging to support the OBC and HV contactor(s). I'll have to add the dongle voltage next time to validate the aux voltage PID I'm using.
Here's a graph of aux battery parameters during "run" mode while parked and then charging at 1.6kW. Logging is at 0.25 sec. Main points are: 1. In run mode the aux battery voltage is around 14.8 V and it's charging at a slowly decreasing current, 15 down to 8 amps during the several minutes. 2. Car turned off and 1.6 kW charging initiated. Aux battery continues charging at the same voltage and a similar current profile. 3. After some further minutes when aux charging current drops to about 4 amps the aux battery voltage drops decreases to 13.0 and aux charging current goes to zero. 4. The glitch at the end is when I open the door to change the logging rate. HV charge rate goes to 0.5 kW AC input for a few seconds, as we all know. Questions: How can the aux battery current be zero (or specifically under 1 amp) in the later segment? I have to wonder if it is disconnected from the system or is the LDC clever enough to manage this? Perhaps the current shunt at the negative terminal is used to control LDC output? I'm not sure what causes the step changes in LDC current in the last 2/3rds.
I've added one more picture to my "auxbat" page, to wit: Scoping LDC current, showing a lot of variation at ~100 Hz or more. So our OBD readings are going to get messed up by a simple matter of sample rate. Remembering those old buzzer-style voltage regulators... _H*
I finally got around to changing this pid, and I like the new equation in my Niro EV. However, it only seems to be in whole integers of amps, so it hangs around at 0 most of the time. Is it possible to add a significant figure (or two)? Sent from my Pixel 3a using Tapatalk
Long press on the dashboard gauge for Item Options menu/Display Configuration/Number of decimal places