I’ve been now working forward with the full CAN implementation for AOG. Already had the Valtra running with the PVEA-CI CAN valve, but now refitting that with everything on the bus. A quick teaser on the bench test for the sensors: Bench test CAN bus AOG setup - YouTube
Everything sits in one plastic box together with the F9P like so:
Connectors are CAN, antenna, second CAN for diagnostics and USB. BNO080 hooked up to the Teensy 4.0. Keypad is from Blinkmarine.
WAS is Danfoss X510 fitted to the kingpin:
Switching off will be with STW M01-CAN sensor:
Had thoughts of using SASA sensor for that, but would need a steering shaft extension so let’s try with the pressure sensor instead. A modified ino with all of the unnecessary stuff removed is used for the control with FlexCan library.
First smoke today! All worked from get go except for a small mechanical play in the WAS install, was sorted with re-alignment & tightening. Took a while to figure out as I was sure it’s a SW issue😅
Recorded some pressure data from using the steering wheel so I can set up the disengage. There’s a built-in configurable filter in the STW sensor, should be good for omitting unwanted peaks.
The PVFC valve made all the difference with the smooth steering, you don’t even notice the valve working anymore and all of the pressure peaks in the LS line are gone!
If I understand correctly it act as a shuttle valve, ports connected to the orbitrol LS, prop valve LS and the priority valve LS.
So Do you think the PVFC valve can replace a shuttle valve in any cases on OC Valtras? or just for the Danfoss prop valves?
This the kind of setup you send a pwm value and read the WAS value over CAN, the calculations made by AOG/teensy? All CAN Parts are just plug and play?
Yeah, it replaces the shuttle valve. What’s different is that it’s a flow diverter instead of a simple shuttle. It works the same way in all dynamic LS systems. In a dynamic system the priority valve leads a flow into the LS line and in the orbitrol there’s a small orifice that allows that flow to escape to tank. Now, if you have a steering valve that just statically increases the pressure in the LS line, the flow has nowhere to go, so either you can cheat and put an orifice into the LS line that allows the bleed flow into tank, but then you need to play around with the orifice size to ensure you don’t get too much pressure drop. The PVFC valve ensures via a spring loaded spool that the LS line is always as the same pressure as the steering flow, while allowing the constant flow from the priority valve into tank.
And yes, it’s just using the normal WAS input and PWM commands, but all the sensors and valve are on the bus. The previous version had only the valve on the but, that works quite nicely as you don’t need cytron etc at all. And if using Danfoss valves, it’s cheaper than the analogue PVEA…
Next setup I’m building will be using the Danfoss EHi steering valve package with PVED-CC controller and same layout. The EHi package is very compact with integrated shutoff and PVFC valves and only marginally more expensive than the PVG16 + PVFC setup. Target would be to make that road safety compliant plug & play package, that will be a lot easier with pre-certified hardware.
Very nice work ! I also really like the professional look-like of the button.
I see there is 4 buttons: one for steering, what are the other 3 used for ?
Do you have design a specific PCB ?
The other three as still under thinking process Original idea was to add hydraulics control to the same board so you could switch the implement lifting on/off with the A/M button, arrows I thought to use for levelling blade offset control. Maybe I’ll upgrade the spool valves to electrohydraulic CAN valves during the winter to allow for implement automation on the antique Valtra as well.
No special PCB, it’s the prebuilt Teensy triple can board from skpang, around 60 eur.
I really like the principe of having an only cable with the CAN and all modules connected to the bus ! This simplified a lot the mounting and the steering box ! And also the PCB: no ADS, no cytron, only BNO.
How is power supplied the box ? The 12V bus routed with CAN bus is connected directly to the battery of the tractor ?
Keypad from Blinkmarine are compatible CAN J1939 (I see only OpenCAN on thier website) ?
To bad that my NH T7000 are not equiped with CanBUS steering valve !
We need to find a CAN bus compatible motor + controler to port assembly into an electric motor version !
It’s powered currently from USB as didn’t have a data only cable around, but there’s wiring ready for powering it from the CAN wiring loom. That takes power from tractor auxiliary power outlet fuse and has an on/off switch in between so you can completely power off the valve.
As I understand it, j1939 (nor the underlying CAN protocol) does not have a system like TCP/IP where there’s a DHCP server that hands out addresses on request. But in order to prevent address collisions, there is a protocol for claiming an address on the bus. Any j1939 device will have a set of preferred addresses that it wishes to choose from. Using the PGN 60928 broadcast message, it determines if a desired address is in use, and if it is, goes on to try the next one in its list until it finds one that it can use. This allows, for example, two ISOBUS monitors to work on the same bus. I don’t believe address claim is required to talk and be heard on a CAN bus. It doesn’t really matter for small buses with only a few devices, typically. For example most of the devices on a John Deere bus are hard-wired to use one or two specific addresses.
Yes the address is the 8-bit source address in the J1939 message.
No it shows up us a regular serial device. In theory the Linux kernel’s built-in CAN support can work with it, but I’ve never actually had success there. In my mind, since the end goal is to have microcontrollers talking to your CAN network, you may as well start with microcrontroller hardware in the first place. CAN shields, etc.
In practice I’ve never found the software provided with these various usb CAN devices to be that useful in doing my analysis. I get more mileage with some C code.