Flo 66deffb545 V7.2.0 (#59)
* Add mypy, ruff stuff

* Add mypy, ruff stuff

* Update pyproject.toml with fixes

* Fix double version string, keywords

* resolve hidapi unhandled exception issue

-added try except around thread code to handle the IOError raised by hidapi.
-added 'connected' property to indicate when controller is disconnected.

(cherry picked from commit a5ed4192fb52ec6f410f785cb3289b8015f5810f)

* resolve exception on system startup

(cherry picked from commit 6aeeee1a564b509ea87c1e8ca0d90d3e4790592f)

* resolve dpad down left issue

(cherry picked from commit f58c61b7317731a4532a4acd724895a6bfa41cd1)

---------

Co-authored-by: dalethomas81 <dalethomas81@gmail.com>
2024-10-05 23:23:09 +02:00
2024-03-02 23:42:13 +01:00
2024-03-02 23:42:13 +01:00
2024-03-02 23:42:13 +01:00
2024-10-05 23:23:09 +02:00
2024-10-05 23:23:09 +02:00
2024-07-30 11:29:37 -04:00
2020-11-29 13:25:31 +01:00
2024-10-05 23:23:09 +02:00
2024-10-05 23:23:09 +02:00
2023-02-24 22:12:29 +01:00
2024-03-02 23:42:13 +01:00

pydualsense

control your dualsense through python. using the hid library this package implements the report features for controlling your PS5 controller.

Documentation

You can find the documentation at docs

Installation

Windows

Download hidapi and place the x64 .dll file into your Workspace. After that install the package from pypi.

pip install --upgrade pydualsense

Linux

On Linux based system you first need to add a udev rule to let the user access the PS5 controller without requiring root privileges.

sudo cp 70-ps5-controller.rules /etc/udev/rules.d
sudo udevadm control --reload-rules
sudo udevadm trigger

Then install the hidapi through your package manager of your system.

On an Ubuntu system the package libhidapi-dev is required.

sudo apt install libhidapi-dev

After that install the package from pypi.

pip install --upgrade pydualsense

usage


from pydualsense import pydualsense, TriggerModes

def cross_pressed(state):
    print(state)

ds = pydualsense() # open controller
ds.init() # initialize controller

ds.cross_pressed += cross_pressed
ds.light.setColorI(255,0,0) # set touchpad color to red
ds.triggerL.setMode(TriggerModes.Rigid)
ds.triggerL.setForce(1, 255)
ds.close() # closing the controller

See examples or examples docs folder for some more ideas

Help wanted

Help wanted from people that want to use this and have feature requests. Just open a issue with the correct label.

dependecies

  • hidapi-usb >= 0.3

Credits

Most stuff for this implementation were provided by and used from:

Coming soon

  • add multiple controllers
  • add documentation using sphinx
Languages
Python 100%