MCP2515 + TJA1050: Receives frames only when RH02 sniffer is active on BUS

Hello folk, I'm newbie on CAN Bus, maybe my problem is trivial but I finished my first layer tests and trials, that's why I'm looking for help.

The situation is simple:
I started using RH02 CanAble.io CAN2USB sniffer to check the frames.
I can receive all the frames generated by a BMS when Cangaroo is set in Normal mode 250kpbs.
Frames are both Standard and Extended reported on the image below.

I moved to the Setup : ESP8266 + MCP2515+TJA1050
Libs tested: MCP_CAN_lib-master or ESP8266-CAN-main ( both give the same result )

All the settings are checked - 120ohm termination, MCP_8Mhz - 250KBps - SPI 8 or 10Mhz - all is ok
Why I can sure :
1- no error init messages from the libs - I can set/read all the MCP2515 registers
2- when RH02 CanAble.io CAN to USB is connected to the Can Bus AND Cangaroo is active in Normal Mode .. also ESP is tracing all the frames

The problem is that, ESP can receive CAN traces only when on the same bus I have RH02 receiving in Normal mode.
In this case I can monitor the Interrupt-low from MCP2515 at every frame.
Whithout RH02 in Normal mode - no Interrupt low is generated .

When Setting RH02 in "Listening only mode" - Cangaroo receives only one Standard frame: 0x2F4

When ESP+MCP2515 is setup in "Listening Only mode" I receive exactly the same frame:
Standard ID: 0x2F4 DLC: 8 Data: 0x17 0x01 0xA0 0x0F 0x27 0x00 0x00 0x00

When setting both Cangaroo and ESP+MCP2515 to Normal mode, both the setup are receiving all the frames:

From Arduino console :
Extended ID: 0x18F128F4 DLC: 8 Data: 0x0B 0x00 0x1E 0x00 0x0D 0x00 0x00 0x00
Extended ID: 0x18F328F4 DLC: 8 Data: 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Extended ID: 0x18F428F4 DLC: 8 Data: 0xC0 0x6A 0x13 0x00 0x00 0x00 0x64 0x00
Standard ID: 0x7F4 DLC: 8 Data: 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00
Standard ID: 0x2F4 DLC: 8 Data: 0x17 0x01 0xA0 0x0F 0x27 0x00 0x00 0x00
Standard ID: 0x4F4 DLC: 8 Data: 0xD1 0x0C 0x03 0x39 0x0D 0x08 0x00 0x00

My Idea is that RH02 is generating ACK on the BUS that the bundle ESP8266+MCP2515 is not generating even if I'm sure that MCP2515 is set in Normal Mode.

I'm looking only for a suggestion where to look into to try to debug this odd behavior.

Thanks for everybody will be able to help.

My guess is that the BMS is stuck in a power saving sleep mode because it doesn’t see enough activity on the bus.

Try sending some random messages from the ESP and then listen for messages in return.

Alternatively if you don’t have an oscilloscope then buy one and look for the suspected missing ACK bit.

Thanks mikb55,

BMS is always active and sends frames over CAN continuosly - this I have verified via oscilloscope monitorning differential CANH-CANL .
What I don't have is a CAN protocol analyzer to be sure about my missing dominant ACK hipotesys.
Again - if I set ESP+MCP2515 in "Listening mode" I can receive only one Standard frame sent periodically:
Standard ID: 0x2F4 DLC: 8 Data: 0x17 0x01 0xA0 0x0F 0x27 0x00 0x00 0x00
That is exactly what the Can sniffer receives when set on the same Listening mode.

So in short, BMS is not sleeping - I have no way to verify missing dominant ACK.

But let's suppose the problem is around ACKs, what should I have to set on MCP2515 to try to fix ?

Welcome!

Post an annotated schematic showing how you wired this project. Show all connections, power sources, grounds etc. Along with that post the code and links to technical information on the hardware devices.

You can get a cheap logic analyzer for not to many $$$