Extended CAN Bus problem

Hi all!

I'm having a problem with a CAN bus system i'm working on.

It's a tractor, and i have an arduino UNO with a MCP2515 module attached to it. No problems there. I can read the CANBus data perfectly on other tractors before, and i was able to take over controls of levers by sending the CAN Bus data .

Now i have a new model tractor in , and it works with extended ID's (29 bits). It took me a while before i realized it , i only saw four different CAN ID's in my sniffer , but after i discovered there were extended ones, the total number of ID's was well above 300.

I need to be able to acivate the forward/reverse button, i have found the ID and the data pretty fast, but when i try to send the CAN data, nothing happens. I'm pretty sure my method is OK, because i was able to intercept and duplicate another button on the armrest and that worked fine.

Question , does a 29bit can bus messages always have 8 bit data structure? I thought so, but when i added 8 more bytes to the sniffer, they also showed data . But injecting that 16 bit onto the bus didn't work eather.

So ID is correct, Data is correct but nothing happens, what am i missing? Any ideas?

Here is some code :

byte FwButton[8]          = { 0x00, 0x00, 0xF0, 0x20, 0x00, 0xF0, 0xFF,0xFF} ;    
byte FWButtonRelease[8]   = { 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0xFF,0xFF} ;    

// i did set the second parameter to 1 for extended 
// when i push a button :
CAN0.sendMsgBuf(0x98FF9D93,1,8,FwButton);

I use the mcp_can library, have the correct speed (8mhz and 500kbps)

If my memory is correct John Deer runs at least two buses, one for the engine, one for the implements. Which one are we talking about. I believe they use there variation of CAN FD.

It's a Fendt tractor, and i'm working on the K-Bus. I can read the CAN address i've been looking for, problem is that when i send the same address , i can't activate the function it should activate. Not sure what is wrong with my code, since i can make it work for the hydraulic valves, not for the F/R flipper switch.

That sounds like the port you are accessing is behind a 'firewall' ie. it is passed through a gateway module that allows specific messages to be sent but blocks the ones it does not want to receive. This is common on many vehicle diagnostic ports. Also is this an implement port or a diagnostic port you are connecting. This link may interest you: https://www.youtube.com/watch?v=u3NQ7nruWcM

Hi there, thanks for you reply.

This video shows indeed exactyl how i'm working , no problems there in finding the data and ID's i need. They are pretty clear.

Only problem is sending that data back to the CAN, it should act like the actual button but it does not. I'm not aware of any firewall that could prevent a can message from beeing activated. What i do think is that there need to be a combination of 2, which i haven't found so far.

In some sample code on the internet i found this :slight_smile:

K_Bus.setFIFOFilter(0, 0xCFFD899, EXT); //FendtOne Engage

i thought that this was only used to filter the messages to only look at that ID, but
it shows 'Engage' in the comment. What exactly does setFIFOFilter do ?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.