Connecting Heusinkveld Ultimates to the Fanatec CSPv3 Controller Board

Certainly not industry standard as far as diagrams go.
But this should be what I did. Hope it is reasonably clear.

HE to CSPv3 diagram.jpg
 
I took inspiration from your little endeavour recently. I wanted a wheelbase that would work on the PS5 so I could play with my friends on GT7 and the new DD+ from Fanatec piqued my interest. I took a bit of punt and got one recently, but I was reluctant to give up my sprints and figured I'd try something similar to you. I ended up taking a slightly different approach in the end though as I managed to reverse engineer the protocol between the wheel base and the pedal control board. It's actually really trivial, just a simple UART either end, with one byte request from the wheel base for a pedal (throttle, brake, clutch) and one byte response of the pedal value. I have a USB to serial connecting my PC to the wheel base and a small program to proxy the values from my sprints. It works for me as I need the PC to provide the tactile for the pedals from GT7 anyway. Once I tidy everything up, I'll post a quick thread with the details.

I was a little disappointed to see that the values from the pedal control board went from 0 - 127 only. This is just 7 bits and even less resolution than my venerable G29 pedals.

EDIT: code to translate the HE USB values to the Fanatec UART vaules is here: https://github.com/GeekyDeaks/fanatec-pedal-emulator
 
Last edited:
I was a little disappointed to see that the values from the pedal control board went from 0 - 127 only. This is just 7 bits and even less resolution than my venerable G29 pedals.
:cautious::unsure::confused::sick::redface:
Oh my goodness. That's... shocking. When did these units first go on sale?
Fair enough, I've never been a believer in pedals needing 12+ bits, but to throw away the 8th bit in a single byte is just bizarre.
 
I have a USB to serial connecting my PC to the wheel base and a small program to proxy the values from my sprints. It works for me as I need the PC to provide the tactile for the pedals from GT7 anyway.
Very interesting. But this part I'm not quite sure I understood?
- Wheel base connected to PS5, as usual (I assume)
- Then, if I understood, after that:
- Sprints connected to the PC, as usual, though the HE. control board as normal?​
- Then you have another cable that goes 'out' of the PC, and then into the pedals input on the back of the DD+ (so to a normal RJ12 plug?)​
- So your PC/software reads the HE Sprints as normal, then passes it back to the DD+ like that?​

Also, I have been using my little device for quite a long time now. At this point I just leave it connected, and run everything as if they were Fanatec pedals connected straight to my DD1. Also when playing on PC. I haven't really had any issues (I did have to recalibrate things once, but otherwise has been fine). Everything just works at least to the level that I use 99% of the time. I never did swap out the load cell amps for those other ones with the variable settings (never even really tested them, but at this point there seems no real need)
 
- Sprints connected to the PC, as usual, though the HE. control board as normal?- Then you have another cable that goes 'out' of the PC, and then into the pedals input on the back of the DD+ (so to a normal RJ12 plug?)- So your PC/software reads the HE Sprints as normal, then passes it back to the DD+ like that?
Yeah, that is all there is to it.... I'm actually thinking this might be a good piece of info for accessibility.

Also, I have been using my little device for quite a long time now. At this point I just leave it connected, and run everything as if they were Fanatec pedals connected straight to my DD1.
Honestly, I wouldn't even remotely suggest you change to this approach. It's just a different way to go about it, but it needs additional hardware (to translate USB to UART) and I haven't yet investigated the additional latency. I was just being lazy as your original approach means I need to build two load cell amp circuits and it was also a good excuse to play with my storage scope! :D
 
Fair enough, I've never been a believer in pedals needing 12+ bits, but to throw away the 8th bit in a single byte is just bizarre.
It is very odd. The controller board has a PIC18F26J53 on it and the ADC channels of that are 10-12 bit, so it's not a limitation there.

I'll be honest though. Unless I stretch the gauge in DiView fairly wide I cannot really notice much difference between the direct value from the sprints and that coming out of the wheelbase.

I seem to remember something odd with the G29 when my buddy was trying to make a mapping table to remove it's top-end sensitivity. We had a setup where we could inject values into the DAC and read what came out of the G29 wheelbase from the USB to figure out the correlation. I could have sworn we noticed that the values coming out were 'quantized' so to speak.....might have been due to the DAC though.... need to dig up the notes again

It's piqued my interest in general. I might knock up a quick bit of code to analyse the numbers coming out the sprints to see if they really do use all 12 bits.
 
I never did swap out the load cell amps for those other ones with the variable settings (never even really tested them, but at this point there seems no real need)
I wouldn't mess with it! :) I have lost count of the things I have tinkered with to improve only to end up with a bigger mess at the end. It's worse at work. So many times I have had tech advise/order me to swap to another tool/framework to fix a pain point only to find the original approach dealt with a bunch of pain points so well we never even knew they existed until we switched.....
 
I'll be honest though. Unless I stretch the gauge in DiView fairly wide I cannot really notice much difference between the direct value from the sprints and that coming out of the wheelbase.

I seem to remember something odd with the G29 when my buddy was trying to make a mapping table to remove it's top-end sensitivity. We had a setup where we could inject values into the DAC and read what came out of the G29 wheelbase from the USB to figure out the correlation. I could have sworn we noticed that the values coming out were 'quantized' so to speak.....might have been due to the DAC though.... need to dig up the notes again
Well, now that I've gotten over my shock at them only using 7 bits... :)

...I recall that my USB packet sniffing on the G27 showed a somewhat meh ADC behaviour there too, though not quite so bad. Allowing for the fact that it rescales its output to use the full 0-255 range, and that I had already replaced my pots using the 3DRap kit by the time I did the sniffing, I was just working back from the number of discrete values sent by the pedals to infer what the ADC was doing. With the limited voltage swing from the 3DRap pots (<= 2.4 V, of the 5 V input), the best I got was 102 discrete codes. The original Logitech pots should therefore have delivered no more than around 170 codes, which suggests a badly tuned-up 8-bit ADC (poor choice of ref voltage). So not much better than the 7-bit range of the Fanatec approach.

Honestly, I'd expect that there'd be very few occasions when a driver would notice any discretisation even with a 7-bit range (or indeed a 6-bit range!), though of course the Fanatec may not use it all (the way the Logitech doesn't use the whole 8-bit range it has). Still feels weird though to transfer a byte of data, originating in an ADC with at least 10-bit resolution, and then only use 7 bits :)
 
Very interesting. But this part I'm not quite sure I understood?
- Wheel base connected to PS5, as usual (I assume)
- Then, if I understood, after that:
- Sprints connected to the PC, as usual, though the HE. control board as normal?​
- Then you have another cable that goes 'out' of the PC, and then into the pedals input on the back of the DD+ (so to a normal RJ12 plug?)​
- So your PC/software reads the HE Sprints as normal, then passes it back to the DD+ like that?​

Also, I have been using my little device for quite a long time now. At this point I just leave it connected, and run everything as if they were Fanatec pedals connected straight to my DD1. Also when playing on PC. I haven't really had any issues (I did have to recalibrate things once, but otherwise has been fine). Everything just works at least to the level that I use 99% of the time. I never did swap out the load cell amps for those other ones with the variable settings (never even really tested them, but at this point there seems no real need)
Thanks for your work on this and I plan to use your information for a future build. Theoretically you should be able to use any load cell / hall sensor brake/throttle combo as long as the Leo Bodnar board converts the hall effect signal to the 1.5v required? and Brake is just a simple load cell wire swap + calibration?
 
Thanks for your work on this and I plan to use your information for a future build. Theoretically you should be able to use any load cell / hall sensor brake/throttle combo as long as the Leo Bodnar board converts the hall effect signal to the 1.5v required? and Brake is just a simple load cell wire swap + calibration?
Hello. This project was quite specific. I used the CSPv3 board (because I already had it, and it directly connects easily to my Fanatec base which is PS4/5 compatible). So everything was really within that framework.

It's pretty simple electronics (now that I had some good education from the other contributors here) but I am not really sure if you can just assume it will work in all other situations. I guess it depends on the particular pedals or inputs being used.

I leave further comments to the others here, who understand far better than me.
 
Hello. This project was quite specific. I used the CSPv3 board (because I already had it, and it directly connects easily to my Fanatec base which is PS4/5 compatible). So everything was really within that framework.

It's pretty simple electronics (now that I had some good education from the other contributors here) but I am not really sure if you can just assume it will work in all other situations. I guess it depends on the particular pedals or inputs being used.

I leave further comments to the others here, who understand far better than me.
Hello,
joining late to the conversation but was send this tread yesterday on my Reddit post mentioning that you have done similar project as mine I did a while ago. The difference is you used the V3 control board with HS and I the CSL Elite with custom build pedals.


I could have helped you if I have found it earlier but happy that you manage to make it work.

As you mentioned its pretty simple electronics and this "mod" can be done I would say on any pedals combined with a Fanatec LC control board. The standard versions of the CSL Elite or CSL pedals dont have electronics juts a plain board with connections (the base is doing everything). I have tried connecting the Leo Bodnar amp to any of the pedals Gas/Break/Clutch pedal trying to replace the Potentiometer/Hall sensor with a Load Cell but it doesnt work and im not taking appart my DD2 to reverce engeneer it to figure it out :p
But you can easily hook a custom made pedals or any other brand pedals (Moza, Trustmaster,Logi...) that are Potentiometer/Hall sensors based to any Fanatec Base as long as you swap around some pins on the cables. This wont be a bad idea for someone that dont want to buy new pedal set and use his old Logitech G2x pedals (just not sure what are the Potentiometers on those , fanatedc uses 10k ohm, or you mod them with hall sensors).

Can help out if anyone needs help with a similar project.
 

Attachments

  • CSL Elite Load Cell.jpg
    CSL Elite Load Cell.jpg
    155.6 KB · Views: 32
  • CSL Elite Load Cell 1.jpg
    CSL Elite Load Cell 1.jpg
    244 KB · Views: 30
  • Custom Fanatec Pedals.jpeg
    Custom Fanatec Pedals.jpeg
    626.1 KB · Views: 35
I have tried connecting the Leo Bodnar amp to any of the pedals Gas/Break/Clutch pedal trying to replace the Potentiometer/Hall sensor with a Load Cell but it doesnt work and im not taking appart my DD2 to reverce engeneer it to figure it out :p
Hello, thanks for the link. I went through your post. It looks like the pinouts you share are the same that we discovered here.

I think the main difference between our projects is:

- you have successfully connected 'non-Fanatec' pedals to the CSL control board, essentially through the pin-out mapping. But all of your pedals are directly outputting exactly the signal type expected by the CSL board. (Brake is load cell, throttle/clutch are NOT).
- Your throttle/clutch pedals have hall-effect sensors installed. Which is already what the CSL board is expecting to see, on the throttle and clutch input.​
- So in the end, yes, it's a successful proof that non-fanatec pedals can be used with basic wiring checks. As long as the pedal used, is sending the same signal type expected by the control board input.​

- For my project, the throttle and clutch HE pedals are both load-cells. Which is NOT what the CSPv3 control board (nor the CSL board you use) is expecting for the throttle and clutch inputs. So, that's why we used the load-cell amps on those 2x pedals/inputs (clutch/throttle), and convert the signal. If I understand your project correctly, you didn't do that, or didn't get it to work. Thanks to a lot of help and guidance from some kind people here, we got it working well.

Thanks again and good luck to anyone venturing down a similar path.
 
Hello, thanks for the link. I went through your post. It looks like the pinouts you share are the same that we discovered here.

I think the main difference between our projects is:

- you have successfully connected 'non-Fanatec' pedals to the CSL control board, essentially through the pin-out mapping. But all of your pedals are directly outputting exactly the signal type expected by the CSL board. (Brake is load cell, throttle/clutch are NOT).
- Your throttle/clutch pedals have hall-effect sensors installed. Which is already what the CSL board is expecting to see, on the throttle and clutch input.​
- So in the end, yes, it's a successful proof that non-fanatec pedals can be used with basic wiring checks. As long as the pedal used, is sending the same signal type expected by the control board input.​

- For my project, the throttle and clutch HE pedals are both load-cells. Which is NOT what the CSPv3 control board (nor the CSL board you use) is expecting for the throttle and clutch inputs. So, that's why we used the load-cell amps on those 2x pedals/inputs (clutch/throttle), and convert the signal. If I understand your project correctly, you didn't do that, or didn't get it to work. Thanks to a lot of help and guidance from some kind people here, we got it working well.

Thanks again and good luck to anyone venturing down a similar path.
My initial project was with 3 LC like yours.
From electronic point of view I manage to make it work easily with the Leo Bodnar Amp as you did.
Clutch pedal was flawless, Gas was having some interference issues in the beginning which I fixed (99%) with a ferrite core and good grounding. (not ideal but when using you don't see/feels it, you can only see it in the output if you look closer and was good enough for me).
I swapped to Hall because the springs that were pressing down the LC on them both pedals I couldn't make them with the right length and the output wasn't linear as it should be(I didn't had many spares to play around). The spring will push but if its shorter it wont press enough down and wont use the whole range of the LC and if its too long it will push down and when it reaches its fully compressed state but you still pressing then the output is wrong.
Also the benefits of LC on those pedals is close to 0 for me so I went the easy way.
Your pedals already have LC on all of them and are already with the right springs so no fiddling around with that... and yes I would not swap those for Hall and will push the project till its done as you have done :)
 
:cautious::unsure::confused::sick::redface:
Oh my goodness. That's... shocking. When did these units first go on sale?
Fair enough, I've never been a believer in pedals needing 12+ bits, but to throw away the 8th bit in a single byte is just bizarre.
I totally forgot to mention this, but I accidentally spotted something odd when trying to use a different USB to Serial device and when I investigated further I realised the wheelbase was switching the baud rate part way through the initial handshake and I had missed it because of the trigger I was using on my scope. I now have it running in glorious technicolour 16 bit :D I'll post the details later when I get some time.
 

Latest News

What's needed for simracing in 2024?

  • More games, period

  • Better graphics/visuals

  • Advanced physics and handling

  • More cars and tracks

  • AI improvements

  • AI engineering

  • Cross-platform play

  • New game Modes

  • Other, post your idea


Results are only viewable after voting.
Back
Top