-
-
Notifications
You must be signed in to change notification settings - Fork 71
Board crashing after connection when attempting to add new hybrid focused PIDs #10
Description
Hi! Hope I can get some direction and pointers. I've exhausted the debugging options I can some up with on this. My Arduino/ESP32 knowledge is fairly limited.
But I'm trying to modify this and add some hybrid specific PIDs from my own Ford vehicle. The stock code works fine and the various gauges show data where available. However once I add the new PID (just doing one for now to test) once the connection is established and the first display page is rendered it crashes.
Here's the manual queries I ran on my OBD adapter:
>001100BB
41 0B 63
>00110055
41 05 34
41 05 34
41 05 34
>00110044
41 04 00
41 04 00
41 04 00
>001155cc
NO DATA
>222211667744
NO DATA
>222211ee11cc
62 1E 1C 00 C3
62 1E 1C 00 F8
>222244880011
62 48 01 BA EB
>2222dddd0044
62 DD 04 FF
62 DD 04 38
>2222448800bb
62 48 0B 00 00
62 48 0B 00 00
>222244884411
62 48 41 0F CD
Ignore the duplicate characters. I misconfigured my minicom instance. But PID 224801 is the one I tested with in the sketch. PIDs 22480B, 22DD04, and 224841 are additional ones I want to use but haven't put into the sketch yet. I'm testing with the one for now.
Here's the serial monitor log:
<< Va&Cob OBDII Gauge >>
by Ratthanin W. BUILD -> Oct 20 2024 - 15:56:55
Error: File not found!
Show System: 0
Temp Offset: -50
Bluetooth..OK
Connecting to OBDII - 00:1d:a5:00:02:40
Connected Successfully!
ATZ
ELM327 v1.5
Display layout -> 0
010B
41 0B 63
010C
41 0C 00 00
41 0C 00 00
41 0C 00 00
Guru Meditation Error: Core 1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x40092728 PS : 0x00060a30 A0 : 0x800ef26f A1 : 0x3ffd08a0
A2 : 0xae5b725a A3 : 0x3ffd098c A4 : 0x00000003 A5 : 0x0000ff00
A6 : 0x00ff0000 A7 : 0xff000000 A8 : 0x00000000 A9 : 0xae5b725a
A10 : 0x00000030 A11 : 0x00000000 A12 : 0x00000001 A13 : 0x0000ff00
A14 : 0x00ff0000 A15 : 0xff000000 SAR : 0x00000015 EXCCAUSE: 0x0000001d
EXCVADDR: 0xae5b725a LBEG : 0x4009273c LEND : 0x40092741 LCOUNT : 0x00000000
Backtrace: 0x40092725:0x3ffd08a0 0x400ef26c:0x3ffd08c0 0x400ef38a:0x3ffd08e0 0x400d54ca:0x3ffd0900 0x400dae52:0x3ffd09c0 0x400f24dd:0x3ffd0a40
Ran an exception decoder:
Backtrace: 0x40092725:0x3ffd08a0 0x400ef26c:0x3ffd08c0 0x400ef38a:0x3ffd08e0 0x400d54ca:0x3ffd0900 0x400dae52:0x3ffd09c0 0x400f24dd:0x3ffd0a40
Decoding stack results
0x40092725: memmove at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/newlib/newlib/libc/string/memmove.c:75
0x400ef26c: String::move(String&) at /home/cr08/.arduino15/packages/esp32/hardware/esp32/2.0.17/cores/esp32/WString.cpp:237
0x400ef38a: String::operator=(String&&) at /home/cr08/.arduino15/packages/esp32/hardware/esp32/2.0.17/cores/esp32/WString.cpp:277
0x400d54ca: getAB(String) at /home/cr08/Software/ESP32-OBD2-Gauge_cr08/sketch/VaAndCobOBD2Gauge/meter.h:396
0x400dae52: loop() at /home/cr08/Software/ESP32-OBD2-Gauge_cr08/sketch/VaAndCobOBD2Gauge/VaAndCobOBD2Gauge.ino:480
0x400f24dd: loopTask(void*) at /home/cr08/.arduino15/packages/esp32/hardware/esp32/2.0.17/cores/esp32/main.cpp:50
Since I have my own fork for this with some added lines, here should be direct links to the lines being referenced:
https://github.com/cr08/ESP32-OBD2-Gauge/blob/cd845ff29f4046cf22e46fbfb5648ac8caeb7632/sketch/VaAndCobOBD2Gauge/VaAndCobOBD2Gauge.ino#L480
Added the PID as an extra line which should come up as PID number 7 and that's been added in display 0:
https://github.com/cr08/ESP32-OBD2-Gauge/blob/cd845ff29f4046cf22e46fbfb5648ac8caeb7632/sketch/VaAndCobOBD2Gauge/VaAndCobOBD2Gauge.ino#L101C3-L101C78
And also an extra formula line for it:
https://github.com/cr08/ESP32-OBD2-Gauge/blob/cd845ff29f4046cf22e46fbfb5648ac8caeb7632/sketch/VaAndCobOBD2Gauge/meter.h#L473
Probably a lot of info but wanted to make sure I provide as much as I can and what I've ran through trying to debug it myself. Any help would be greatly appreciated in trying to figure this out. Seems I'm so close to getting it going.
Thanks!