Modifying can transmit sample app to control retrofit electric power steering

Thanks for a most informative thread - I have a quick question - which generation of Prius column did you use? I have a Gen3 column (and rack) here for my project car and I’d really like it to have adaptive-speed as it’s going to be a bit of a monster…

Actually - I have a second question too… I’m fitting a Syvecs S12 ECU to the car, and as this has programmable CAN outputs it’d be really helpful to know what I should be transmitting to the Prius’ CAN.

I see from the above that 2C4 is engine rpm and 0B4 is vehicle speed - is that a) correct and b) applicable to a Gen3 Prius?

Any help would be most appreciated!

@Paddy_SP
I used the gen 2 column, from a 2008 specifically. I’m pretty sure they did change the column between the two generations, mine has a 12v dc brushed two wire motor, and I believe the gen 3 has a three phase AC brush-less motor. I’m like 80% sure the CAN id’s did not change. There is a thread on Pro-touring.com where a guy was using the column from a Subaru BRZ I think which is basically a rebadged Toyota and he used the same or very similar CAN id’s to mess with his, no idea if he actually finished the project however.

Yes, the 2C4 is rpm on gen 2 (80% sure on gen3) and doesn’t need to make any changes, a steady engine rpm input is all that is needed to get it to power on immediately without the 10 second delay.

0B4 is the speed id for gen 2. You would need to have the S12 vary the last three bits, where I have 06, 66, and B5. The 06 and 66 will change based off the speed using the formula in my code, and the B5 is a checksum, which will change as the first two bits change. That formula is also in my code above from August 18th, 2024.

The 0B4 Id is what lets the EPAS ECU think its still communicating with the Prius since it thinks it’s coming from the ABS controller, and that eliminates the “lost communication with ABS code” that puts it in limp mode. Once that’s eliminated you can actually use a scan tool to set the torque center point and the return to center ability gets way better as well.

That’s about as much as I can help, since I don’t have any experience with the S12 ECU, but even if you don’t get the assist variable working like factory, you could possibly get a set speed you like and have the ECU output it statically like I do, my car drives great with the max assist level (06 66 B5 = 10 mph).

@DSM_WISEMAN,
Sorry I can’t help beyond what I’ve provided here, I don’t have the time and I’m not willing to take the responsibility of actually producing these things. If you can find someone local to you who does robotics or fixes electronics you could possibly show them this thread and see if they can help if you can’t figure it out on your own.

@TimC - many thanks for getting back on this so quickly, it’s much appreciated!

Yes, as you said, my Gen3 system is three-phase. As I’ve now got a handle on the rpm and speed side of things, I guess the only other subject I’d like to go further into is that of establishing the centre* point - it’d be really handy if I could do it via the S12, so I’ll need to find out what the ID for that is.

*Brit spelling

Although you probably could find the ID for resetting center point and get your ecu to send it, if you just get the system to not have any trouble codes by getting it an RPM and VSS signal, any decent repair shop with a bi-directional scan tool should be able to reset that for you if you don’t have your own. It cannot be reset if there are any codes in the EPAS computer. Once I made this simulator for my car, all the trouble codes went away and I was able to use a Snap-on scan tool at work to recenter the torque sensor. You would need to attach an OBD2 port to your CAN wiring going between the ECU and EPAS module, then you can use a scan tool to check or clear codes and recenter the torque sensor. There is a procedure from Toyota that uses the scan tool to do it. Basically you hook up the scanner, with the steering wheel pointed straight ahead on flat ground, then push the “button” on the scanner screen, the scanner will then have you go through a series of key on/ key off/ key on and possibly turn the wheel left and right, it walks you through it on the screen. When your done, the module remembers where the center point is and it will make the return to center much better. I believe most people complaining online about return to center after going around a turn have the system in limp mode or the center point is unknown.

Thanks again for the info - I have an Autel MaxiDAS, so should be able to reset it with that.