Although we have Keya motors at stock at AgOpen.shop I couldn’t say no to the opportunity to give a try and reuse the FJD motor. And maybe I can also give back something to the community.
I got it working within a few hours, but by the end of the day it was fully running. We can control it pretty much how we control Keya. Except for the disengage… For that I simply did a jumper on the cytron input and use the built-in 20A meter (by default AIO comes with only 5A) and it works great as I could set the disengage around 3A (15%)
Code is here: GitHub - gunicsba/AgOpenGPS_Boards at fjd
Here’s the list of CAN messages and what they do.
Speed is 1Mbit/s
Tablet seems to control the steering wheel in Speed mode (great it’s the same as Keya)
Tablet sends this message:
Tablet:
201h cycle time 2 ms
(I think this is the one that the tablet is sending)
0: 02 == engage trigger cycle see 200h for status!!
1: speed + direction
2: speed + direction
3: 19 / 01
4: Proportional Gain: Range: 4 (04h) .. 125 (7d) default: 25 maybe it goes 00 to EF but tablet doesn’t go beyond 125 and I didn’t play with it.
5: Manual steering activity: Min: 64 Range: 14 .. 5F? High: 3A 3F Max: 64 I tried mapping this from 00 to FF but couldn’t get it working.
6: BIT 8: Safety override 01 → ON 00 → OFF
7: unknown
Speed seems to go from -65 to 65 but I only used -5k to 5k in the code it was more than fast enough.
How does the engage work?
We need to check for the steering wheel status (200h )
If it’s 00 we can cycle it’s status by sending the following
201h 02 00 00 19 00 16 00 00 no extended frame
This will cycle its status reported via 200h:
200h 00 → ask to power ON
200h 06 ON.. → ask to power OFF
200h 08 → shutting down it will go to
200h 00 → powered OFF
There’s also
200h 13 that we got after the internal safety disabled the steering wheel. I initially disengage AOG as well but since we couldn’t drive 100m meter with this feature I let this go. Instead I used Cytron + and LEFT with a jumper as explained in the beginning.
So what does the steering wheel sends to us?
Btw This really doesn’t matter as you power on the steering wheel BEFORE you power on the tablet so whatever is announced at power up will not be heard by anyone.
The only message we really care about is 200h:
200h cycle time is 1 ms
0: motor state 00 → OFF → 06 → ON 08 → shutdown 13 → ERROR?
1
2: wheel speed (00 / FF is middle )
3: wheel speed
wheel speed 00 FF is middle
FF ?? → right turn
00 ?? → left turn
Sample values:
00 00 00 01 00 00 25 15
00 00 FF FF 00 00 25 15
00 00 FF FD 00 00 25 15
00 00 FF FE 00 00 25 15
after tablet is running:
00 00 FF FE 00 00 25 19
2nd tractor:
00 00 FF 00 00 00 23 11
202h cycle time 1
0: 00 to 09 when turning the wheel
1: random values
05 9B 01 01 09 00 00 00
05 AA 01 01 09 00 00 00
05 A2 01 01 09 00 00 00
2nd tractor:
09 E0 01 01 07 00 00 00
203h cycle time 1000 (missing on 2nd tractor)
0
1
2 counter 1s high
3 counter 1s low
00 0F FF E1 D8 15 7C 00 14
204h cycle time 100 (missing on 2nd tractor)
03 20 00 0A 03 20 00 0A
261h
14 6E
No idea about the rest of the bits / functions they seem not to matter.
Happy hacking ![]()