"Steelplay Slimpack" wireless controller with 2.4 GHz receiver does not work

Hi, When I plug in the receiver, it flashes 4/5 times then nothing more when it should continue to be able to connect the controller.


# usbconfig -d 0.12 -v
Code:
ugen0.12: <ZEROPLUS P4 Wireless Controller> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
ugen0.12.0: uhid3: <ZEROPLUS P4 Wireless Controller, class 0/0, rev 2.00/1.00, addr 11>

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x0c12
  idProduct = 0x0e19
  bcdDevice = 0x0100
  iManufacturer = 0x0001  <ZEROPLUS>
  iProduct = 0x0002  <P4 Wireless Controller>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0029
    bNumInterfaces = 0x0001
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080
    bMaxPower = 0x00fa

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x11
       RAW dump:
       0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0xa0,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0084  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0005
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0003  <OUT>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0005
        bRefresh = 0x0000
        bSynchAddress = 0x0000

If anyone has the same problem, thank you.
 
If it can be useful or help someone, I found a somewhat wonky solution to make the wireless controller work.

# kldload uhid

You have to use the evdevfbsd project with my patch that creates a /dev/input/event? to be able to use it with firefox, sdl? etc...

$ git clone https://github.com/jiixyj/evdevfbsd


patch.evdevfbsd :

Code:
--- backend-uhid.c.orig    2025-03-02 15:14:35.479968000 +0100
+++ backend-uhid.c    2025-03-02 15:16:06.365312000 +0100
@@ -323,6 +323,9 @@
         } else if (!strcmp(b->application_usage, "Joystick")) {
             slot = b->hiditem_slots[b->hiditems_used] =
                 (uint16_t)(BTN_JOYSTICK + (int)usage - 1);
+        } else if (!strcmp(b->application_usage, "Game_Pad")) {
+            slot = b->hiditem_slots[b->hiditems_used] =
+                (uint16_t)(BTN_JOYSTICK + (int)usage - 1);
         } else {
             return -1;
         }

To make evdevfbsd work:
# ./evdevfbsd /dev/uhid3

Unfortunately if you test the controller under firefox, the buttons work but firefox freezes.
Higan who uses sdl freezes too.
 
Back
Top