CanBus for Beginners - Super Simple

Hi, i am going to inject some life into the CanBus section and going to show how easy it can be to use the factory installed components (like the WAS from CanBus to AgOpen).

I will also show how we can use AgOpen to steer the factory installed GPS ready systems. I have the ISO standard system worked out, plus the Fendt SCR/S4.

I will slowly post the small projects you can try if your keen, keeping it super simple and working each brand out as we go. They all work the same way but put same information in different configurations and on different CanBus networks.

The simple learning projects / tests I will post only use a Arduino Uno, with a CAN Shield. It is the easiest most basic setup. (It also then works straight of the bat with current AgOpen .ino’s when needed)
2 x Arduino Uno
2 x CanBus Shields
2 x LED’s plus 2 x Resistors
1 x On/Off switch
1 x Button
1 x 10k Potentiometer
Prototype PCBs just to use on top of UNO’s

This is the Can Library i use:
https://github.com/coryjfowler/MCP_CAN_lib

27 Likes

Good evening, I’m a novice in this field.
is this possible on the Amatron + (Amazon with its rs 485 port)
and also on a fendt 712 com 1 (2003 without tms)
I have an arduino Nano , Uno and mega and a mcp 2515
But nothing tested yet.
Thank you

Awesome this will be the information I need to grasp after I get the old 252 TSIP messages figured out.

Currently have the UBX parsed into the DUE and converted, now starting to build the TSIP.

Also lots of farmers would love AOG if they could just plug in.

Project One - Read Current Estimated Curvature From ISOBUS (PNG 44032).

ISOCAN_EstCurve_Generator.ino (2.6 KB)
Load this onto one of the Uno’s with a pot connected to A0, It will just send a standard estimated curve message so you can test on the bench before testing on a tractor ISOBUS.

EstCurve_ISOCAN_AC_V1.0.ino (2.0 KB)
Load this onto another Uno and it will just filter the CAN messages and display only the Est Curve message.

There are a few basic things to remember, (A simple mechanics version).

  • The mask is there to tell the filter what to check. It is always binary from right to left. And entered into the program as HEX number. 1 = Check, 0 = Dont worry.

  • If all the Mask 1’s match a filter it is passed to the Arduino (The example will only look for 00AC0000) (PNG 44032)

  • When displaying data in the serial monitor I always use HEX for the ID, And DEC for the Data it makes it so much easier to see whats going on

  • CanH = Yellow, High like the Sun. CanL = Green, Low like the Grass

Try it on the bench, then just connect the Arduino displaying the Est Curve to the Tractor ISOBUS and see what happens. Normally you might have to turn ISOBus on to get some action on the bus.

Arduino Uno CANBus
ISO Plug
Serial Monitor

4 Likes

Very interesting. I want to try this, but don’t have a CanBus shield. Can you tell me which one you recommend?

I think they are all much the same, i have a couple of these coming as they look the same as the Seeed Studio ones I have.

For learning and showing you can steer the tractor with this is the easiest. (When its running with AGO later the UNO/Nano is on the limit but works fine (We will upgrade slightly later to something faster)

This is a great topic! Thanks for sharing all this information and How-To-Do!

Regards,
Richard

Very VERY interesting!!

Looking forward to your projects and especially to your Fendt SCR findings. My 724 is my next AOG project!

I’ve got one of these i think. Is it suitable?

https://www.ebay.co.uk/itm/MCP2515-CAN-Bus-Module-TJA1050-Receiver-SPI-Module-Arduino-UK/313363968089?hash=item48f5f2b059:g:oQEAAOSwrOlf7MzE

Think so, but it’s a 8mhz clock so just in the Arduino program you’ll have to set the speed for 8mhz not 16mhz. I haven’t tested and not sure of the speed difference but can just try it.

Ah, well as they are so cheap and I only have one I’m probably best just getting two the same as yours.

This is something I’m going to follow very closely!

So I understand that you know the 724 SCR WAS canID ? Could you share it with us ?

Oh ! My bad ,
I hadn t read carefully enough, you will check this on the isobus … mine is not isobus, I have to look on the tractor buses.

It’s a standard curve message, (Data part 2/8 x 256) plus (Data part 1/8) = Curve 0 - 65000ish, 32,000 centre roughly

1 Like

Trying to follow this interesting topic…
But do not understand this…
Can you explain?

This thread was worth it just for this rule of thumb.

5 Likes

Do JD 8410T, 9400T or 8520T have canbus? 2005 Lexion 575R?

I know the basics… Can Bus as basic communication system, then J1939 and ISOBUS ISO 11783 on top of them…
communication based on transmitting PGNs (not PNG!)
I understood that AOG is now working using PGNs?
Most recent tractors are Isobus ready, should send PGNs for Wheel Angle Sensor, GNSS antenna, steering wheel hand touched, drive steering valve by PGN as well…
Open the way for AOG to be plugged as Isobus Virtual Terminal?
In any cas we (I) have to learn more how it works… Infos are hard to collect…

Ok, Info is hard to get so you have to change the way you get the job done :thinking: My learning is from watching things work and slowing striping it down to basics.

From what I see AOG is going down a bigger more open to everything in the loop PGN style, (like a CAN-BUS network) so ill leave that for the experts.

I dont worry about all the PGN stuff really to the the truth, just look at the CAN ID as a whole, and mainly the last two parts really (Who the message was generated for and Who sent the message) sometimes the PGN might give you a hint what its for. But when your going to steer all brands standard ISO PGN’s are gone out the window.

What I have worked out is reading messages is there for anybody on the canbus to see and use, but when your going the send messages to have to tell everybody on the canbus your address and what you are otherwise they dont listen.

So then to steer the tractor, there is two simple steps:

  1. Tell everybody on the CAN-BUS you are the navigation controller and you are alive.
  2. Then send non stop at approx 40-80msec intervals the desired set curve, and if you intend to steer or not.

From there the steering controller (tractor) will the tell you (the navigation controller), What the desired set curve is, What the current curve (WAS) is, and if it is ready for steering commands or not (manual lockout etc).

Very much the same as a standard AOG to Steering PCB Nano really.

In the next few days I will tidy up my info and share, so you can test drive only using the parts from the project one at start of this post :smirk:
Fendt SCR,S4,Gen6 - No Problem
Massey Ferguson and Danfoss PVED-CL - No Problem
https://www.youtube.com/watch?v=C5aVkQ51u6o

10 Likes

Amazing video and exactly what I need!!

I think your idea to post info in a learning progressive structure is a great idea and this topic will then serve as an amazing resource. People are keen for info obviously, but jumping back and forth with complexity could make following it more difficult for those starting from scratch.

1 Like

It’s too bad John Deere and Case New Holland don’t use the ISO standard for autosteer. There’s very little dealer support for Agco brands in my area.

1 Like