[Ovmsdev] OVMS Poller module/singleton

Michael Balzer dexter at expeedo.de
Sun Jan 19 19:48:47 HKT 2025


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:

esp32can::InitController():
[…]
   /* Set sampling
    * 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
    * 0 -> single; the bus is sampled once; recommended for high speed 
buses (SAE class C)*/
   MODULE_ESP32CAN->BTR1.B.SAM=0x1;

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."

If setting SAM=0 for 500 kbit/s, our timing setup is exactly as 
recommended by two tested SJA1000 timing calculators on the web.

Maybe we should give that a try? I.e.

   MODULE_ESP32CAN->BTR1.B.SAM = (MyESP32can->m_speed < 
CAN_SPEED_125KBPS) ? 1 : 0;

Simon, can you try if that helps?

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?

Regards,
Michael


Am 17.01.25 um 17:49 schrieb Michael Balzer via OvmsDev:
> OK, I've got a new idea: CAN timing.
>
> Comparing our esp32can bit timing to the esp-idf driver's, there seem 
> to be some differences:
> https://github.com/espressif/esp-idf/blob/master/components/hal/include/hal/twai_types_deprecated.h#L75
>
> 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.
>
> Is that plausible?
>
> 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.
>
> The atomic types are said to be fast, but I never checked their actual 
> implementation on the ESP32. Maybe they can block as well?
>
> @Simon: it would be an option to try commenting out the overflow 
> counting, to see if that's causing the issue.
>
> Regards,
> Michael
>
>
> Am 17.01.25 um 15:37 schrieb Chris Box via OvmsDev:
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> Chris
>>
>>
>> On 2025-01-15 18:18, Derek Caudwell via OvmsDev wrote:
>>
>>> 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.
>>>
>>> ....
>>> 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.
>>> 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.
>>> It might be useful to have an extra option on the enable can write 
>>> to only enable it when the car is parked/charging.
>>>
>>
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
> -- 
> Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
> Fon 02330 9104094 * Handy 0176 20698926
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev

-- 
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20250119/5dd75b8f/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 203 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20250119/5dd75b8f/attachment.sig>


More information about the OvmsDev mailing list