Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions arctis_manager/devices/device_arctis_7_nova.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
from arctis_manager.device_manager import (DeviceState, DeviceManager,
DeviceStatus, InterfaceEndpoint)

VOLUME_MESSAGE = 0x45

class Arctis7Wireless(DeviceManager):
def init_device(self):
self.game = 1.0
self.chat = 1.0

def get_device_product_id(self) -> int:
return 0x2202

def get_device_name(self) -> str:
return 'Arctis Nova 7 Wireless'

def manage_input_data(self, data: list[int], endpoint: InterfaceEndpoint) -> DeviceState:
if endpoint == self.utility_guess_endpoint(7, 'in'):
# The first byte appears to indicate a message type
# 0x45 contains volume information
# I've also seen 0xbb, 0xb7 and 0xb9 messages but I'm not sure what the format is
if data[0] == VOLUME_MESSAGE:
self.game = data[1] / 100
self.chat = data[2] / 100
return DeviceState(self.game, self.chat, 1, 1, DeviceStatus())

def get_endpoint_addresses_to_listen(self) -> list[InterfaceEndpoint]:
return [self.utility_guess_endpoint(7, 'in')]

def get_request_device_status(self):
return self.utility_guess_endpoint(7, 'out'), [0x06, 0xb0]
4 changes: 4 additions & 0 deletions udev/91-steelseries-arctis.rules
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,8 @@ KERNEL=="event*", SUBSYSTEM=="input", SUBSYSTEMS=="usb", ATTRS{idProduct}=="12e0
SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="12e5", MODE="0666"
KERNEL=="event*", SUBSYSTEM=="input", SUBSYSTEMS=="usb", ATTRS{idProduct}=="12e5", ATTRS{idVendor}=="1038", TAG+="symlink", SYMLINK+="steelseries/arctis", TAG+="systemd"

# Arctis Nova 7 Wireless
SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="2202", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1038", ATTRS{idProduct}=="2202", TAG+="symlink", SYMLINK+="steelseries/arctis", TAG+="systemd"

LABEL="local_end"