Project Two - Steer the Fendt SCR, S4, or Gen6 around the yard
Ok, so this is one for all the Fendt fans. When Fendt sell a steer ready tractor they provide a fully functional steering controller built in ready to go. Then you can use the Fendt branded navigation software/system or use any other 3rd party navigation system to provide the desired curve (or wheel angle degrees) without any problems.
Step One:
Load the Fendt navigation program onto the Arduino Uno, with CAN-BUS shield, with a pot connected to A0, and a switch connected to A1-GND.
Step Two:
Load the “show all CAN messages” program onto a second Arduino UNO with a CAN-BUS shield.
Step Three:
Add the CAN wires so you have a setup like this picture, then watch the first video. All this can be done and tested on the bench before needing a tractor.
Step Four
Load the “Filtered F02C Messages” program onto the second Arduino UNO with a CAN-BUS shield. Watch the second video then its time for a test in the Yard.
(upload://2Tqy5bw6nGVYzpBNlX1Y5bN3qr.ino) (3.6 KB)
This has me thinking I should get the other green tractor.
But Deere did such a great job of indoctrinating me at a young age. I still love the Old AR… but its 2021. It looks like fendt is not putting up unneeded barriers to interface.
I have an MF 7350 READY tractor, is it from the agco group, will these steps be used to make it work? So I order the pieces, also I wanted to know if this could be used instead of the Arduino Uno.
In this post I have images of my valve and connector in the cabin, there I could connect the cables for the canbus?
The ESP32 has very different I/O pin assignments, and everything is at 3.3v. So it probably won’t work with the CAN shields that are meant for Arduino. Also the CAN libraries would have to be ported to the ESP32 as well. Once you have experience with the UNO setup, you might try the ESP32 in the future. The ESP32 actually has a CAN port built into it, so you only need a transceiver chip. Demo 31: How to use Arduino ESP32 CAN interface.
I like Arduino cause its pretty straight forward to learn. But requires a lot of workarounds for data manipulation. The IDE implementation of C is very sparse command wise.
But this threads about can and uno, lets keep it uno. If you can Due it on Uno, its only a Teensy job to convert it to another platform.
The only limitation to the Uno as a CAN platform is that the CAN chipset is completely external (a shield), and the only means of communicating with it from the Uno is via a UART serial link, which limits data throughput to around 110kbit/s. CAN networks typically run at 250,000 kbit/s or faster. But if you’re just looking for specific bus messages using a filter (implemented by the CAN chipset itself) and broadcasting a few messages, the UART speed is more than fast enough to do the job. 12 bytes 10 times a second is not very much. If you’re trying to analyze bus traffic more generally, the Uno won’t be sufficient. The Due or Teensy are both excellent for that with their on-board CAN ports and fast USB-native serial output for dumping data. Also the difference in the CAN libraries used for the different devices isn’t huge. I have a bunch of code that uses a few #ifdefs to compile on Teensy or Due, and the rest of my code functions the same.
Oh yes you’re correct. I was talking about the communication between the Uno and the CAN shield. Yes it looks like most are SPI, which can do 4 Mbit/s on an Uno (theoretically). As far as dumping data out to a computer for analysis, you are limited by the UART speed on the Uno. Native USB is nice/required when doing that.
Glad someone picked that horrible humour up, haha.
Due Is also the only Arduino that can handle a double floating point number, just for this one reason it is my only choice. But that little teensy 4.0 will win out eventually at 600mhz, rather be waiting on incoming data to process, than waiting for the data to process.