[Ovmsdev] OVMS Poller module/singleton

Simon Ehlen ovms at highteq.de
Sun Jan 26 21:52:51 HKT 2025


Hi,
it is of course possible that it is due to something else. But that was the only code change I flashed.
According to the log, it dies at this point:

I (2369) v-ffe: Ford Focus Electric vehicle module
I (2369) cellular-modem-auto: Power Cycle 2000ms
I (2379) mcp2515: can2: SetPowerMode on
D (2439) mcp2515: can2: Set register (0x2b val 0x00->0x00)
D (2449) mcp2515: can2:  - read register (0x2b : 0x00)
D (2449) mcp2515: can2: Set register (0x60 val 0x00->0x64)
D (2459) mcp2515: can2:  - read register (0x60 : 0x64)
D (2459) mcp2515: can2: Set register (0x0c val 0x00->0x0c)
D (2469) mcp2515: can2:  - read register (0x0c : 0x0c)
D (2469) mcp2515: can2: Change op mode to 0x60
D (2489) mcp2515: can2:  read CANSTAT register (0x0e : 0x60)
E (2489) can: can2: intr=1 rxpkt=1 txpkt=0 errflags=0x23401c01 rxerr=0 txerr=0 rxinval=0 rxovr=0 txovr=0 txdelay=0 txfail=0 wdgreset=0 errreset=0
Guru Meditation Error: Core  1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x4008a830  PS      : 0x00060a30  A0      : 0x801aaa31  A1      : 0x3ffc4ab0
A2      : 0x00120000  A3      : 0x3ffc4af0  A4      : 0x00000024  A5      : 0x00120000
A6      : 0x000007e4  A7      : 0x000007ec  A8      : 0x00000000  A9      : 0x3ffc4a80
A10     : 0x00000000  A11     : 0x40084a7c  A12     : 0x00000003  A13     : 0x00000008
A14     : 0x00000000  A15     : 0x00000000  SAR     : 0x00000010  EXCCAUSE: 0x0000001d
EXCVADDR: 0x00120000  LBEG    : 0x4008a82c  LEND    : 0x4008a848  LCOUNT  : 0x00000001

ELF file SHA256: 5e6a07d4d02b1a79

Backtrace: 0x4008a830:0x3ffc4ab0 0x401aaa2e:0x3ffc4ac0 0x401aab8a:0x3ffc4ae0 0x401aada5:0x3ffc4b40 0x401ab1f7:0x3ffc4b90 0x401ab22e:0x3ffc4c00 0x401a3c07:0x3ffc4c20 0x401a453a:0x3ffc4c50 0x401a4618:0x3ffc4ca0 0x4011a697:0x3ffc4d20 0x4011a256:0x3ffc4d90 0x40119382:0x3ffc4dd0 0x4011979d:0x3ffc4e00 0x40119b8c:0x3ffc4e60 0x40119c11:0x3ffc4ea0

It then boots to a command prompt
E (1378) housekeeping: Auto init inhibited: too many early crashes (5)

Does that tell you anything?

Cheers,
Simon


Am 26.01.2025 um 14:05 schrieb Michael Balzer via OvmsDev:
> Simon,
>
> you need to connect via USB to set the boot partition if you cannot access the module.
>
> But… there is no way a wrong MCP2515 timing could cause this. I'd look for other potential causes.
>
> Regards,
> Michael
>
>
> Am 26.01.25 um 13:58 schrieb Simon Ehlen via OvmsDev:
>> Hi Michael,
>>
>> I tried your first suggestion, but after this change the OVMS no longer boots at all.
>>
>> cnf1=0xc3; cnf2=0xaa; cnf3=0x85;
>>
>> What is the easiest way to select the firmware on the second partition? Is there a way via the SD card or do I have to connect the OVMS with USB?
>>
>> Cheers,
>> Simon
>>
>> Am 26.01.2025 um 12:51 schrieb Michael Balzer via OvmsDev:
>>> Simon,
>>>
>>> Am 25.01.25 um 21:00 schrieb Simon Ehlen via OvmsDev:
>>>> Are adjustments/improvements also necessary at 125KBPS for CAN2/3?
>>>
>>> I've had a look at SAE J2284-1 for the 125 kbit timing, and it seems for this speed, the esp-idf, the mcp_can lib and our current driver are outside the spec.
>>>
>>> SAE recommends a sync jump width of 3 for low (nq=8) and 4 for higher resolutions, and single sampling at 62.5% (range 58.3…69.2%).
>>>
>>> The esp-idf driver would use a SJW of 3 (would better be 4 as nq=20) and single sampling at 80% (very late). The Arduino lib uses SJW=2 (too low) and triple sampling at 75% (late).
>>>
>>> Our current driver uses a SJW of 1 (much too low) and triple sampling at 56.25% (too early):
>>>     case CAN_SPEED_125KBPS:
>>>       cnf1=0x03; cnf2=0xf0; cnf3=0x86;
>>>       // BRP=3, PRSEG=1, PS1=7, PS2=7, SJW=1, BTLMODE=1, SAM=1, SOF=1, WAKFIL=0 → Sample 3x at 9/16 = 56,25%
>>>
>>> (Note: the current comment in the source is incorrect, the tq values need each to be read as +1)
>>>
>>> Possible SAE solutions for the MCP2515:
>>>
>>> a)
>>>     case CAN_SPEED_125KBPS:
>>>       // SAE J2284-1:
>>>       // BRP=3, PRSEG=3, PS1=6, PS2=6, SJW=4, BTLMODE=1, SAM=0, SOF=1, WAKFIL=0 → Sample point at 10/16 = 62.5%
>>>       cnf1=0xc3; cnf2=0xaa; cnf3=0x85;
>>> b)
>>>     case CAN_SPEED_125KBPS:
>>>       // SAE J2284-1:
>>>       // BRP=3, PRSEG=3, PS1=7, PS2=5, SJW=4, BTLMODE=1, SAM=0, SOF=1, WAKFIL=0 → Sample point at 11/16 = 68.8%
>>>       cnf1=0xc3; cnf2=0xb2; cnf3=0x84;
>>>
>>> Please try.
>>>
>>> Btw, if anyone would like to experiment: the Microchip timing calculator needs to be set to 16 MHz (that's our MCP2515 clock), and you need to add 0x80 to the cnf3 byte generated (that's the SOF flag, cannot be set in the UI).
>>>
>>> Regards,
>>> Michael
>>>
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.openvehicles.com
>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev



More information about the OvmsDev mailing list