USB SPI Flasher con Arduino Round 1

Llevaba años esperando, tengo una 360 reservada para este momento, desde que me quede con cara de tonto, cuando me entere de que habia salido un exploit por JTAG, y que yo, no podia usarlo. Por que como usaba el Live tenia la consola actualizada a la ultima.

Asi que ya era hora! Bienvenido Reset Glitch!

He estado mirando para hacer acopio de materiales para cuando este disponible, y he visto que necesitare un SPI - USB para trabajar en la NAND. He visto el hilo del USB SPI Flasher, con el 18F2455. Le estado dando vueltas a la posibilidad de adaptarlo al 18F2550, del cual tengo alguna decena. Pero creo que seria mejor desarrollarlo para el arduino.

Lo que igual a este combate llego tarde y eso es algo que alguien ya ha hecho y publicado. He buscado "por encima", y no he encontrado nada. ¿Alguien sabe si existe ya algun SPI - USB usable para este fin, con el Arduino?

Si no, seria simple, barato y al alcance de cualquiera. Solo hay que saber algunos detalles tecnicos del funcionamiento de la NAND en cuestion. El orden de los bits, la polaridad del clock, y la velocidad del bus. Nada que un paseo por un datasheet no pueda solucionar.

¿Que referencia tiene la NAND en cuestion? Aunque si abro la consola igual salgo de dudas. Que fin de semana me espera.
Suena atrevido este post jaja, el cpld le tienes también? O primero vas a leer la nand y luego ya veras¿?
El post, y el proyecto, es tan atrevido como parece. xDDD

Por lo pronto me conformo con poder leer la nand.
dreamgame escribió:El post, y el proyecto, es tan atrevido como parece. xDDD

Por lo pronto me conformo con poder leer la nand.


Bueno, pues tendrás a un "biestable" siguiéndote xD, si va bien yo seré el siguiente.
Je, je. Gracias hombre. Ya he empezado, aun no he abierto la consola, pero buscando una foto he visto la NAND en cuestion, o por lo menos uno de los varios modelos que usaran.

Me estoy mirando el datasheet del HY27UF082G2B para ver por donde empiezo. El datasheet dice que es de 256M x 8 bit con 8M x 8 bit de repuesto.

Voy a seguir leyendo, y a ver si mañana abro mi consola y veo si la referencia coincide con la mia.
Un flasher caro en mi opinión. Otra cosa seria coger el nano para hacer el Glitch
dreamgame escribió:... He visto el hilo del USB SPI Flasher, con el 18F2455. Le estado dando vueltas a la posibilidad de adaptarlo al 18F2550, del cual tengo alguna decena. Pero creo que seria mejor desarrollarlo para el arduino.
...


El USB SPI Flasher es compatible con el 18F2550 como puedes ver en este hilo:
hilo_tutorial-exploit-jasper-512mb-con-usb-spi-and-art2003_1370907

Si lo tienes, el resto es poca cosa.

No vale la pena meterse con Arduino, a menos que te guste 'cacharrear'.

Piensa que solo lo vas a usar una vez.

Saludos.
Po lo que cuesta un Arduino te puedes comprar uno de los cacharros todo en uno que hay, o habrá.
manugarrote escribió:Po lo que cuesta un Arduino te puedes comprar uno de los cacharros todo en uno que hay, o habrá.


Si, eso lo tengo claro. Pero ya hay gente que tiene Arduinos en su escritorio. A los que ya tengamos algun tipo de Arduino, nos saldra mas barato reutilizar lo que ya tenemos, que comprar un circuito nuevo. Máxime si es una utilidad de un solo uso.

Con respecto al precio, un Arduino Pro mini vale 18.95$, o mejor aun el chip con el bootloader del Arduino vale 7€. Y hay una cantidad de proyectos bastante grande, con los cuales darle utilidad, cuando ya has leido - escrito tu nand. Tener en cuenta tambien que los Arduinos ya estan en el mercado y cualquiera puede hacerse uno.

Sobre la posibilidad de hacer el Reset Glitch con el Arduino, habra que ver que sea capaz de generar un pulso tan corto. Segun el readme los pulsos de reset necesarios son de 100 ns, en principio no me parece un valor imposible, pero habra que ir paso a paso.
dreamgame escribió:
manugarrote escribió:Sobre la posibilidad de hacer el Reset Glitch con el Arduino, habra que ver que sea capaz de generar un pulso tan corto. Segun el readme los pulsos de reset necesarios son de 100 ns, en principio no me parece un valor imposible, pero habra que ir paso a paso.

Eso no será ningún problema si se utiliza cualquiera de los pines que soportan PWM (Pulse-width modulation) de las librerías apropiadas. Cualquier ejemplo de control de servos sería perfectamente reutilizable.

El principal problema será el acondicionamiento de la señal, Arduino te puede dar como salida de un pin 5 ó 3,3V, no sé que voltaje habrá que meterle al micro, pero eso es una burrada.
Hola he leido el post y no he podido resistirme a dar mi opinion ya que, como mucha gente, tambien tengo un Arduino Duemilanove y por el mero hecho de cacharrear ya me resulta algo interesante. En mi opinion generar el pulso de 100ns no es para nada dificil empleando las funciones propias de los micros Atmel sin usar el DigitalWrite de la libreria Wiring, que consume una burrada de ciclos de reloj. El mayor problema que le veo es el software para leer/dumpear la memoria flash o nand, ya que la mayoria de las placas Arduino que ahi disponibles en el mercado emplean una comunicacion usb basada en modem virtual, mientras que imagino que el conversor hecho con el pic empleara una comunicacion de tipo Bulk empleando la libreria libusb o Winusb. Esto haria que la primera dificultat fuera hacer un software compatible con el que leer la memoria. Salvando ese problema habria que ver como esta organizada la memoria y leerla, lo cual no creo que sea demasiado complicado.
Si necesitais ayuda yo puedo colaborar aportando lo poco que se.
Salu2 [bye]
anrusal escribió:Arduino que ahi disponibles en el mercado emplean una comunicacion usb basada en modem virtual, mientras que imagino que el conversor hecho con el pic empleara una comunicacion de tipo Bulk empleando la libreria libusb o Winusb.


Bueno, el Arduino se comunica con el PC con un puerto serie, asi que, una vez hayas conseguido leer la NAND, la vuelcas por el puerto serie segun van saliendo los bytes. Funcionaria desde la consola serie del propio Arduino, y podrias hacer un copy-paste de los datos recibidos.

Una vez que realicemos el proceso correctamente, se podria implementar un sketch en Wiring, desde donde realizar todas las operaciones sin tener que usar la consola serie. En realidad el sketch en Wiring, realizaria las operaciones mediante el puerto serie, solo que para el usuario seria transparente.

anrusal escribió:Si necesitais ayuda yo puedo colaborar aportando lo poco que se.


Se acepta.
Ahora mismo estoy mirando como conectar la NAND de la XBOX al Arduino, planeo usar la libreria SPI para manejar las comunicaciones, ya que por lo que he leido por ahi, es como lo hacen.
El primer objetivo, es bastante obvio. Leer la NAND. A partir de ahi, iremos avanzando.
Todos los codigos y esquemas, seran publicados con licencia GPL.

Pasame un MP si estas interesado en colaborar. Se aceptan colaboradores.
una pregunta que arduino usas????? yo tengo el duemilanove si necesitas un conjillo de indias solo tienes que decirlo
VincentM escribió:
dreamgame escribió:... He visto el hilo del USB SPI Flasher, con el 18F2455. Le estado dando vueltas a la posibilidad de adaptarlo al 18F2550, del cual tengo alguna decena. Pero creo que seria mejor desarrollarlo para el arduino.
...


El USB SPI Flasher es compatible con el 18F2555 como puedes ver en este hilo:
hilo_tutorial-exploit-jasper-512mb-con-usb-spi-and-art2003_1370907

Si lo tienes, el resto es poca cosa.

No vale la pena meterse con Arduino, a menos que te guste 'cacharrear'.

Piensa que solo lo vas a usar una vez.

Saludos.


Tambien puedes usar el 18f2550, creo que es mas comun que el 18f2455 o el 18f2555, este ultimo es primer vez que escucho que es compatible, tu escogeras el que consigas primero...

un saludo...
Mincho escribió:
VincentM escribió:
dreamgame escribió:... He visto el hilo del USB SPI Flasher, con el 18F2455. Le estado dando vueltas a la posibilidad de adaptarlo al 18F2550, del cual tengo alguna decena. Pero creo que seria mejor desarrollarlo para el arduino.
...


El USB SPI Flasher es compatible con el 18F2555 como puedes ver en este hilo:
hilo_tutorial-exploit-jasper-512mb-con-usb-spi-and-art2003_1370907

Si lo tienes, el resto es poca cosa.

No vale la pena meterse con Arduino, a menos que te guste 'cacharrear'.

Piensa que solo lo vas a usar una vez.

Saludos.


Tambien puedes usar el 18f2550, creo que es mas comun que el 18f2455 o el 18f2555, este ultimo es primer vez que escucho que es compatible, tu escogeras el que consigas primero...

un saludo...


Lo del 18f2555 es un error de tecleo como se puede ver en el hilo que menciono. Me refería al 18f2550.
Ahora lo corrijo.

Saludos.
Ya estoy con un 2550 trasteando a ver como funciona.

[edit 7-9-2011]

Ya tengo todos los materiales para empezar. Me he hecho un USB-SPI Flasher con un 18F2550, y he puesto un zocalo a los puertos J1D2.1 y J2B1. Mañana probare a ver que tal funciona.

He estado leyendo un poco el datasheet de la NAND, y ha surgido una duda. Y es que ese chip no tiene interfaz SPI, tiene un bus de 8 bit en paralelo, que sirve de entrada y salida de los comandos y el contenido de la memoria, poniendo a 1 o 0 los pines CLE, ALE, RE# y WE#.

Me pregunto como funcionara el USB-SPI Flasher, ¿Habra una electronica que se encargara de realizar la conversion paralelo-serie, y es contra la que nos comunicamos ? A estas alturas tengo claro que la FLASH no es SPI. Asi que me supongo que los comandos para la lectura y escritura que aparecen en el dataheet, no van a servir de nada.

Tendre que buscar mas info, he encontrado un hilo en el que creo que encontrare respuestas, pero tiene 52 paginas...

Mañana más.

[EDIT 2 9-9-2011]

Ya me he leido el hilo completo, pero como sucede en otros tantos hilos tecnicos, hay mucha paja. Ni rastro de informacion de como se hace el dump. Podria mirar en el codigo fuente, pero he encontrado una analizador logico para el arduino que me sera mas util incluso a corto plazo. Asi podre comparar lo que vea en el codigo fuente con los bytes que entran y salen.

A quien le interese el analizador logico, todo lo necesario esta aqui. Yo estoy con el Arduino Uno.

http://arduino.cc/forum/index.php?topic=52881.0

Quizas alguno de vosotros puede escribir algo por aqui para reflotar el hilo. Ya que visitas recibe.
Buenas, podias poner el modelo de la memoria Nand o algun enlace al datasheet para que los demas podamos hecharle un ojo y ayudarte. Sin ver el catalogo me temo que poco podremos colaborar el resto jejej.
Salu2.
En mi caso, que estoy con una falcon. Es un HY27US08281A 16MB. Y este es su datasheet.

Pero es irrelevante, por que no tiene interfaz SPI, De hecho el USB SPI Flasher, se comunica con el SMC y es este el que hace la conversion de datos hacia la NAND.

anrusal ¿tienes conocimientos del C de microchip?
Hola dreamgame, tengo mas conocimientos sobre programacion de micros Atmel y de la serie A7 y M3 de ARM. Esta tarde le hechare un ojo al datasheet y te comento como lo veo por MP.
Salu2.
Yo he programado, incluso profesionalmente, con micros de Atmel, sobre todo los Mega de 8 bits. Pero claro, todo eso es obviando el tema del bootloader del Arduino y programando con un MKII.
Quiza mirando el codigo fuente del picflash ilumine la causa. [poraki]

http://free60.git.sourceforge.net/git/g ... f=picflash
Bueno pues apunto aportando todo lo que pueda, que porfin e consebuido una xbox360 de segundamano ya la tengo desmontaddita para darle caña que segun creo es la falcon ( no se como mirar el modelo de la nand xd sin desmontar los disipadores) y tambien tengo un arduino mega.
Y esta tarde tengo que ir a por el izard y el skorpiom 2.

Un saludo a todos.
Me uno a la causa!!!
Yo tmb estuve buscando información porque quiero armar el nand dumper con un PIC18F4620 que ya tengo armado en placa... Si bien este pic no tiene para comunicarse por USB, lo tengo adaptado con un FT232RL para comunicarse por USB. Osea que debería servir perfectamente como dumper, la cuestión es que no encuentro en ningun lado el codigo fuente que utiliza el PIC de esta guia (hilo_tutorial-exploit-jasper-512mb-con-usb-spi-and-art2003_1370907) ya que en la descarga solo esta el archivo .hex
Si pudiera conseguir el codigo fuente que genero ese archivo, traducirlo a un PIC18F4620 seria bastante facil creo.... No me pongo a programarlo yo mismo porque no tengo idea que tratamiento hay q darle a la NAND para leerla y escribirla (eso es lo q querría ver en el codigo fuente)

Estaría bueno armar algun guideline de como se lee la NAND asi quien quiera puede crear su propio nand dumper con el micro que quiera.....

saludos
22 respuestas