Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Awesome work! I did a simpler version of it, but simple pulsein instead of interrupts. I have two questions about it: 
-Is there any reason for the particular pins selected? Wouldn't it make more sense / is it possible to use pins next to each other? 4, 5, 6, 7, 8, 9 for example?

-Is it normal, that it has a slight play? A like it's a little shaky? Did you think of some kind of noise filtering?

One extra question, but maybe I'll need to contact Freerider dev about it: On mac and android it is totally fine, but on windows it is strange and unusable: The only a portion of the stick movements work, and sometimes it's inverted. Like the upper third of the throttle, and the rightmost quarter of the roll. I'll make a vid of it when I'll get to a Windows machine.

Thank you for sharing it, I love it :)

(2 edits)

Mac and Android uses some Linux input system I believe, which is a bit different than Windows'. At least Unity's input manager (used for development of Freerider) sometimes works better in one combination of OS/Input device, an not the other. That's why it is necessary, for example - when using a Taranis, to make the endpoint adjustments according to the Taranis setup document on Windows, but not on Mac/Android. (Range from 0 to +100 instead of range from -100 to 100). Make that info can help you find a solution.

(1 edit)

Glad to see it is so popular and hoping it is not too late for giving some support!

The pins were selected based on the manual of the PinChangeInterrupt library, which is being used in place of the pulseIn() function. It is a very nice, lowlevel interrupt library and makes it possible to use the code on more different boards. Although not every port register is supported on every board, especially on the 32u4 ones (like Pro Micro, Leonardo, etc), so that is why pins are not in order. For example on a Leonardo or Micro (not the Pro Micro!) only 4 channels can be found on the side of the boards, the rest two is on the ICSP header. It would be only possible arrange the pins on 328p (Uno,Nano) or Mega boards, but those are missing the USB-HID support.

Slight play comes from the adapter, since it have to process those values, while acting also as a joystick for the computer or tablet. Usually this shaking is very low, i would say acceptable until the diff is not more than 1 or 2. With pulseIn() i managed to get a concrete-stable input, but that was working for only 4 channels at a time.

The issue on Windows is seems like calibration is necessary, but make sure you have not made some mixing or so on the transmitter. Most of the time weird errors come from forgotten mixes.

EDIT: Ok, i've just read Freerider's comment and it is a great idea to check!