Rotaty Encoder Ardu...
 
Notifications
Clear all

Rotaty Encoder Arduino Interrupt Pin Use

3 Posts
2 Users
0 Likes
1,102 Views
(@captain-meatball)
New Member
Joined: 3 years ago
Posts: 2
Topic starter  

Hi,

 

Can anyone confirm the following for me, please?

 

1) Does SimHub make use of Arduino interrupt pins for rotary encoders (thereby increasing the control accuracy)?  From the wiki, it seems not and therefore encoder pulses may be missed due to timing in the arduino?

2) Can an ARM core Arduino (such as a Due or Zero) work with SimHub and if so, will interrupts be assigned to rotary encoder pins and/or other input pins? 

I'm really hoping that the Arduino Due is 100% compatible, as the massive speed increase over the ATmega chips will be really noticable.

 

Thanks in advance,

Captain Meatball.


   
Quote
(@admin5435)
Prominent Member Admin
Joined: 7 years ago
Posts: 728
 

Hi !

No I don't make use of interrupts as it mess up with high speed serial communication (lost data) but in all cases since it's emulating 50ms button presses, if you go too fast some steps will get ignored (I've not implemented a press "queue" because the result was really weird during my test).  Based on that 50 ms delay, interupts were not required.

In all cases rotary encoders is a matter of compromise : faster button presses means some games will miss the input (rotary encoders are not native in the gamepad standard, so you need to emulate button presses with a decent duration), slower means some steps will be ignored on hardware side. Plague or cholera choice 😉

2. No, 3.3v logic boards are not supported. But even with the fastest hardware you will still hit the button emulation delay.

 


   
ReplyQuote
(@captain-meatball)
New Member
Joined: 3 years ago
Posts: 2
Topic starter  

@admin5435

Thanks for the quick reply!  Was kind of expecting what you were going to say, but worth asking the question anyway!  I'd want to use a rotary encoder to change the refuel at pit value (in iRacing), so would like to be able to spin it pretty fast to move from one end to the other.

With regards to the 3v3 boards, you could overcome the button emulation delay by buffering the encoder inputs in the Due (the due can assign interrupts on all pins, as required) and then feed them through at the fastest button speed readable by the specific game.  The ARM processors run at 84MHz, compared with the 16MHz of the mega, with added bonus of the 32-bit instruction set, so can easily do this.  I haven't read up on how your software works, but it seems to me that the arduino is just acting as an interface between the IO devices and your software, so this point may be moot anyway.

The Due also has 2 true DACs, which could drive the bass shaker technology, negating the need for an additional sound card, but that's me just thinking out loud!


   
ReplyQuote
Share: