Configurando Um Controle Bluetooth no Retropie
Autor: Ronaldinho | Publicado: 2016-05-21T15:00:00-03:00




Quando estava testando controles no Retropie, tentei ligar um controle FC 30 da 8Bitdo e não consegui. Depois de algum tempo percebi que meu problema era o dongle bluetooth que não é compatível com o Raspberry Pi. Neste link existe uma lista de adaptadores compatíveis. O adaptador que eu estava usando é este e segundo a lista não funciona mesmo:

"Super Mini Bluetooth 2.0 Dongle. The device is recognized and after installing bluez-firmware you can bring it up with hcitool hci0 up. However whenever you try to pair with any device it will cause kernel panic and lock up the system. Confirmed on Raspbian, RaspBMC. The device is a counterfeit Cambridge Silicon Radio device, probably with several bugs in it causing lockups."



Agora estou usando este aqui e vou mostrar como conectar um FC 30 e no próximo post um controle de PS3. Acredito que o procedimento para o FC 30 servirá para outros controles bluetooth.
Primeiro certifique-se que esteja com um teclado configurado no EmulationStation como controle, estando as setas como direcionais, isto será necessário mais a frente.

Pelo EmulationSation indo na opção Retropie, existe a opção bluetooth. Por esta opção iremos para o menu de configuração do bluetooth, basta escolher já com o controle ligado:

1 Register and Connect to Bluetooth Device

Ele irá listar o controle, então basta selecionar, na próxima opção escolha DisplayYesNo e o controle irá se conectar. Caso ele entre na tela de senha, deixe a padrão 0000 e ele vai pedir para digitar no dispositivo, para isto aperte qualquer botão do controle. Com o controle conectado, é hora de um trabalho um pouco mais árduo, este procedimento é necessário nos controles da 8Bitdo e acredito que não seja necessário em outros controles bluetooth.

Saia do EmulationStation com F4 ou acesse o Raspberry Pi via ssh. Digite o comando:

sudo bluetoothctl


Será listado algo como abaixo:

[NEW] Controller 00:1A:7D:DA:71:11 retropie [default]
[NEW] Device 76:6F:6F:F7:7F:81 8Bitdo FC30 GamePad


Aqui iremos precisar da informação do nome do controle, neste caso é:
8Bitdo FC30 GamePad. Este nome será usado logo abaixo. Para sair digite exit.

Vamos agora criar um arquivo para as regras do udev usando o comando:

sudo nano /etc/udev/rules.d/10-local.rules


Ele irá abrir o nano que é um editor de texto, dentro dele digite ou cole (caso esteja no ssh) a seguinte linha:

SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"


Em ATTRS{name} foi usado o nome do meu controle, que foi achado com o comando bluetoothctl. Usando o nome correto, salve com CTRL + x, depois y e depois ENTER. Agora basta reiniciar pelo emulationstaton ou com o comando:

sudo reboot


De volta ao EmulationStation após o reboot, é hora de configurar o controle pelo MENU/CONFIGURE INPUT. O único detalhe aqui é que os direcionais que são os quatro primeiros botões a serem configurados, não precisam ser configurados, passe direto por eles usando o direcional do controle ou do teclado e comece no START.

Isto acontece porque este controle no modo joystick, é metade gamepad e metade teclado, os direcionais funcionam como teclado e os botões como gamepad, por isso foi necessário configurar um teclado conforme acima. Não sei sobre outros controles 8Bitdo se também funcionam assim.

Para conectar o controle nas próximas vezes, inicie o Retropie e após iniciado basta ligar o controle. Existe relatos de alguns poucos controles que não reconectam após o desligamento/reboot do sistema, neste caso é necessário os passos descritos aqui, na parte:
Step 2.5 - Forcing the Pi to reconnect to the controller