[Investigacion] Reparar Baterias de los packs carga y juega.

Hola, después de varios años usando solo el cable del pack carga y juega porque la batería murió casi el primer día, me he propuesto repararla. Lo primero que me sorprendió fue encontrarme con dos pilas recargables normales y molientes AA conectadas a un PCB que se encarga de monitorizar la carga. En este PCB se distinguen dos sistemas para monitorizar la carga:

El primer sistema utilizaría un sensor de temperatura que podría ser utilizado por un cargador externo casero (como este por ejemplo). Este sistema es ignorado por completo por el mando de la XBOX360 dado que ni si quiera esta conectado físicamente al mando. Sospecho que alguno de los kit de carga rápida no oficiales utilizarán este sistema por la facilidad que presenta utilizar este sistema y por tanto serian casi totalmente inmunes a fallos, dado que simplemente cargan hasta que la batería se ponga caliente.

El segundo sistema es algo mas complejo e involucra a una memoria EEPROM I2C 2404. En el caso de mis baterías el numero de referencia de la memoria es el ATMLH810 aunque en otro foro he visto que la referencia cambia (concretamente Atmel 24C04N) en cualquier caso la información debería ser legible por cualquier programador capaz de leer memorias EEPROM I2C 2404. Por supuesto como ya sospechareis este sistema complejo y por tanto sujeto a fallos es el que usa el mando de la XBOX360. Concretamente según he podido leer en otros foro lo que pasa es que la información contenida en la EEPROM se corrompe y provoca que el mando no haga bien el ciclo de carga.

Por otra parte el cable oficial tiene algo de circuitería para controlar la carga y el cambio de luz. Mayormente se basa en el lm393 y un par de transistores. Una señal proveniente del mando (PIN4) activa o desactiva la carga. Aunque absurdamente compleja esta circuitería debería funcionar bien y es totalmente independiente de la EEPROM. Lo único que hace es cargar o no en función de lo que diga el mando. Algunos cables Carga y Juega no oficiales cargan la batería ignorando lo que diga el mando por lo que serian inmunes a fallos en las mediciones del mando. Una posible solución seria tunear este cable para que cargara pasando de lo que diga el mando. Como no veo muy claro como parar la carga de forma simple para no estropear la batería, de momento he descartado esta opción.

Ha estas alturas tenía claro que el problema esta en la dichosa EEPROM por eso me fabriqué un programador ultra simple y barato para leerla. Las instrucciones para fabricarlos las tenéis aquí, se usaba para leer las EEPROM de la XBOX1 pero sirve también para leer la EEPROM del mando.

Segun la información del otro foro la EEPROM seguiría la siguiente estructura:
0x00-0x0D: Numero de serie de la batería codificado en ASCII (seguido de 0xFFs).
0x20-0x3F: Cadena "XBOX Battery Pack" (seguido de 0xFFs).
0x80-0x80: Marca de la baterias AA (seguido de 0xFFs) (En el foro era el volcado ponía "HR-3U-2100" en el mio pone "GP210AAHC").
0x90-0x96: Campo interesante los dos primeros bytes son iguales a los dos siguientes el resto esta puesto a FF. Quizás defina una característica de la batería.
0x97: 8-bit Checksum Ca2 del área 0x90-0x93. Podéis usar www.planetimming.com/checksum8.html para comprobarlo.
0x99-0x9E: Probablemente relleno sin valor (vale todo FF).
0x9F: Este byte esta a:
        0xFF cuando la batería nunca se ha cargado.
        0x01 cuando la batería se carga por primera vez.
        0x00 En mi volcado. Me imagino que es una forma de decir que esta mal.
0xA0-0xA6: Datos que se desconoce que hacen.
0xA7: 8-bit Checksum Ca2 del área 0xA0-0xA6. Podéis usar www.planetimming.com/checksum8.html para comprobarlo.
0xA8-0xAE: Datos que se desconoce que hacen. Pero igual al area 0xA0-0xA6 ¿sera un campo redundante?
0xAF: 8-bit Checksum Ca2 del área 0xA8-0xAE. Podéis usar www.planetimming.com/checksum8.html para comprobarlo.


La solución que proponen en el otro foro es leer una EEPROM en buen estado y copiarla en la batería que este estropeada, el problema es que si quisiésemos comprar una batería nueva en buen estado no nos plantearíamos reparar la vieja no? o si? XD y el intercambio publico de binarios es algo peliagudo (aunque sea una chorrada como esta). Por todo esto me he propuesto desarrollar una aplicación ultra simple que sea capaz de leer nuestra EEPROM repararla y escribirla y claro esta sin necesidad de un volcado de una EEPROM en buen estado (me imagino que un parcheador no sera ilegal).

Para realizar este proyecto necesito información sobre las áreas desconocidas, así que agradeceré vuestras sugerencias. No he querido copiar las imágenes de la fuente por lo que hasta que pueda hacer mis propias imágenes por favor ir a la fuente.

Fuentes:
http://forums.xbox-scene.com/index.php?showtopic=555361
Agradecimientos a RDC de quien de sus investigaciones he obtenido todo mi conocimiento sobre este tema.

Actualización:
Después de toquetear por aquí y por allá he descubierto el pin que se encarga de detectar el nivel de carga dentro del mando. He sustituido la resistencia por una resistencia de igual valor puesta en serie con un potenciómetro de 0-100k y variando este consigo engañar aumentar o disminuir el nivel de la batería de forma ficticia. Esto hace que la carga se inicie o no. Creo que con esto he solucionado el problema de los malditos carga y juega ahora tengo que esperar a que uno se me descargue para tratar de calibrar la resistencia y repetir el proceso hasta obtener un valor del potenciómetro promedio que pueda poner en un tutorial.

Por otra parte creo que ha exepción del campo "0x20-0x3F" que tiene que contener la cadena "XBOX Battery Pack" (seguido de 0xFFs) para que el mando la reconozca, el resto de campos solo sirven para obtener información sobre la batería pero no aporta nada al proceso de carga (O al menos eso me ha parecido después de modificar el HEX de varias formas). Esto ademas cuadraría con el echo de que conectando y desconectando muchas veces y de mas triquiñuelas que he ido leyendo se consiga que el mando comience a cargar. Si fuera algo que esta escrito en una EEPROM no creo que se pudiera "engañar" por mucho que nos empeñáramos sin embargo un nivel de corriente o voltaje puede que sea un poco mas bajo o un poco mas alto de una conexión a otra suficiente para que comience la carga.

Si alguien me quiere ayudar podría hacerlo midiendo el valor de la resistencia en algún controlador que tenga menos de dos años. Si hay algún interesado que me lo diga y así hago fotos de la resistencia que hay que medir.

Actualizacion 2:
Pinout del cable carga y juega mirando el cable de frente de izquierda a derecha:
1- GND
2- 4,7V Este pin esta unido al de 1 de una forma algo creativa. Tanto durante el proceso de carga como cuando para el proceso de carga su valor es el mismo.
3- Suministra la tensión para cargar la batería.
4- Este pin esta conectado al IC principal del mando valor alto durante la carga, bajo cuando para la carga.
5- USB D+
6- USB D-
7- USB 5V

Actualizacion 3:
Al final veo que solo se va a poder solucionar de forma parcial porque el valor que se necesita para que inicie la carga el kit carga y juega cuando esta descargado hace que el nivel cuando esta cargado a tope no llegue a rellenar las cuatro rayas por lo que la carga nunca parará. El valor que he calculado es de unos 21.5k.

La única solución que se me ocurre es la de utilizar el sensor de temperatura (que a fin de cuentas es una resistencia que disminuye el valor con la temperatura) para parar la carga. La idea funcionaria de la siguiente forma
1º La batería inicia la carga la temperatura de las pilas deberia estar a temperatura ambiente. La resistencia del sensor esta en torno a 7,5K.
2º La batería alcanzaría su carga máxima.
3º Cuando la batería alcanza su carga máxima empieza a transformar la energía en calor. Las mediciones que hice daban 5.8K cuando la bateria estaba siendo cargada una vez terminada la carga.
4º Como el valor de la resistencia del sensor a bajado por debajo del limite para continuar la carga la carga finaliza.

Este sistema permitiría además cargar baterías de mayor capacidad hasta su carga máxima porque todas las baterías aumentan su temperatura cuando ya están cargadas (y no antes). Actualmente aunque se tenga un mando cargue bien, sospecho que como las baterías originales son de 2100mah por mucho que se pongan baterías de 4000mah la carga que recibirá seguirá siendo la misma.

Existen detalles a tener en cuenta con esta solución:
El primero es que cuando la batería se enfrié si apagas y enciendes el mando con el C&J o si desconectas y vuelves a conectar el C&J, el mando intentara cargar la batería otra vez. Realmente esto no es demasiado importante porque si la batería se había descargado un poco la volverá a cargar y parara y si no parara también en ambos casos tardara un poco hasta que la batería alcance la temperatura de desconexión. En el caso de que el mando este encendido y tu le dejes el C&J conectado no es problemático porque el mando solo vuelve a iniciar la carga después de que el C&J se apagie y vuelva a encenderse.

El segundo detalle es que el gráfico de la batería que muestra la consola no dara una informacion demasiado valida. A mi personalmente no me importa porque Mientras el C&J muestra una luz verde cuando este cargada la batería y el mando se apague cuando este descargada la batería no me hará falta tener mas indicaciones.

Actualización 4:
Después de hacer varias pruebas he podido comprobar que si aumento la resistencia la carga se inicia siempre pero nunca llega a parar automáticamente (ni siquiera usando la resistencia térmica). La única solución que me queda es probar a regular la corriente con algún transistor pero para eso necesitaré tiempo para informarme en algún foro de electrónica.
hombre como hobby esta bien.. pero te merece la pena???

lodigo porke en mininthebox tienes baterias a 4 euros con su cargador y envio gratis... y en 15-20 dias estan en casa.

pero si es algo personal para ti ... animo, a ver si das con la tecla
xboxadicto escribió:hombre como hobby esta bien.. pero te merece la pena???

lodigo porke en mininthebox tienes baterias a 4 euros con su cargador y envio gratis... y en 15-20 dias estan en casa.

pero si es algo personal para ti ... animo, a ver si das con la tecla


Hombre de momento a mi me a salido gratis porque tenia hasta los componentes por casa todos los componentes (bendita diogenes) y el tiempo no creo que llegue a invertir mas de 15 días en ver cuales de esos 14 bytes hay que modificar (espero [angelito]). Una vez hecho podrás reparar las baterías oficiales por menos de 1.5€ y usar el cacharro tantas veces como te haga falta e incluso quizás hacer baterías de mayor capacidad/duración aunque esto no es mi objetivo inicial.
mm yo repare el carga y juega original de xbox360 la bateria ya murio con su tiempo,dentro de la bateria del carga y juega solo hay 2 pilas recargables de 2100 mh sanyo soldadas con una latita,solo tienes que resplasar estas pilas recargables por una iguales o mejores yo le puse una de 3200 y funcionan muy bien :)
esque aqui hablan del problema del mando del xbox no de la pila, me ha ocado algunos controles que tienen esa falla, entonces remplazo conpilas nuevas y en buen estado y no jalan bien pork como k se desprograma y reconoce menos o en veses nada de carga, pero si la cambias a otro control si jala bn
vamed15 escribió:esque aqui hablan del problema del mando del xbox no de la pila, me ha ocado algunos controles que tienen esa falla, entonces remplazo conpilas nuevas y en buen estado y no jalan bien pork como k se desprograma y reconoce menos o en veses nada de carga, pero si la cambias a otro control si jala bn


Esto me resulta útil, sabes de algún sitio donde amplíen esta información, actualmente estaba programando la eeprom modificandola de varias formas y he completado una carga, pero quizás sea casualidad y la culpa sea del mando.

Como dices axel es posible remplazar las pilas cuando se vuelven viejas pero el problema esta en que estas pilas no son viejas simplemente el mando se niega a cargarlas.
Una forma mas sencilla de arreglar, cuando el mando diga "no cargo porque no me sale de los huevetes" le quitas la bateria y el carga y juega , en pones unas pilas alcalinas cargadas a tope, las usas un poco y pruebas a poner el carga y juega.... por lo menos a mi me ha funcionado
neoguito escribió:Una forma mas sencilla de arreglar, cuando el mando diga "no cargo porque no me sale de los huevetes" le quitas la bateria y el carga y juega , en pones unas pilas alcalinas cargadas a tope, las usas un poco y pruebas a poner el carga y juega.... por lo menos a mi me ha funcionado


Por esto y porque tras unas cuantas pruebas veo que la información interna de la batería no afecta mucho a que se desconecte antes o después del cargador empiezo a pensar que el fallo va a estar en el mando. Debe de tener algún medio para mirar el nivel de la batería y se ve que no funciona bien. Intentaré seguir mirando.

Por cierto alguien sabe de alguna aplicación para mantener encendida la vibración del mando? me seria útil para consumir las baterías.

PD: La solución que propones no esta mal pero busco algo que solucione el error de forma definitiva.
no se yo solo te puedo decir que hagas lo que hagas como pongas a cargar el mando y apagues a los 5 mins tienes otra vez el problema ...... no se si sera de la batería o del mando pero ami me suena que el problema es enteramente del mando
neoguito escribió:no se yo solo te puedo decir que hagas lo que hagas como pongas a cargar el mando y apagues a los 5 mins tienes otra vez el problema ...... no se si sera de la batería o del mando pero ami me suena que el problema es enteramente del mando


De echo es así y creo que di con una posible solución lo he puesto en el primer post y consiste en añadir una resistencia mayor a la patilla que se encarga de medir la carga dentro del mando. Ahora tengo que ver cuanto mayor tiene que ser para que cuando la batería este cargada el mando la detecte cargada y cuando este descargada la detecte descargada.

Se que hay al menos 3 revisiones distintas del mando de la XBOX360. Yo tengo la que llaman CG me interesaría saber el valor de la resistencia en la versión CG2 y si esta revisión también tiene el mismo problema porque quizás el problema fue corregido (también puede ser que fuera corregido de otra forma). Los mandos mas antiguos llamados matrix tenían un IC principal distinto (tenían un IC para el wireless y otro para el resto de funciones) así que no puedo localizar la resistencia a modificar (si es que existe).

Si alguien quiere ayudarme puede mirar la versión de su mando en este post:
http://forums.xbox-scene.com/index.php? ... &p=4545116
Sigo tu hilo con mucho interés...

Yo tengo un mando CG y otro CG2. ¿Qué resistencia exactamente quieres medir?.

Yo con el multimetro podré hacerlo, me imagino.
laraiz escribió:Sigo tu hilo con mucho interés...

Yo tengo un mando CG y otro CG2. ¿Qué resistencia exactamente quieres medir?.

Yo con el multimetro podré hacerlo, me imagino.


Muchas gracias por el interés. La resistencia en cuestión es la R45 que esta localizada justo al lado derecho del conector de la batería. Me interesa saber que valor tiene en el CG2. Te dejo una imagen para que te sea mas fácil verla. Y por cierto el CG2 te da fallos con el C&J?
Imagen
Vaya, hay que abrir el mando ¿verdad? Pues no tengo Torx inviolable entre las herramientas :(

El pack de carga y juega oficial me duró una temporada y luego dejó de cargar. Ahora uso el mando con el pack y el cable conectados.

En el otro mando (CG), abrí el pack, cogí las pilas y las recargo sin problemas para usarlas.

No sé si esto te ayuda.

Lo de la resistencia hasta que no pueda abrir el mando, ni idea.
laraiz escribió:Vaya, hay que abrir el mando ¿verdad? Pues no tengo Torx inviolable entre las herramientas :(

El pack de carga y juega oficial me duró una temporada y luego dejó de cargar. Ahora uso el mando con el pack y el cable conectados.

En el otro mando (CG), abrí el pack, cogí las pilas y las recargo sin problemas para usarlas.

No sé si esto te ayuda.

Lo de la resistencia hasta que no pueda abrir el mando, ni idea.


Gracias por la info no te preocupes por la resistencia al final veo que solo se va a poder solucionar de forma parcial porque el valor que se necesita para que inicie la carga el kit carga y juega cuando esta descargado hace que el nivel cuando esta cargado a tope no llegue a rellenar las cuatro rayas por lo que la carga nunca parará.

La única solución que se me ocurre es la de utilizar el sensor de temperatura (que a fin de cuentas es una resistencia que disminuye el valor con la temperatura) para parar la carga. La idea funcionaria de la siguiente forma
1º La batería inicia la carga la temperatura de las pilas deberia estar a temperatura ambiente. La resistencia del sensor esta por 7,5K.
2º La batería alcanzaría su carga máxima.
3º Cuando la batería alcanza su carga máxima empieza a transformar la energía en calor. Las mediciones que hice daban 5.8K cuando la bateria estaba siendo cargada una vez terminada la carga.
4º Como el valor de la resistencia del sensor a bajado por debajo del limite para continuar la carga la carga finaliza.

Este sistema permitiría además cargar baterías de mayor capacidad hasta su carga máxima porque todas las baterías aumentan su temperatura cuando ya están cargadas (y no antes). Actualmente aunque se tenga un mando cargue bien, sospecho que como las baterías originales son de 2100mah por mucho que se pongan baterías de 4000mah la carga que recibirá seguirá siendo la misma.

Existen detalles a tener en cuenta con esta solución:
El primero es que cuando la batería se enfrié si apagas y enciendes el mando con el C&C o si desconectas y vuelves a conectar el C&J, el mando intentara cargar la batería otra vez. Realmente esto no es demasiado importante porque si la batería se había descargado un poco la volverá a cargar y parara y si no parara también en ambos casos tardara un poco hasta que la batería alcance la temperatura de desconexión. En el caso de que el mando este encendido y tu le dejes el C&J conectado no es problemático porque el mando solo vuelve a iniciar la carga después de que el C&J se apagie y vuelva a encenderse.

El segundo detalle es que el gráfico de la batería que muestra la consola no dara una informacion demasiado valida. A mi personalmente no me importa porque Mientras el C&Y muestra una luz verde cuando este cargada la batería y el mando se apague cuando este descargada la batería no me hará falta tener mas indicaciones.
Estos kits son una castaña, a mi cada vez que me toca cargarlo me da dolor de cabeza. No tengo un metodo fijo, voy probando por distintos USB, instalo y desinstalo drivers, conecto y desconecto... asi hasta q consigo q la maldita luz roja se quede fija. A veces tardo mas, a veces menos, pero siempre lo acabo consiguiendo.
por lo que he entiendo, parece que es un cargador rapido que tiene que usar unos 450-500mA,
que tiene que obtener del pueto USB, y no lo puede conseguir,
debido probablemente a su naturaleza madein china, y con menos no ira bien, de hay que fallen,
o puede que sea un cargador lento y este totalmente equivocado, se puede montar un esquema de algun
cargador lento, alimentarlo por USB a ver que pasa

saludos
sonoro escribió:por lo que he entiendo, parece que es un cargador rapido que tiene que usar unos 450-500mA,
que tiene que obtener del pueto USB, y no lo puede conseguir,
debido probablemente a su naturaleza madein china, y con menos no ira bien, de hay que fallen,
o puede que sea un cargador lento y este totalmente equivocado, se puede montar un esquema de algun
cargador lento, alimentarlo por USB a ver que pasa

saludos


Creo que es un cargador lento porque la carga rápida implica cargarlos con mas amperaje del que teóricamente esta preparado la pila para aguantar en una hora es decir mas de 2.1A. Yo creo que el problema esta en la detección del nivel de carga en el mando, de echo una de las cosas que soportan esta idea es que el mando también detecta mal el nivel de carga cuando se usan pilas normales.

Por otra parte si este fuera el problema la solución mas simple sería poner algún diodo/transistor que permitiera el paso de toda la corriente cuando las pilas estuvieran totalmente cargadas y un poco de corriente cuando no (es necesario que llegue algo porque si no el mando no enciende). Sin embargo mis conocimientos de electrónica son insuficientes para buscar este diodo/transistor por eso la solución que me he propuesto a sido la de usar el sensor de temperatura de las baterías y resistencia.

Teóricamente con un cargador externo USB la batería cargaría sin problemas.
16 respuestas