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

Acá vas a encontrar guías y tutoriales para aprovechar al máximo tus consolas, sistemas y PC.

Moderador: Diego

Responder
Avatar de Usuario
the98
Check Point!
Check Point!
Mensajes: 9505
Registrado: 03/07/12 11:45

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

Mensaje por the98 » 25/05/16 22:37

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.

Avatar de Usuario
Alexei
Check Point!
Check Point!
Mensajes: 14170
Registrado: 12/01/12 9:14

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

Mensaje por Alexei » 26/05/16 0:32

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.

Avatar de Usuario
powerful
Metal Gear Solid Player
Metal Gear Solid Player
Mensajes: 2689
Registrado: 22/10/08 13:08
Ubicación: Colombia
Contactar:

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

Mensaje por powerful » 26/05/16 1:18

Vea pues, que bueno hacer eso, pero si uno usara una app se podriá?
Rysen 3700x-Noctua DH-D15 Cooler- ASRock x570 Steel Legend Wifi AX-DDR4 16GB Patriot Viper Steel 3866-MSI Duke 1080 Ti-Asus VG248QE 144hz-M.2 Nvme 1TB Silicon power-SSD Samsung 860 EVO 500gb-Discos.D 12TB-Creative Sound Blaster x-fi Titanium-Teclado Logitech G910-Mouse Logitech Pro Gaming-Case Cooler Master Cosmos 1000-Fuente Seasonic focus + 850w-Pioneer BluRay Burner.

-Atari 2600 -Nes -Family -Famicom -Snes- Sfc -Sega Genesis -Play Station 1 -Nintendo 64 -Dreamcast -Gamecube -Wii -Ps3 -GameBoy -GameGear -Nomad -Gameboy Advance -Gp2x -Nintendo DS Lite -3Ds -PSP -Retro Duo Portable -Retro Duo console -PS2 FaT 39001 -Xbox 80gb -Intel 486 Dx2 50mhz

Avatar de Usuario
fede2222
Fatality!
Fatality!
Mensajes: 8954
Registrado: 27/11/14 23:33

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

Mensaje por fede2222 » 26/05/16 8:00

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
Disponible... llamar al 123312394834

Avatar de Usuario
the98
Check Point!
Check Point!
Mensajes: 9505
Registrado: 03/07/12 11:45

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

Mensaje por the98 » 26/05/16 8:31

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?

Avatar de Usuario
fede2222
Fatality!
Fatality!
Mensajes: 8954
Registrado: 27/11/14 23:33

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

Mensaje por fede2222 » 28/05/16 12:07

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
Disponible... llamar al 123312394834

Avatar de Usuario
andresrivas
Avanzado
Avanzado
Mensajes: 99
Registrado: 15/02/15 22:01
Ubicación: Córdoba, Argentina

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

Mensaje por andresrivas » 06/06/16 22:42

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
Última edición por andresrivas el 10/10/17 10:45, editado 1 vez en total.


Responder