13.03.2013 Views

Hacking the Xbox

Hacking the Xbox

Hacking the Xbox

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

224<br />

<strong>Hacking</strong> <strong>the</strong> <strong>Xbox</strong>: An Introduction to Reverse Engineering<br />

more specifics you have up front, <strong>the</strong> easier you will find <strong>the</strong> design<br />

process. You should have an idea of how big you want <strong>the</strong> final board to<br />

be, how much it should cost, and of course what it should do. I always<br />

find it helpful to draw sketches and, in <strong>the</strong> case of large projects, to write<br />

design documents that help me organize and record my thoughts.<br />

For <strong>the</strong> first few designs, one of <strong>the</strong> most difficult steps will be nailing<br />

down an idea, because you won’t know what kinds of components are<br />

available to implement your idea, and what sorts of real-world constraints<br />

you will have to design around. The best way to get started is to find an<br />

existing idea that is very similar to yours and to model your idea after it.<br />

(Many chip manufacturers offer free application notes and design samples<br />

that form a great starting point.) Ano<strong>the</strong>r way to define your ideas is to learn<br />

from existing products: If you want to build an alarm clock, take an existing<br />

clock apart to see how it was built.<br />

Schematic Capture<br />

Once you have your idea, you need to create a schematic diagram. A schematic<br />

is a symbolic representation of your idea, expressed as a collection of part<br />

symbols and virtual wires.<br />

Most schematic capture software comes with a library of parts to help<br />

accelerate <strong>the</strong> schematic capture process. However, if you do not find <strong>the</strong><br />

part you need in <strong>the</strong> library, you will have to build your own schematic<br />

symbol. All schematic symbols are linked to a PCB component footprint,<br />

which is a pattern of copper on a PC board that mates to a component.<br />

One common source of errors stems from not checking <strong>the</strong> link between<br />

<strong>the</strong> symbol and <strong>the</strong> footprint: A 16-pin DIP footprint does not fit a 16-pin<br />

in-line surface mount connector, and most design tools cannot tell <strong>the</strong><br />

difference between <strong>the</strong> two. Therefore, check to make sure that your<br />

footprint assignments are all correct, and double and triple check <strong>the</strong><br />

schematic symbol. In particular, always check and recheck power pins, since<br />

<strong>the</strong>y can cause <strong>the</strong> most difficult and destructive kinds of errors. Consider<br />

having a friend double check <strong>the</strong> symbols as well, to avoid repeating errors<br />

or allowing errors to pass unknowingly. (This amount of redundancy may<br />

sound silly for simple parts, but it becomes absolutely essential for hundred<br />

and thousand-pin parts where your brain becomes mush halfway through<br />

<strong>the</strong> checking process.)<br />

Attention to detail from <strong>the</strong> very beginning is <strong>the</strong> most important skill for<br />

capturing a schematic, and can save you from <strong>the</strong> headache of frustrating<br />

bugs later on. Every pin on every component is <strong>the</strong>re for a reason, and if<br />

any pin is left unconnected you should understand why that is or is not<br />

okay. To this end, read <strong>the</strong> product data sheets, including every single page<br />

and footnote. Don’t ignore <strong>the</strong> fine print that requires a pull-up resistor to<br />

set startup conditions, or a capacitor to filter noise or stabilize <strong>the</strong> system or<br />

you’re likely to end up with more frustrating bugs.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!