[TUTORIAL] PSGrooPIC Bootloader PASO A PASO.Este tutorial explica paso a paso la construcción de un PSGrooPIC, creado gracias al trabajo de ElSemi y J1M en el port de PSGroove a PIC, ideado por J1M en http://psgroopic.blogspot.com/ y modificado para bootloader.hex, aquí.
http://psgroopic.blogspot.com/Se necesita:Para PSGrooPIC.
Componentes: SW1 ----------------Puente Reset+2 pines
R1 ------------------10KΩ 1/4
R2,R3---------------330Ω 1/4
R Aux --------------10KΩ SMD(opcional)
C1,C2 --------------22pF ó 15pF,cerámico
C3 ------------------470nF ó 220nF,cerámico o electrolítico
C4 ------------------100nF,cerámico o electrolítico
D1,D2 ---------------led 3mm o led bicolor y D2 led 3mm
X1 ------------------cuarzo 8,12,16,20 Mhz(múltiplo x4)
PIC -----------------18F2550/2455 PDIP,SOIC
picś compatibles---18F4550/4455/2553/2450/4450
Zocalo --------------28 Pin ó 40 pin(18F4550/4455)
Conector -----------USB tipo A
Placa de cobre -----18x46mm
Copia en papel del fotolito PCB impreso con toner laser
o copia en transparencia del fotolito PCB si se usa insoladora.
y su versión con 2 LED y LED bicolor (BEEPIC casero)
Heramientas: Plancha doméstica vieja o insoladora
Cloruro férrico o atacador rapido
Broca 1mm
Sierra de marquetería
Soldador 30W,estaño,flux,etc...
Software: Winpic800
BootloaderUSBHIDC18_18F2550Trainer_V1.0
dotNetFx40_Full_setup
Visual C++ 2010 Redistributable x32
HID Bootloader V2.6b o MIE USB HID Loader V1.1
PSGrooPIC_BEEPIC_HEXs(wBTL) o PSGrooPIC_DIY_HEXs(nBTL)
Open Manager 2.x(o cualquier otro cargador de backup)
Otros: PC con puerto paralelo,serie(o programador PIC USB)
programador PIC icsp
PS3 fat,slim (FW 3.41,3.01,3.10,3.15)
polimetro
protoboard
cable,alicates,cuchilla,etc...
Para ART2003. Componentes: R1 ---------------------------220Ω 1/4
C1 --------------------------47 ó 100uF electrolitico
D1-D8 -----------------------1N4148(ó +5v externo)
Conector --------------------DB25 paralelo
Para PROGRAMADOR SERIE. R1 ---------------------2K2Ω 1/4
R2 ---------------------10kΩ 1/4
R3 ---------------------22KΩ 1/4
TR ---------------------BS170(opcional)
Conector --------------DB9 serie
Conector---------------USB macho
CONSTRUCCIÓN PSGrooPIC: Con la copia en papel del fotolito PCB impreso con toner laser, se envuelve la placa de cobre de manera que esté tenso el papel y bién colocado, en la parte trasera se fija con cinta adesiva.
La plancha tiene que estar al maximo de potencia y vapor, se plancha el papel apretando con la punta para enfatimizar las pista finas y en su totalidad durante varios minutos (8-10min), pulverizando agua sobre el papel con intervalos de descanso.
Cuando se considera que ya se ha pegado la tinta, se sumerje en agua y se desace el papel con los dedos, con cuidado de no despegar la tinta en el proceso,despues un retoque si es necesario con un rotulador inalterable.

Si se usa indoladora cada, cual conoce los tiempos de insolación de su aparato y el procedimiento está muy documentado ya.
Con la placa “en tinta”se prepara suficiente acido para cubrir la placa de cobre:
Cloruro ferrico:mitad de producto y mitad de agua caliente,pero no es critico.
Atacador rapido:según el fabricante.

Se sumerje bajo el ácido y se desace el cobre no protegido por la tinta,tiempo (estimado 20mim).
Cuando termine el proceso se enjuaga y se retira la tinta con disolvente y lanilla metalica.
Con la placa”en pistas” se usa el polimetro, para comprobar las pistas, una a una el perfecto estado de continuidad del cobre asi como las uniones indeseadas.

Se le puede dar un toque de color con el que se consigue, que de lejos parezca comercial y se hace así:
con una transparencia para laser se imprime en una impresora de injección, con esto la tinta no se adiere al plastico y se puede,con un guante de gasolinera o teñir el pelo, arrastrar la tinta y untarla en la placa.
Cuando se está seguro de una correcta ejecución de lo se ha hecho hasta ahora,se hacen los agujeros con una broca de 1mm y se pueden empezar a colocar los componentes.
Lo primero es el conector USB, que hay que adaptar: se presenta sobre los agujeros y en su posición correcta,con la sierra de marqueteria, se amplian a lo largo los agujeros para los anclajes y con la lima se rebaja el extremo de la placa para un buén ajuste del conector USB.Una vez adaptado se retira para empezar a soldar componentes.
-Primero el cable J1
-segundo las resistencias
-tercero el cristal de cuarzo
-cuarto los condensadores(si son electóliticos :respetar la polaridad)
-quinto el zocalo(si se carece de protoboard saltar al paso PROGRAMANDO EL BOOTLOADER)
-sexto los pines del puente reset
-septimo el led
-octavo el conector UBS
-por ultimo insertar el PIC en el zocalo
-para insertar el PIC en el zocalo hay que adaptar el ancho del patillaje con cuidado.Terminado el PSGrooPIC hay que programar el código que se compone de dos partes:
Bootloader.hex(parte fija y que usa el PC para detectar el PIC como dispositivo HID)
PSGrooPIC.hex(parte actualizable que usa la PS3 para entrar en modo “service”)
Para cargar el bootloader se necesita un programador icsp, que es para introducir el codigo una única vez y con él cargado se maneja el codigo PSGrooPIC.hex(wBTL).Se puede pedir uno, pedir a álguien que lo programe, comprarlo o fabricarlo (en este caso hay varias alternativas).
En el caso de usar el codigo PSGrooPIC.hex(nBTL), que no es compatible con bootloader, mediante el programador es la única manera de cargarlo en el PIC.
ART2003:facil, simple y efectivo. Para tener un programador icsp, que usa el puerto paralelo,se puede escoger esta opción, sólo hay que soldar unos hilos y ya funciona.

Y su versión usando USB como alimentación +5V.
Gracias a ROTOR.

Imagen con diodos,si no se consigue así suficiente voltaje,hay que usar con "USB+5v"
PROGRAMADOR JDM SERIE.Este programador es por puerto serie, esta muy extendido en el mundo de rápido y sin problemas programación de picś, así que también es ideal para este proposito (una sóla programación).
Su principal ventaja frente modelo al anterior, es que de carecer de puerto serie se puede usar un conversor “USB-SERIE” de facil adquisición en los distribuidores orientales de bajo coste.
Su funcionamiento es idéntico que cualquier dispositivo programador icsp, sólo hay que seleccionar su clase y el puerto en el programa que se use para interactuar(Winpic800).
Para su montaje se precisan tan sólo 3 resistencias, un trasistor (opcional) y el conector serie.
Y su versión sin transistor.
BOOTLOADER Aquí se tratará con el “Bootloader USB HID C18 18F2550 Trainer V1.0”, pero se puede usar alguno modificado, que tenga como base este mismo.
Gracias a la RAux 10K (SMD) conectada a +5V y la otra patilla al aire, que está lista para unir a la patilla del PIC escojida, al compilar el bootloader, que se pondria para activar el boot en el PC (en este caso el puente reset a de estar abierto y no tendrá uso, pasando a ser el reset la conexión a masa de la patilla elejida para el boot).
Si se coje como ejemplo el bootloader de NEOTEO, se conectará la patilla al aire de RAux con la patilla 13 del PIC,que es donde NEOTEO tiene su activación, y también un puente entre la patilla 13 y masa,(mediante un CutreMod ).No se explicará como compilar un bootloader propio, pero en esta dirección sí.
http://www.elotrolado.net/hilo_gu-a-construir-usb-compatible-con-psgroopic_1490686PROGRAMANDO EL BOOTLOADER.Para programar el bootloader se usa un software programador junto a un dispositivo programador, en ste caso se usa Winpic800 junto ART2003.
El procedimiento es el siguiente:
Se separa el PIC del PSGrooPIC y se pincha el en la protoboard o en el zocalo, se le conectan los cables que salen de ART2003 a sus correspondientes patillas (ver esquema ART2003) y el conector en el PC.

Se abre Winpic800 y lo primero es configurar las opciones de Hardware y Software.
La parte del Hardware es donde se elije el programador usado:ART2003, y varía sugún el que se use.
Ruta: Configuración, Hardware.

La parte de Software son las opciones del programa y son iguales para todos los dispositivos programadores.
Ruta: Configuración,software.





“AVR “ “PIC32MX “ “Auto ID” se deja como está.
Un reset del Winpic800 y detectará el PIC como 18F2550.

Se procede a cargar el bootloader en el PIC.
Ruta: Archivo,abrir,se busca el bootloader, y abrir.
Cuando está cargado, en la pestaña de “codigo”, se pueden ver los datos en hexadecimal, obserbese que termina en la posición “offset 0x1000” (0x0800 en Winpic800), esto es importante por qué hay tres tipos de bootloader, el segundo es mas grande:offset 0x2000 , y necesita de drivers externos, este no es compatible para el propósito que ocupa el tutorial, y un tercero que es compatible y mas pequeño: offset 0x0800 (0x0400 en Winpic800) y necesita de un Custom Driver y modificar PSGrooPIC wBTL.hex para que el comienzo del codigo se adapte a este tamaño,como el archivo que se programará después (PSGrooPIC wBTL.hex) empezará en la posición 0x1000, el primero es el apropiado.
Estos son los firmwares y el software que usan para su programación:
Microchip Bootloader USB HID C180,0x1000
software :
-HID Bootloader V2.6b
-MIE USB HID Loader V1.1
MiE USB CD Bootloader, 0x2000
software:
-MiE USBCDC Bootloader V1.0
MCHPUSB Bootloader, 0x0800
software :
-PDFSUSB programmer
Se clica en “Config.” para adaptar unas preferencias.

En esta sección se elije ”-oscillator Selection-” para cambiar el valor del cristal usado en el PSGrooPIC.

Se tilda LVP (si se usa ART2003 u otro dispositivo programador de puerto paralelo),y no olvidar cerrar con un punto de estaño la patilla 26 del PIC con masa en el PSGrooPIC.
Con un dispositivo programador de puerto serie no es necesario ,pero recomendable, pues si se programa sin la función LVP, el PIC sera detectado como desconocido por los dispositivos programadores de puerto paralelo.
También se puede tildar WRTC,WRTD, para asegurar la protección de sosreescritura en su porsterior programación desde USB con el PC.

Ya esta listo para presionar “Progamar Todo” (flecha roja),en unos instantes estará programado y verificado OK.

Se recupera el PIC de la protoboard o el zocalo, con el bootloader instalado y se pone en su lugar definitivo que es el zoczlo soldado del PSGrooPIC.
Si se usa el programador serie JDM no es necesario tildar LVP ni unir la patilla 26 con masa y así poder usar un segundo LED.
Es posible programar con Pickit2 (programador USB de Microchip), pero no es facil cambiar el valor del cristal,se usa una técnica para hacerlo con el Winpic:
Cargar el hex en el Winpic y se cambia el valor del cristal a gusto, se guarda y ya está listo para el Pickit2.
BOOTLOADER PRIMERA EJECUCIÓN.Al conectar por primera vez el PSGrooPIC al puerto USB con el bootloader instalado, será detectado automaticamente, e instalará el driver o pedirá instalar manualmente, se pulsa aceptar y una vez instalado, empezará a parpadear el led y el PSGrooPIC está en modo grabación (en el Manual Bootloader USB HID esta explicado en profundidad este proceso).
GRABAR UN PRIMER HEXEl programa para grabar el HEX con el exploit: PSGrooPIC_BEEPIC_HEXs(wBTL) que se puede encontrar en su pagina oficial:
http://psgroopic.blogspot.com/1. HID Bootloader V2.6b
2. MIE USB HID Loader V1.1
Es necesario tener instalados los programas de los que depende:
Net Framework 4
Visual C++ 2010 Redistributable x32
Una vez todo preparado y el PSGrooPIC con el led intenmitente(modo programación),se puede abrir HID Bootloader V2.6b ó MIE USB HID Loader V1.1 (la opción elegida aquí).

“Device attached.” significa que esta listo para recibir un HEX el PIC.
Se presiona “Burn HEX!” y se busca el HEX,que será uno compatible con bootloader,como el "PSGrooPIC_BEEPIC_FW341.hex(wBTL)”, que es apto para usar con bootloader, pero la forma mas segura es abrir el HEX con Winpic800 y comprobar que el código empieza a partir de la posición 0x800, justo donde termina el código del bootloader.
Con el HEX elegido,abrir e inmediatamente después, se programa y se desconecta el PSGrooPIC
(aqui no hay que preocuparse del valor de cristal que tenga el HEX por que mandará el del que se eligió el el bootloader con anterioridad).

Se desenchufa del puerto USB el PSGrooPIC y listo para la PS3.
ACTUALIZAR PSGrooPIC.Después de una primera programación el estado natural del PIC es “programa”. Para regresar al modo “grabación”: hay que conectar el PSGrooPIC en el puerto USB, sera detectado en modo “programa” (led apagado),se hace una pulsación en el puente para resetear y entrará en modo “grabación” (con el led intermitente), puede ser que necesite una segunda o tercera pulsación.
A partir de que esté en modo “grabación” se procede como en el punto anterior para grabar un HEX.
Para mas documentación se puede usar el manual oficial de USB HID C18 18F2550.
PS3.