====== SF30 Pro ====== Mando bluetooth con aspecto de mando de Super NES * [[https://www.8bitdo.com/|Web oficial]] * [[https://download.8bitdo.com/Manual/Controller/SN30pro+SF30pro/SN30pro+SF30pro_Manual.pdf|Manual]] * [[https://support.8bitdo.com/|Soporte]] (manual y actualizaciones) ===== Configuración ===== Vendor: 0x2DC8 (8BitDo) Producto: 0x6000 (SF30 Pro gamepad) https://www.the-sz.com/products/usbid/index.php?v=2dc8&p=6000&n= El mando soporta 4 modos diferentes: * Switch (START + Y) * Android / Dinput (START + B) * Mac (START + A) * Windows / Xinput (START + X) ==== Linux ==== Para emparejar este mando hay usar el modo de emparejamiento Windows: Start + B Y luego pulsamos el botón de PAIR durante 3 segundos hasta que las luces LED se enciendan de izquierda a derecha. sudo systemctl start bluetooth.service bluetoothctl power on bluetoothctl [bluetooth]# scan on Discovery started ... [NEW] Device E4:17:D8:A5:F1:7B 8Bitdo SF30 Pro [bluetooth]# pair E4:17:D8:A5:F1:7B Attempting to pair with E4:17:D8:A5:F1:7B [CHG] Device E4:17:D8:A5:F1:7B Modalias: usb:v045Ep02E0d0903 [CHG] Device E4:17:D8:A5:F1:7B UUIDs: 00001124-0000-1000-8000-00805f9b34fb [CHG] Device E4:17:D8:A5:F1:7B UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device E4:17:D8:A5:F1:7B ServicesResolved: yes [CHG] Device E4:17:D8:A5:F1:7B Paired: yes Pairing successful [bluetooth]# trust E4:17:D8:A5:F1:7B [CHG] Device E4:17:D8:A5:F1:7B Trusted: yes Changing E4:17:D8:A5:F1:7B trust succeeded Si no se conectase solo: [bluetooth]# connect E4:17:D8:A5:F1:7B Attempting to connect to E4:17:D8:A5:F1:7B [CHG] Device E4:17:D8:A5:F1:7B ServicesResolved: yes Connection successful There’s no code or confirmation step so pairing is basically instant. * https://www.omgubuntu.co.uk/2019/06/8bitdo-sn30-pro-controller-linux-firmware ==== Android ==== - Encendemos el mando con Start + B - El LED 1 empezará a parpadear. - Mantener pulsado el botón PAIR durante 3 segundos para entrar en modo emparejamiento (las luces LED se moverán de izquierda a derecha) - Entrar en los ajustes Bluetooth del dispositivo Android y emparejarlo con **8Bitdo SF30 Pro** - Si todo ha ido bien, el mando vibrará y la luz LED quedará fija Una vez emparejado, el mando se conectará al dispositivo android al pulsar START. Si queremos usar dos mandos a la vez, debemos emparejar primero uno, apagarlo y luego emparejar el otro. Finalmente, encenderemos de nuevo el primero y debería conectarse también. ===== Uso por cable ===== ==== Linux ==== No es necesario instalar ningún driver/controlador. Sin hacer nada, el mando será reconocido como un dispositivo USB. Salida del comando ''lsusb'': $ lsusb (...) Bus 001 Device 010: ID 2dc8:6000 8BitDo SF30 Pro gamepad Sin embargo, esto no creará ninguna entrada en el directorio ''/dev/input/'' por lo que no podremos usar el mando. Para poder conectarlo en modo correcto, hay que mantener pulsado el botón B (modo **Dinput**) y a continuación conectar el cable al ordenador. De esta manera se habrá creado ''/dev/input/js0'' y podremos verificar el funcionamiento con el programa ''jstest'': jstest /dev/input/js0 En Arch Linux, el programa ''jstest'' está incluido en el paquete ''joyutils''. ===== Actualizaciones ===== 8bitdo publica actualizaciones del firmware a través de [[https://fwupd.org/|LVFS]], así que se pueden utilizar programas como **fwupd**, **gnome-software** o **kde-discover** para actualizar el firmware de este mando: https://fwupd.org/lvfs/devices/com.8bitdo.sf30sn30pro.firmware Si tuviésemos MacOS o Windows, hay una herramienta oficial para realizar las actualizaciones de firmware: https://support.8bitdo.com/firmware-updater.html Para comprobar si hay actualizaciones para el mando, hay que conectarlo por cable y emparejarlo en modo Android. Sí, en modo Android, así es cómo funciona con fwupd. Hay que empezar con el mando apagado y desenchufado del ordenador. Encendemos el mando en modo Android (realmente llamado modo D-input): B + START (parpadea el LED 1) Conectamos el mando al equipo Linux con el cable USB. Se quedará fijo el LED 1. Comprobamos si lo reconoce: $ lsusb (...) Bus 001 Device 018: ID 2dc8:6000 8Bitdo SF30 Pro 8Bitdo SF30 Pro (...) Otra salida: $ lsusb Bus 002 Device 002: ID 2dc8:6000 8BitDo SF30 Pro gamepad En Arch Linux, el programa se instala mediante el paquete ''fwupd'' Comprobamos que funcione el servicio ''fwupd'' para poder comprobar y ver los dispositivos conectados: systemctl status fwupd ● fwupd.service - Firmware update daemon Loaded: loaded (/lib/systemd/system/fwupd.service; static; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 08:22:24 CEST; 24min ago Docs: https://fwupd.org/ Main PID: 2943 (fwupd) Tasks: 5 (limit: 4915) Memory: 24.5M CGroup: /system.slice/fwupd.service └─2943 /usr/lib/fwupd/fwupd ago 23 08:22:23 pepito-pc systemd[1]: Starting Firmware update daemon... ago 23 08:22:24 pepito-pc systemd[1]: Started Firmware update daemon. Si no estuviese activo, lo arrancamos con ''systemctl start fwupd'' Ahora revisamos si lo detecta el actualizador de firmware $ fwupdmgr get-devices 8Bitdo SF30 Pro DeviceId: 71413822e87deae707da948bd4b7e537af463c19 Guid: 043c7673-bd45-5e2e-b8b9-c22df2dfec2a Guid: b02f1319-c1c4-54f4-b7f2-5bb3552f6a9e Guid: e95bfb47-11f9-5afd-856e-fbc45730456d Guid: 269b3121-097b-50d8-b9ba-d1f64f9cd241 Summary: A redesigned classic game controller Plugin: ebitdo Flags: updatable|needs-bootloader|registered Vendor: 8Bitdo VendorId: USB:0x2DC8 Version: 1.33 VersionFormat: pair Icon: input-gaming Created: 2020-08-23 Si la versión indicada es menor que la última disponibel, realizamos el proceso de actualización: fwupdmgr install 8Bitdo-SF30_Pro-SN30_Pro-1.33.cab --allow-older Decompressing… [***************************************] Authenticating… [***************************************] Device 8Bitdo SF30 Pro needs to manually be put in update mode: Unplug the controller, hold down L1 + R1 + START until the red LED on top of the controller is flashing and then reconnect the controller. Nos indica que el mando debe ser puesto en modo actualización: L1+R1+START (en sucesión, pero sin dejar de soltar los botones previos). Si lo hemos hecho bien, el LED superior parpadeará y comenzará la actualización del firmware: > sudo fwupdmgr install 8Bitdo-SF30_Pro-SN30_Pro-1.33.cab --allow-older Decompressing… [***************************************] Authenticating… [***************************************] Installing on 8Bitdo …[ - ] Restarting device… [***************************************] failed to wait for replug after update: device did not come back En versiones anteriores del firmware, se detectaron [[https://retropie.org.uk/forum/topic/15162/lag-with-8bitdo-sf30pro|problemas de lag]]. Sin embargo, en la versión 1.33 parecen solucionados. * https://github.com/fwupd/fwupd/wiki/8BitDo-Controllers * https://jcastellssala.com/2020/02/02/firmware-update-sn30pro-on-linux/ * https://notes.georgboe.com/post/connect-an-8bitdo-gamepad-on-linux/