Página 1 de 1

Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 25/05/16 22:37
por the98
Estoy tratando de meterle un Wiimote a un celular, pero no quiero instalar ninguna App en el proceso. Parece que activando el bluetooth del celular, éste es capaz de reconocer el wiimote por defecto, pero pide un PIN.

Luego de una ardua tarea googleando, me encuentro con esto:

https://web.archive.org/web/20160324052 ... th_Pairing

Que lo tuve que rescatar con web archive, porque el sitio no anda actualmente.

En fin, citando lo que entiendo que hay que hacer:
Bluetooth pairing must be initiated by the host by sending a "Require Authentication" HCI command to its bluetooth device. The bluetooth device will ask the host for a link key, which must be rejected so it will ask for a PIN-Code. The PIN-Code is the binary bluetooth address of the wiimote backwards. Following a short piece of C code to calculate the PIN:

Lets assume the Wiimote has the bluetooth address "00:1E:35:3B:7E:6D". If you want the PIN for bluetooth pairing in a simple string, do the following:

char pin[6];
pin[0] = 0x6D;
pin[1] = 0x7E;
pin[2] = 0x3B;
pin[3] = 0x35;
pin[4] = 0x1E;
pin[5] = 0x00;

Now "pin" contains your bluetooth pin that should be used for pairing your devices.

If connecting by holding down the 1+2 buttons, the PIN is the bluetooth address of the wiimote backwards, if connecting by pressing the "sync" button on the back of the wiimote, then the PIN is the bluetooth address of the host backwards
Bueno, se supone que nos da este código en C, donde simplemente ponemos la Mac address del Wiimote, o del host (dependiendo del método que usemos para sincronizar). Eso de por sí, me suena medio raro, pero en fin.

Primero que nada, el código así como está no es reconocido, entonces googleando encontré a uno que lo "C-ificó":

Código: Seleccionar todo

#include <stdio.h> 

int main(void) 

{
 char pin[6];
 pin[0] = 0x6D;
 pin[1] = 0x7E;
 pin[2] = 0x3B;
 pin[3] = 0x35;
 pin[4] = 0x1E;
 pin[5] = 0x00;
 
 printf("the password is:\n"); printf("%s \n", pin ); 
}
Cuando corrés este código, te da un resultado raro. Pero antes de llegar al resultado, lo primero que me genera duda es si el proceso es tan sencillo como escribir cada intervalo de la MAC Address con un "0x" adelante. Eso de por sí me hace un poco de ruido. Yo no sé nada de C, ni tampoco sé qué es char, ni qué se supone que debe hacer.

Entonces, la primera duda es si la MAC está bien ingresada con ese método. Suponiendo que el código en C esté bien escrito y definido.

Luego, lo que resta es definir si el código te da algo que sea legible por humanos, y por lo tanto que sirva para ser ingresado como PIN, o si es solamente un código interpretado por computadoras. En tal caso me cabe, y tengo que instalar una app, cosa que no voy a hacer :P

En fin, a ver los capos de la programación del foro tienen alguna idea para aclararme un poco el panorama.

Gracias.

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 26/05/16 0:32
por Alexei
He aqui un capo del foro, aunque no se programar ni el Betamax, te digo que esto del Wiimote con Android lo he intentado varias veces sin resultados.

In the past I've tryed a lot, but cuando lei esto I give up:
Note about Android versions with incompatible Bluetooth support: Certain versions of Android won't function with Bluetooth controllers due to software issues from the manufacturer (notably those by HTC). If possible, you should try to root the device and install a custom rom such as CyanogenMod to resolve the problem. Also, Android 4.2 cannot currently use Wiimotes due to Google's new Bluetooth implementation. Please star issue #58164 on the Android Google Code site in hopes Google adds proper support in a future OS update.
El lio esta en el código de Android que no deja conectar los Wiimotes, dicen por ahi que se puede pero o hay que rootear o instalar apps o esas cosas del diablo. A mi no me va tampoco because I prefer my systems as plain as possible, no garbage apps.

En fin, me interesa eso de la direccion MAC de los dispositivos bluetooth, quizas si algun genio se las apaña, me podria servir para aparejar unos parlantes bluetooth que tengo y que cuando los conecto a la PC me pide el código, y no lo tiene en ningun lado, supongo que esto de descifrar la Mac address should work.

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 26/05/16 1:18
por powerful
Vea pues, que bueno hacer eso, pero si uno usara una app se podriá?

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 26/05/16 8:00
por fede2222
No entiendo porque usar un programa para dar vuelta los dígitos de la Mac....

Si la Mac del wiimote es A:B:C, tendrías que poner C:B:A..

El 0x indica al lenguaje que el número que vas a guardar en la variable está en sistema hexadecimal.

Enviado desde Koprulu Sector

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 26/05/16 8:31
por the98
Fede, fijate que dice algo del sistema binario en la cita... No me queda claro, por eso pregunto.

¿Vos entendés qué se supone que hace el código en C que está posteado?

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 28/05/16 12:07
por fede2222
No anda mas el link original...

Si, lo único que hace ese código en C es mostrarlo dado vuelta y en string, o sea en caracteres..

Dado vuelta es por requerimiento para ponerlo como clave, y que lo imprime en string puede ser para pasarlo de hexa a decimal o binario. Lo que no me acuerdo sin probarlo es si %s de un hexa te lo devuelve en binario o hexa, pero seguro es uno de los dos.

Esto lo pueden hacer tranquilamente con la calculadora de windows

Pones el modo avanzado, la seteas en hexa.. ingresas F, si lo pasas a decimal te devuelve 15, si lo pasas a binario te devuelve 1111

Para hacer un ejemplo, supongamos que la MAC sea 0A:0F

Dada vuelta sería 0F:0A
(A) En decimal 15 10
(B) En binario 0000 1111 0000 1010

Habría que probar ingresar como pin bluetooth los valores de (a) o (b)

Enviado desde Koprulu Sector

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 06/06/16 22:42
por andresrivas
Android, desde 4.1 en adelante, perdió compatibilidad con los Wiimotes. Un problema en la implementación del Stack Bluetooth. Supuestamente es una pelotudez, pero nadie en Google quiere aceptar y comitear el cambio, calculo yo para darle mas relevancia a los Moga

Re: Wiimote en Android: The Hard Way (a ver si sale)

Publicado: 11/12/16 1:06
por zeldaww