DualShock 2 - getting it to work
-
Nice, someone using it!
The way it operates - the small motor has only turn-on turn-off, e.g. no power levels. The big motor has 254 power levels (0=off), but one web says it won't spin under value of 64. What I do is test if power for small motor is nonzero and map interval for large motor to 0-192 - not fully cos I felt it's just too strong in Retroarch (although I have not tried whether the 64 threshold is present on my controller. I will try to build another version for You - with the 64 threshold in mind).
I am using 166KHz version, and I got random Select AGAIN. Two day nothing, but yesterday... Have You encountered any random input during gaming? Maybe I'll switch to the faster driver as well...
-
It seems I had an error in one of the commands, it should be working now, the repository was updated for both 166 and 200KHz versions.
-
I can confirm: the new version of your gamecon driver delivers force feedback using both motors. Great! But the 200 kHz version produces ghost input after a few minutes. I'm going to test the 166 kHz version now.
-
Tested the 166 kHz version for about four hours - no ghost input so far. Wonder why force feedback makes the 200 kHz version more susceptible for ghost input.
-
The problem is that I've made more changes in the driver between those two releases, so I might have done something that damaged the timing. I will investigate... in the meantime, do You still have the original .deb that didn't have the random input issue, but had small motor rumble missing? I might need it...
-
A few minutes of actual gaming and I had ghost input even with the 166 kHz version - mostly "Start" and "Select". Also rumble is very weak on my controller, but I already identified the lines in the source where I might be able to change that (thanks to your code commentary).
I still have the driver version with only the big motor working. I'll be happy to provide it to you.
-
That would be nice, upload it for me please, cos I don't do any subversion, which is probably a mistake :D I will try to diff it with the current version and see whats the problem...
-
-
The link does nothing... you need to right-click the file and choose "Get link"
-
Sorry for the confusion - I've shared the file on Google Drive
-
Thanks.
So that 2.0 200KHz in the archive was working well for you, in terms of random input?
-
Yes it was. Tested for about 12 hours in Emulationstation (with the game menu open, were a random button press would bring up the menu or start a game) an for various, although short game sessions (were the current driver resets the game or exits RetroArch after just a few minutes because "Start" or "Select" are erroneously detected).
-
When I get home from work I will look into it... in the meantime, try the older working version if You happen to encounter any random inputs
-
Well, the changes are only marginal to be honest...
But I might be up to something. I've managed to find this web on the WebArchive
This guy puts quite significant delays between bytes - 60us! Thats less than what he used when transmitting/receiving bits - 100us (thats just 10KHz clock). Current driver has only 25us as gap between bytes, not speaking of clock (5-6us). I will try to experiment with it, I've set the clock to 7us (142KHz) and delay between bytes to 12 clocks (12*7).
I have updated the repository (2.0 142KHz) and I've also included new "SDK" for 2.0, the scripts have changed a bit. Simply edit/overwrite the .c file that is in the directory and run sudo ./do.sh - it will unpack the package, update the .c file, calculate new MD5 hashes, pack it together and install.
-
Still random input...
What I am testing now is to read the data not straight when the clock edge goes up, but after a half-clock interval. I hope this will finally work, I am leaving it running as I am off to work
-
I've uploaded an 8us version of driver that so far has not caused much trouble. Try it
-
I've implemented a safety feature from Katemonster's code
https://www.dropbox.com/s/ejdwtkjovr8ue9m/gamecon_gpio_rpi.c?dl=0
detecting random SELECT pushes. Adds a bit of delay to Select press, but should eliminate random input once for all. I've also increased frequency back to 5us, testing now...
-
Back after a long time!
I have the final version of the driver, updated also for running on the new 4.9 kernel, no random input.
Enjoy!
https://uloz.to/!ini7iEICM5Vb/gamecon-gpio-rpi-dkms-2-0-all-deb
-
this thread answers a few questions from my side about the usage of force-feedback/vibration at the psone/ps2 controllers.
@Jofo: a BIG thank you for your work here !but I'm sorry for such a dull question now (I'm a NewPie in linux-stuff, but an old-timer in hw-stuff):
how do I install the gamecon-gpio-rpi-dkms_2.0_all.deb driver now?
guess I can't use the RetroPie-Setup Script (because this will only look at the drivers found @ www.niksula.hut.fi/~mhiienka/Rpi).is there a way to copy the debian file to the raspberry and install it from there via command line ?
-
Hello Jeff,
in order to install the driver, run (once copied on your RsPi):sudo dpkg -i gamecon-gpio-rpi-dkms_2.0_all.deb
Configuration is the same as for the original gamecon driver, so check the documentation. I plan to make a page about the driver, the wiring and so on, if any questions - write here for now ;)
Hope it will work on Your setup :)
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.