Setting up potentiometers for a button box

Hi. I am looking to build a button box for things like AC, ACC, Automobilista 1/2 and others etc.
Using a Leo Bodnar board (BBI32) I can sucessfully pretty much create and map any button I want into a game including some functionality for things like Held Toggle switches using extra programs like Joy2Key so I'm having no issues doing almost anything I can think of except for one thing.

Dial based switches using Potentiometers/Rotary Encoders.

I cant seem to get a workable functionality out of them (that I can sucessfully map to a game) so I need to know a few things. All I can do at best is get one to read a button press when it goes past the last 25% of a turn and another press when it goes through the last 75% of a turn. This of course cant be mapped in a "Press A to Increase" "Press B to Decrease" type scenario for things like Brake Bias, as it only presses it once and its done.
So:

What potentiometers are folk using? 10k? 1k? what type?

How are they being wired up to leo bodnar boards (for those not using arduinos)? I was using pins 1, the ground for 1 and pin 2. I have tried other combos with no sucess.

How are they being calibrated by the software from leo bodnar (BBI32 config), I can only get the button to register anything at all if its set up 1:1, not the other options such as 1:2 or 1:4. Changing things such as ms for encoder pulse width seems to do very little.

Then how are they being mapped in game to provide predictable functionality for things like traction control and brake bias.

Basically how are people who are doing custom button boxes making 'Dial' type switches because I cant seem to get the dials I have to behave in a mappable way.

Thanks in advance.
 
BBI-32 is only for switches & rotary encoders. Potentiometers will not work with this board.

Rotary encoders are the usual way to make a dial for brake bias. Ground goes to the center tab on the encoder and the other two sides are for each switch. The ground for the second switch doesn't need to be connected, but if connected it also goes to the center pin. From Leo's site:
1670174053956.png


It sounds like you have a low-rate rotary encoder, one that has too few pulses per detent.
 
Last edited:
Thanks for the reply. This does make sense and confirmed something I suspected which was the limitations of the BBI32, because it does not show up with any mappable axis, like some other joystick boards. I used the config tool to see if I could change how the pot works but nothing I tried seemed to make a difference.
So something I need to do is to swap boards to something that it analogue mappable such as the BBI64 or BU0836X.
Also if it does seem like the potentiometers I am using are low rate, where would I find suitable ones that will give me more pulses per detent, what value am I looking for when searching for these encoders?
And lastly, when I get one and hook it up to the board, how does it appear in game in order to be mapped? Does it need a program like joy2key to take all its outputs and map them individually to a key (which would still leave it not knowing what state it was in last so if I were rotating it clockwise or counter to press whatever key I wanted to map to up or down ,+ or -)? If so most games only have a key for increase or decrease (only ACC seems to have a fully mappable individual button for each "Stage" in the dial).

I appreaciate the help as this is the last thing I need to crack before starting to make one, all other button options so far (Toggles, momentary etc) I have no issue hooking up or mapping to do what I need to do. Just the rotary style dials. Thank you.
 
Rotary encoders are the way to go for the +/- things like brake balance, boost, weight jacker, etc. as they map directly to the increment & decrement that's available in all games.

You can likely find less expensive versions, however I bought these: https://www.mouser.com/ProductDetail/774-288T232R161A2

Using the Leo Bodnar software, I assigned them as 1:1 for highest rate, but have not yet experimented with the pulse time and just left it at the default 48 millisecond. One direction is the first switch and the other direction is the second switch once the assignment is made.

Joy2key is not needed, but it can be helpful in understanding what is going on. Since I'm using a 2-bit encoder, you turn it one direction and it "counts up", with the switches counting 0-0, 0-1, 1-0, and then 1-1 before starting over with 0-0. Turning it the other direction and it "counts down", going in the opposite order.

Since the switches are not momentary, that's where Leo's BBI-32 controller software comes in. It knows the difference between counting up & counting down and outputs a pulse (like a momentary switch had been pressed) on ONLY the first switch for counting up and ONLY the second switch for counting down. Assigning the two switches at 1:1 has the most pulses per rotation, 1:2 is half as many, and 1:4 is a quarter of the original. I think the number of detents combined with the pulse width controls how quickly you can turn the rotary encoder, but ultimately switch debouncing logic probably limits the maximum speed.
***
ACC is to be commended for supporting the rotary switches that are appearing on some steering wheels. Until more race sims support rotary switches, it doesn't seem worth the effort to build a button box with rotary switches.
 
BBI-64 is like the BBI-32 and only has inputs for switches.
Ahh, ok I did not know this. I somehow thought it had analogue. Thanks for clearing that up.

you turn it one direction and it "counts up", with the switches counting 0-0, 0-1, 1-0, and then 1-1 before starting over with 0-0. Turning it the other direction and it "counts down", going in the opposite order.
I was hoping that the functionality would work that way. So it "remembers" if its counting down or up, no matter what position it is in. This is good. I can see how this can be mapped now in game.

Thank you so much for all your help. I understand the encoders a lot better now.
 

Latest News

Back
Top