<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Hi,<br>
<br>
Am 19.01.2025 um 12:48 schrieb Michael Balzer via OvmsDev:<br>
</div>
<blockquote type="cite"
cite="mid:86bfcd71-4def-4c31-b60a-063ef4fd7665@expeedo.de">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Regarding CAN timing, our ESP32CAN/SJA1000 configuration is mostly
according to the SAE/CiA recommendations, with one exception: we
generally enable multi (triple) sampling, regardless of the bus
speed:<br>
<br>
<font face="monospace">esp32can::InitController():<br>
[…]<br>
/* Set sampling<br>
* 1 -> triple; the bus is sampled three times; recommended
for low/medium speed buses (class A and B) where filtering
spikes on the bus line is beneficial<br>
* 0 -> single; the bus is sampled once; recommended for
high speed buses (SAE class C)*/<br>
MODULE_ESP32CAN->BTR1.B.SAM=0x1;</font><br>
<br>
SAE defines "high speed" (class C) as speeds >= 125 kbit/s. See
SAE J2284-1, -2 & -3, section 6.10.8 Data Sample Mode: "The
data sampling shall always be set to single sample mode."<br>
<br>
If setting SAM=0 for 500 kbit/s, our timing setup is exactly as
recommended by two tested SJA1000 timing calculators on the web.<br>
<br>
Maybe we should give that a try? I.e.<br>
<br>
<font face="monospace"> MODULE_ESP32CAN->BTR1.B.SAM =
(MyESP32can->m_speed < CAN_SPEED_125KBPS) ? 1 : 0;</font><br>
<br>
Simon, can you try if that helps?<br>
</blockquote>
<br>
I have adjusted the corresponding line.<br>
I will check tomorrow whether this has an effect on the active mode.<br>
I tried your recommendation and set the
CONFIG_OVMS_VEHICLE_CAN_RX_QUEUE_SIZE to both 200 and 400. I have
not yet checked whether the bus also crashes in active mode.
However, I can see in listening mode that when I abort a running
loading process (there are currently no overflows), many overflow
messages are received.<br>
<br>
<blockquote type="cite"
cite="mid:86bfcd71-4def-4c31-b60a-063ef4fd7665@expeedo.de"> But as
you also use can2, I wouldn't rule out a timing issue with the
MCP2515 configuration. At which speed do you have can2, and did
you have some indication from the vehicle error codes regarding a
specific bus?<br>
</blockquote>
<div
style="color: #d4d4d4;background-color: #1e1e1e;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
style="color: #dcdcaa;">RegisterCanBus</span><span
style="color: #d4d4d4;">(</span><span style="color: #b5cea8;">1</span><span
style="color: #d4d4d4;">, CAN_MODE_LISTEN, CAN_SPEED_500KBPS);</span></div><div><span
style="color: #dcdcaa;">RegisterCanBus</span><span
style="color: #d4d4d4;">(</span><span style="color: #b5cea8;">2</span><span
style="color: #d4d4d4;">, CAN_MODE_LISTEN, CAN_SPEED_125KBPS);
</span></div></div>
I do not receive any feedback from the car as to which bus is
affected, unfortunately no error code is saved for the incident. Do
you have the option of specifying the affected bus in the overflow
logging?<br>
<br>
Cheers,<br>
Simon<br>
<blockquote type="cite"
cite="mid:86bfcd71-4def-4c31-b60a-063ef4fd7665@expeedo.de"> <br>
<br>
<div class="moz-cite-prefix">Am 17.01.25 um 17:49 schrieb Michael
Balzer via OvmsDev:<br>
</div>
<blockquote type="cite"
cite="mid:6b478377-d2f1-4e41-8f2d-bbb1bb1c5e37@expeedo.de">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
OK, I've got a new idea: CAN timing.<br>
<br>
Comparing our esp32can bit timing to the esp-idf driver's, there
seem to be some differences:<br>
<a class="moz-txt-link-freetext"
href="https://github.com/espressif/esp-idf/blob/master/components/hal/include/hal/twai_types_deprecated.h#L75"
moz-do-not-send="true">https://github.com/espressif/esp-idf/blob/master/components/hal/include/hal/twai_types_deprecated.h#L75</a><br>
<br>
Transceivers are normally tolerant to small timing offsets.
Maybe being off a little bit has no effect under normal
conditions, but it has when the transceiver has to cope with a
filled RX queue. That could be causing the transceiver to slide
just out of sync. If the timing gets garbled, the transceiver
would signal errors in the packets to the bus, possibly so many
the vehicle ECUs decide to raise an error condition.<br>
<br>
Is that plausible?<br>
<br>
On why the new poller could be causing this (in combination with
too slow processing by the vehicle): as mentioned, the standard
CAN listener mechanism doesn't care about queue overflows. The
poller does. `OvmsPollers::Queue_PollerFrame()` does a log call
when Tx/Rx tracing is enabled, that could even block, but
tracing is optional and only meant for debugging. Not optional
is the overflow counting using an atomic uint32.<br>
<br>
The atomic types are said to be fast, but I never checked their
actual implementation on the ESP32. Maybe they can block as
well?<br>
<br>
@Simon: it would be an option to try commenting out the overflow
counting, to see if that's causing the issue.<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div class="moz-cite-prefix">Am 17.01.25 um 15:37 schrieb Chris
Box via OvmsDev:<br>
</div>
<blockquote type="cite"
cite="mid:010b019474b30c0d-45366923-5cdc-4a4b-a59d-cedf24ac5d5d-000000@eu-west-2.amazonses.com">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
<p>Yes, I can confirm I've had one experience of the Leaf
switching to Neutral while driving, with a yellow warning
symbol on the dash. It refused to reselect Drive until I had
switched the car off and back on. Derek wasn't so lucky and
he need to clear fault codes before the car would work.</p>
<p>On returning home, I found OVMS was not accessible over a
network. I didn't try a USB cable. Unplugging and
reinserting the OBD cable caused OVMS to rejoin Wi-Fi.
However the SD logs showed nothing from the time of the
event. CAN writes are enabled, so it can perform SOC
limiting.</p>
<p>My car has been using this firmware since 21st November,
based on the git master of that day. As a relatively new
user of OVMS (only since October) I don't have much
experience of older firmware.</p>
<p>Perhaps a safeguard should be implemented before releasing
a new stable firmware that will be automatically downloaded
by Leaf owners. But I don't have the expertise to know what
that safeguard should be. Derek's suggestion of 'only CAN
write when parked' appears to be a good idea.</p>
<p>Chris</p>
<p><br>
</p>
<p id="reply-intro">On 2025-01-15 18:18, Derek Caudwell via
OvmsDev wrote:</p>
<blockquote type="cite"
style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<div id="replybody1">
<div dir="auto">Since the following email I have high
confidence the issue on the Leaf is related/caused by
the poller as there has been no further occurrence and
Chris has also experienced the car going to neutral on
the new poller firmware.
<div dir="auto"><br>
<div dir="auto">....</div>
<div dir="auto">I haven't ruled out it being a fault
with my car yet. Shortly after it faulted the car
was run into so has been off the road for sometime,
my first step was to replace 12V battery. The ovms
unit is now unplugged and if it does not fault over
the next month while driving I'll be reasonably
confident it's ovms related.</div>
<div dir="auto"> </div>
<div dir="auto">Not sure which firmware version the
poller updates were included in but it was only
after upgrading to it that the errors occurred
(which could be coincidental however it has faulted
twice more both on version 3.3.004-141-gf729d82c).
For periods where I reverted to 3.3.003 it was fine.</div>
<div dir="auto"> </div>
<div dir="auto">It might be useful to have an extra
option on the enable can write to only enable it
when the car is parked/charging.</div>
</div>
</div>
<br>
<div class="v1gmail_quote v1gmail_quote_container"> </div>
</div>
</blockquote>
<p><br>
</p>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
href="mailto:OvmsDev@lists.openvehicles.com"
moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext"
href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
href="mailto:OvmsDev@lists.openvehicles.com"
moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext"
href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br>
</body>
</html>