lshachar / Arduino_Fanatec_Wheel

A do-it-yourself steering wheel to Fanatec's wheel base
89 stars 13 forks source link

Encoders, Joysticks, and LED support #12

Open Airnautique opened 4 years ago

Airnautique commented 4 years ago

I am currently working on making a DIY wheel for my Fanatec base. Looking through the current code and documentation, it appears that there is support for mapping all of the existing buttons from the Fanatec wheels. However, I don't see any mention of the encoders, joysticks, or led rev lights. Most Fanatec wheels have a "funkyswitch" which is a 4-directional d-pad/joystick that also has an encoder built in. Is it possible to add support for that input?

Also, I am currently working on 3d modeling a DIY electrical connector that uses inexpensive header pins so there isn't a need to do the molding using an existing connector,

lshachar commented 4 years ago

Hi there, You are correct, there's no support for LEDS / encoders / joysticks in the code. however, I feel like all the heavy lifting is already done in the code, so it should be very straightforward to implement these quite easily, if you have Arduino programming experience. good luck!

andrewkerr5 commented 4 years ago

I am currently working on making a DIY wheel for my Fanatec base. Looking through the current code and documentation, it appears that there is support for mapping all of the existing buttons from the Fanatec wheels. However, I don't see any mention of the encoders, joysticks, or led rev lights. Most Fanatec wheels have a "funkyswitch" which is a 4-directional d-pad/joystick that also has an encoder built in. Is it possible to add support for that input?

Also, I am currently working on 3d modeling a DIY electrical connector that uses inexpensive header pins so there isn't a need to do the molding using an existing connector,

how did you get on with the model of the connector, im thinking of doing something similar, did you find any suitable pins?

EtienneGameSeed commented 3 years ago

Hi, If you're interested I'm selling a board based on Teensy LC, with which can manage buttons, encoder, joystick, RGB leds, 7 segment display and rumble motors. There's an 8 pin jst 2.0 connector so the connection to a Fanatec QR is easy But it is not based on Ishachar code and not open source : https://www.electroseed.fr/shop/product_info.php?products_id=351

Fish2 commented 3 years ago

@EtienneGameSeed out of interest do the inputs and outputs go throw the Fanatec wheel base ? so my main question is will I be able to configure the leds in Fanalab ?

lshachar commented 3 years ago

they do, and you will.

EtienneGameSeed commented 3 years ago

Yes I confirm, it wheel behave exactly like a Fanatec wheel, and you'll even be able to configure FFB from the wheel as with a Fanatec wheel

Shane87F3Ng commented 2 years ago

Hello @lshachar,

first of all, thx very much for your work, that is just awesome! I have one question about how to add additional buttons / encoders.. Do i need to change to another wheel than the Porsche RSR? or just modify the button matrix and bytes? Because as far as i know, i can only use buttons that are originally supported by the wheel? it is like that with thrustmaster

Actually i build sth similar for my previous thrustmaster base and was reading the wheelstates with an arduino sketch by https://rr-m.org/blog/ to implement it into my sketch and simulate the right wheel..

my plan is to use:

3 encoders + push button 8 buttons

so in total i would need to have 19 buttons (wheel states)

any help on where to start?

@EtienneGameSeed As is saw you do not sell the teensy anymore, maybe you can help with some thoughts here without getting too much info away on your own project.

thomaswang04 commented 9 months ago

I know this is an old thread but I did some poking in the code and figured out how the joystick code works for at least the porche 918 rsr in the base code. returnData[5] is for the x axis and returnData[6] is for the Y axis. 0x00 and 0xff are center position. 0x00 to 0x7f is negative x/y where 0x7f is the farthest the joystick goes. Then 0x80 is the opposite side of the x/y axis which goes all the way back to 0xff which returns to center.

I spent like an hour trying manually adjusting values before trying to cycle through each value and discovering how it works.

hopefully this helps @Airnautique if he is still working on this or anyone else who reads this thread.