Registry / serialization / g29py
library0.0.14pypypi✓ verified 85d ago

Python driver for Logitech G29/G920 steering wheel and pedals. Provides a simple interface to read wheel angle, pedal positions, button states, and force feedback. Version 0.0.14, updated sporadically.

pip install g29py
INSTALL
IMPORT
SIG · G29PY
G
g29py
serializationpythonv0.0.14
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

G29
from g29py.g29 import G29
import g29
Direct import of 'g29' does not exist.
G29FFB
from g29py.ffb import G29FFB
from g29py import G29FFB
G29FFB is in a separate submodule.

Initialize G29, poll data, and print steering wheel angle and throttle position.

import time from g29py.g29 import G29 wheel = G29() if wheel.init(): print('Wheel connected') for _ in range(50): wheel.poll() print(f"Angle: {wheel.get_steering():.2f}, Throttle: {wheel.get_throttle():.2f}") time.sleep(0.05) wheel.close() else: print('Failed to initialize G29')
Debug
Known issues
gotchaOn Linux, you may need root permissions or udev rules to access the HID device. Without proper permissions the init() call will fail silently.
fix
Run script with sudo or add a udev rule (see repository README).
affects: <1.0.0
deprecatedThe function 'get_steering()' returns value in range [-1.0, 1.0] but older documentation mentioned degree angles.
fix
Multiply by the max rotation angle (e.g., 900) to get degrees.
affects: 0.0.12 - 0.0.14
gotchaForce feedback (FFB) requires calling wheel.set_ffb() after each poll cycle, not just once. Many users forget and wonder why no force is felt.
fix
Call wheel.set_ffb(strength) inside the loop after poll().
affects: >=0.0.10
Errors
Common errors & fixes
AttributeError: module 'g29py' has no attribute 'G29'
Wrong import path. The class is in the g29 submodule.
fix
Use 'from g29py.g29 import G29'.
hidapi.HIDException: Failed to open device
Insufficient permissions to access the HID device, or wheel not plugged in.
fix
Run as root/sudo, or add udev rules. Verify wheel is connected and in PS4/PC mode.
OSError: [Errno 16] Device or resource busy
Another process (like a game) is already using the wheel.
fix
Close any program that may have claimed the HID interface.
Upgrade
Version history
0.0.14latest on PyPI · released Apr 4, 2026
Audit
Dependencies
hidapirequiredRequired to communicate with G29 over USB HID.
numpyrequiredUsed for math operations on axis values.
Agent activity
4 hits · last 30 days
node
4
Resources
g29py — pip install g29py · libregistry