xbox360-tribe web
   

XBOXTRIBE advertisments
XBOX TRiBE Tutorials
Piattaforma:
Adattatore per LG 8164b
Tutorials xbox
Hardware Tutorials
Questo tutorial vi spiegherà in dettaglio come realizzare un adattatore per collegare il lettore LG 8164b alla Xbox
Ciscoski
18/06/2006


Introduzione


Come molti di voi sapranno la Microsoft ha fermato la produzione di unità cd sostitutive per le nostre bellissime XBox .Con questo tutorial mi propongo di ovviare a questa incresciosa situazione sostituendo il nostro lettore originale XBox con l’unità CDDVD LG GDR-8164B. Aggiornando il firmware del lettore, ora è possibile anche leggere i dvd originali!

Il tutorial è diviso in una prima parte “puramente” teorica , nella quale spiegherò come la xbox gestisca il proprio lettore e di come funzioni il lettore LG, una seconda parte “totalmente” pratica.

Materiale necessario


  • Microsoft XBOX.
  • LG GDR-8164B.
  • Cavo audio (di quelli lettore->scheda audio, immagine sotto riportata).
  • Sdoppiatore d’alimentazione(immagine sotto riportata).
  • Programmatore per Pic(compatibile con IC-Prog).
  • Microchip PIC16F628.
  • Manualità con il saldatore.


Bibliografia


Di seguito sono elencati alcuni tutorial che potranno esservi utili:
- Nozioni di base sui pic
- Particolari sul PIc16f628
-

LG 8163B@8050L - Guida passo-passo per la modifica
- Smontaggio XboX e rimozione motherboard


Attenzione:

L’autore di questo tutorial non si assume nessuna responsabilità su danni a cose e/o persone quindi agite di conseguenza.

La modifica è stata testa su mainboard V1.4!. Vi consiglio di leggervi la teoria per altre versioni di scheda madre!

Teoria essenziale

 

Funzionamento XBox
La comunicazione tra Xbox e lettore avviene tramite:

  • Canale dati (canale ATA)
  • Canale di controllo (che è oggetto del nostro studio).



Il canale di controllo comunica alla xbox lo stato in cui si trova il lettore.
I possibili stati sono:

  • Cassetto dentro con supporto riconosciuto
  • Cassetto dentro con supporto non riconosciuto o senza supporto
  • Cassetto in uscita
  • Cassetto fuori
  • Cassetto in entrata
  • Riconoscimento supporto


Il pinout del cavo di controllo è il seguente:



(1)GND (2)+12 V (3)Tray Out
(4)Tray In (5)GND
(6)+12 V
(7)GND (8)+5 V (9)Data (10)Ready (11)Eject (12)+5V

Ogni stato è riconosciuto da una combinazione di livelli logici presenti sulle linee TRAY_OUT, TRAY_IN e READY.
Nel particolare corrisponde la seguente tabella di verità (un 1 logico equivale a 3.3v, mentre uno 0 equivale a 0V).

Stato Tray In Tray Out Ready
Cassetto dentro con supporto riconosciuto 0 1 1
Cassetto dentro con supporto non riconosciuto o senza supporto 0 1 0
Cassetto in uscita 1 0 1
Cassetto fuori 1 0 0
Cassetto in entrata 1 1 0
Riconoscimento supporto 0 0 0


Si noti che i vari stati, da quanto ho appurato, si susseguono in un ordine ben determinato che se non rispettato (su dashboard originale) può portate ad un errore comunicato dalla Xbox a video (per esempio non si può passare dallo stato di apertura a quello di checking senza passare da stato di chiusura).

Funzionamento LG GDR-8164B


Com’è facile pensare gli stati del lettore LG che a noi interessano sono quelli effettivamente riconosciuti dalla X quindi :

  • Cassetto dentro con supporto riconosciuto
  • Cassetto dentro con supporto non riconosciuto o senza supporto
  • Cassetto in uscita
  • Cassetto fuori
  • Cassetto in entrata
  • Riconoscimento supporto

Totalmente diverso è il sistema con cui il lettore comunica il proprio stato. Nell’8164B non è presente un cavo dal quale poter estrapolare lo stato, ma dobbiamo sfruttare ben determinate piazzole disponibili sulla scheda di controllo (vedere parte pratica su come smontare la scheda).
Di seguito vi riporto la scheda con annessi segnali che a noi interessano



In particolare in questo studio teorico c’interessano LDOU, LDIN, LDCD e LDVD.
Tabella di verità:

Stato LDOUT LDIN LDCD LDVD
Cassetto dentro con supporto riconosciuto 0 0 0/1 1/0
Cassetto dentro con supporto non riconosciuto o senza supporto 0 0 0 0
Cassetto in uscita 1 0 0 0
Cassetto fuori 1 1 0 0
Cassetto in entrata 1 0 0 0
Riconoscimento supporto 0 0 Instabile Instabile

Nota:
Nel lettore LG non esiste (o almeno non ho trovato) un segnale che ci comunichi se il supporto è riconosciuto ma solo LDCD e LDVD che c’informano quando il laser è in funzione.

A causa della mancanza di un oscilloscopio non sono in gradi di verificare il corretto andamento temporale dei PIN LDCD e LDVD nella fase di riconoscimento

A regime:

  • Se il supporto riconosciuto è un CD l’uscita si stabilizza a LDCD =1 LDVD =0 LDOUT=0 LDIN=0
  • Se il supporto riconosciuto è un DVD l’uscita si stabilizza a LDCD =0 LDVD =1 LDOUT=0 LDIN=0
  • Se il supporto è malfunzionante o danneggiato entrambi i PIN si stabilizzano a zero


Notasi che dopo un periodo di inattività del lettore, LDVD ed LDCD vanno a zero lasciando però invariati tutti gli altri stati.

ATTENZIONE:
I livelli di voltaggio per LDOUT e LDIN sono 3.2 V per l’1 logico e 0V per lo 0 logico, mentre per LDCD e LDVD l’1 logico vale 2.3 V (quindi attenti alla soglia di tensione minima dell’integrato che andrete ad usare per riconoscere l’1,di solito si trova annotato nei datasheet del costruttore).


Per quanto concerne la linea di Eject la Xbox tiene questo segnale sempre a 1 tranne quando vuole che il cd si apra, stesso dicasi per l’8164B.Quindi ci basterà connettere direttamente l’Eject della X al pad segnato in figura.


Interfacciamento Xbox con LG


Ora che abbiamo capito come funziona la Xbox con il proprio lettore e come funzione il lettore LG spiegheremo come possiamo interfacciare il lettore LG alla Xbox.

Dobbiamo creare un decoder che converta le uscite del lettore LG con le uscite del lettore originale, in tal modo la Xbox, non noterà differenze tra i lettori.
A causa della complicata fase si RICONOSCIMENTO non è possibile utilizzare una semplice rete combinatoria.
Ricorriamo all’utilizzo di un Microcontrollore adeguatamente programmato(per i profani un microcontrollore lo possiamo paragonare a un processore di computer con potenzialità di calcolo, costi e dimensioni molto + ridotti).
La scelta è ricaduta sul PIC16F628 che ci consente di non preoccuparci inutilmente di circuiti di oscillazione o di reset.

Il pic può essere collegato come in figura:



Il sorgente del programma per il pic è scaricabile ciccando QUI(da compilare con CCS PICC).
Al cambiamento di una delle linee LDOUT, LDIN, LDCD e LDVD si verifica una INTERRUZIONE (Interrupt) che chiama la routine get_8164_status().
Questa routine riconosce lo stato del lettore LG e tramite set_X_Status() setta le uscite TRAY_OUT, TRAY_IN e READY del pic in base allo stato riconosciuto.
Per una più profonda comprensione del codice vi rimando ai commenti presenti nello stesso.

Abbiamo così realizzato il DECODER!!

Nota
Per quanto detto prima sulle fase di riconoscimento ho optato per la più semplice delle soluzioni. Ho impostato un timeout tale da ricoprire il tempo di assestamento dei segnali (Aspetto con impazienza un oscilloscopio (mia madre non lo sa ma mi ammazzerà ) ).




Realizzazione pratica

Preparazione dispositivo di interfaccia

Per chi non avesse letto la parte teorica abbiamo bisogno di un dispositivo che faccia da decodificatore tra il nostro lettore e la Xbox. Per fare ciò utilizziamo un microcontrollore delle famiglia microchip PIC16F in particolar modo il PIC16F628(sotto è riportato il pinout).




Primo passo per adattare l’LG alla X sarà quello di programmare il PIC16F628 con il nostro programma.

Avremo bisogno quindi di un programmatore hardware e di programmatore software (naturalmente il prog sw controlla il prog hw).

Su questo sito trovate tutto l’occorrente per programmare (compresi svariati tipi di programmatori hw).
Purtroppo in questo ambito non posso spiegarvi come funzioni un programmatore e vi rimando alla bibliografia.

Il programmatore Software usato è IC-Prog,
La scelta del programmatore Hardware è indifferente. (io consiglio SCHAER)

Scaricate il firmware reperibile da qui.
Mettiamo il microontrollore nello zoccolo del programmatore. Avviamo IC-Prog e selezionate il programmatore da voi scelto dal menù Settings->Hardware. Settate i parametri confermiamo clickando su ok.
Selezioniamo come in figura il device “PIC16F628”



Nel caso il pic non fosse vergine clickiamo su Command->Erase All o sull’icona e, a fine operazione, clickiamo su ok.

Ora clickiamo su File->Open e selezioniamo il file 8164_xbox_adp.hex (questo file contiene il codice compilato del nostro decodificatore).
Una volta caricato nel Buffer controlliamo che la sezione Configuration sia uguale a quella nella seguente figura



Dopo aver fatto ciò clickiamo su Command->Program All o sul pulsante relativo.
Lasciamo IC-Prog lavorare e se non ci da nessun tipo di errore allora la procedura di programmazione è andata a buon fine e possiamo andare avanti.

Upgrade del firmware

Grazie al team di PATX è disponibile un firmware modificato per lg8164b che lo rende compatibile con i giochi originali.Il firmware è reperibile qui

La procedura per upgradare il firmware è quella standard. Per chi non la conoscesse :

  1. Collegare il lettore al computer in modo tale che venga riconosciuto da windows(consiglio di farlo a computer spento).
  2. Aprire il programma che si trova nel file compresso.
  3. Selezionate nella combobox il vostro lettore lg8164b sul quale volete aggiornare il firmware
  4. Clickate su “FW FlashUp” (a me ha dato un messaggio di avviso, premendo ok cmq va avanti)
  5. Attendete che abbia finito.
  6. Una volta finito l’aggiornamento spegnete il pc e scollegate il lettore

Cosi avrete un lettore LG8164B compatibile con i giochi originali .


Smontaggio

Per il dissasemblaggio della X vi rimando a guide fatte da altri (vedi bibliografia) mentre per LG vi basterà svitare con un comunissimo giravite a croce le viti indicate in figura:




Una volta aperto stacchiamo la scheda di controllo, come quella in figura, e rimuoviamo tutti i flat cable presenti (attenzione quello che collega la scheda al gruppo ottico è attaccato con del nastro)



Saldatura

Ragazzi attenti da qui in poi un errore potrebbe implicare gravi danni alla vostra X o al vostro lettore o ben più grave a voi stessi (ma non abbiate timore chi la dura la vince e non siate maliziosi)

Lo schema generale di montaggio è quello esposto nella seguente figura



Iniziamo col saldare prima LDOUT, LDIN, LDCD, LDVD, GND e +3.3V ai punti sulla scheda sopra raffigurata.
Un esempio di saldatura è la seguente



Nel particolare LDVD e LDCD posso essere scambiati ma questo non vale per LDIN e LDOUT.
Ora ci dobbiamo preoccupare di saldare i segnali che porteremo alla XBOX. Per fare ciò mi sono ispirato alla guida di t3o (vedi bibliografia) cioè utilizzando i pin che il lettore LG utilizza per trasferire il segnale Audio quando legge un CDAudio.


(l’immagine non fa riferimento al GDR8164b ma al GDR-8163B ma è molto simile)

Stacchiamo i pin, segnati con le frecce, dalla board per mezzo di una tronchesina e li alziamo (non vi consiglio di dissaldarli poiché potrebbe rovinarvi la scheda).
A questi colleghiamo 4 cavi dei quali 1 andrà sulla scheda del lettore al punto di saldature Eject e gli altri tre sul pic a connettere TRAY_IN, TRAY_OUT e READY.

Il risultato dovrebbe essere più o meno come il seguente (la guaina termorestringente è utile per prevenire corti).



Chiusura lettore

Fatto questo possiamo riposizionare la scheda al posto non prima però di aver praticato alla carcassa del lettore un intaglio per far si che la modifica apportata al connettore audio non ostruisca l’ancoraggio della scheda. Quindi con un taglierino pratichiamo un taglio come in figura



Una volta ricollegati tutti i flat cable avrete una situazione del genere.




Io personalmente ho optato per una configurazione removibile cioè saldando su una millefori un connettore che poi andrà ad agganciarsi al cavo che è saldato ai vari punti .

Nota:Per tenere pulito il tutto ho preferito saldare eject sull’altra scheda ma è equivalente a saldarlo sulla scheda principale

Realizzazione cavo collegamento 8164B->XBOX

Una volta chiuso il lettore dobbiamo realizzare il cavo che colleghi il lettore LG al cavo giallo della Xbox.
Prendiamo il cavo che troviamo nella scatola del lettore (come quello in figura) e con una forbice lo tagliamo tirandoci fuori i vari cavetti.



Una volta tirati fuori i cavetti possiamo percorrere 2 strade diverse:
La prima è quella utilizzata da t3o nel suo tutorial saldando direttamente i cavi al connettore giallo.(vedi bibliografia)
La seconda invece non necessita di saldare sul cavo giallo in modo tale da non rovinarlo. Si saldano dei comunissimi pin Dill(come in figura) al cavo audio.




Poi li si innestano nel connettore della X come in figura, naturalmente rispettando il pinout sopra descritto.




Benissimo una volta aver Collegato il cavo della X e quello ATA attraverso uno sdoppiatore (come quello in figura) colleghiamo l’alimentazione al lettore LG.



Avendo svolto tutto correttamente la nostra bellissima X riconoscerà senza problemi il nostro lettore e tutti i suoi stati. Per provare potete fare riferimento o al led della X o alla schermata File di XBMC.



Per integrare fisicamente il lettore nella X (lavori di carpenteria :P) vi rimando al tutorial di t3o (vedi bibliografia).

Ringraziamenti
Ringrazio in primo luogo mia madre per la pazienza (?) avuta nei giorni di sviluppo.
Ringrazio Alex per avermi aiutato a stendere questo tutorial.
Ringrazio madre natura per averci fatto intelligenti :P

Torna all'indice tutorials xbox
Xbox360-Tribe.org Designed by Dec & SeV3n - Powered by Console-Tribe.com - Copyright © 2002-2006 All rights reserved.
E' vietata la riproduzione, anche parziale, di contenuti e grafica senza il consenso degli autori.
Microsoft Xbox, Xbox360 and Xboxs logos' are trademarks of Microsoft Corp.
Il materiale contenuto all'interno di questo sito è volto a scopi didattici ed informativi.
Xbox Tribe ed i membri del suo staff non incoraggiano la pirateria.
Le copie di backup di software sono legittime solo se si dispone di una copia originale.

Console-Tribe Network: Xbox360-Tribe - PSP-Tribe - PS3-Tribe - DS-Tribe - Wii-Tribe