Yes, your loopback code sent a message and successfully received the message.
I am confident with crystal frequency and baud rate -- with Raspberry Pi and the same MCP2515 adapter I am receiving data.
I have played around with some values in the mcp_can_dfs file:
// from https://www.kvaser.com/support/calculators/bit-timing-calculator/
#define MCP_CNF3 0x03 //0x00 //0x85 // was 0x28
#define MCP_CNF2 0x88 //0xb5 //0xF1 // was 0x29
#define MCP_CNF1 0x00 //0x01 // 0x40 // was 0x2A
This seems to have some effect -- the default settings do not work (crashes) -- but to be honest I don't know what I'm doing...
I guess I should play around with a standard arduino to see if it's ESP related...
There's no lookup for the "135" error code?
Thanks!