Hacka en gammal iPod med hjälp av en Android och en Arduino. (5 / 14 steg)
Steg 5: IPod enheter
IPod är en mångsidig liten mp3-spelare och kan användas med många olika tillbehör. De 30 stiftskontakter hålla pins för dockning stationer, firewires, USB och mer. I det här fallet använder vi seriell Rx och Tx stiften.
Att dock extender kabel används eftersom det har anslutningar för dessa stift i stället för den vanlig USB-anslutning som bara har + USB data - USB-data VCC och GND.
Kontakten är en JAE DD1 30-stiftskontakt.
Detta projekt kommer att använda de följande 5 stift:
- + 5V - Pin 23
- GND - Pin 16
- RX - stift 13
- TX - Pin 12
- ACC - Pin 21
Acc pin dras låg genom en resistor, och beroende på motståndet, iPod vet vilken typ av tillbehör som den är ansluten till och hur man kommunicerar därefter.
En lista över alla stiften och vad de gör kan hittas på:
http://pinouts.ru/PortableDevices/ipod_pinout.sht...
Apple tillbehör protokollet används för att kommunicera med Ipod. Standard 8N1 seriell konfiguration används. 8N1 anger att det finns 8 databitar, No paritetsbit och 1 stoppbit. Denna konfiguration är vad Arduino förutsätter när du upprättar baudhastighet för överföring (dvs. Serial.BEGIN(9600);). Detta kan ändras genom att lägga till en konfiguration argument till att ringa (dvs. Serial.BEGIN (9600, SERIAL_5N1);).
I detta projekt kommer vi bara att använda standard 8N1 konfigurationen.
Detta projekt kommer att kommunicera med en 9600 baud.
IPod kan sättas i 3 olik sätten:
- En röstinspelning läge. Detta är oanvända i detta projekt
- Ett enkelt läge. Denna består av grundläggande kommandon. (Spela upp/paus, hoppa över, volym, Välj, etc)
- The Advanced iPod avlägsen läge (AiR läge) Detta gör för data som skickas till och samlas in från iPod. (Ingen volymkontroll)
När i AiR läge, ger skärmen dig status "OK att koppla från" på den äldre generationens iPod. IPhone 3, iPod touch och iPad inte Visa denna skärmen och att du kan styra det från både app och iPod själv.
AiR-läge används vanligtvis när du ansluter till ett tillbehör som bearbetar data till en audio signal och volymkontrollen är gjort genom att tillbehör.
Eftersom MuseHack använder hörlursuttaget i läge 4 (Air läge), blir volymjustering lite knepigt. Detta sker genom att tillfälligt byta tillbaka till läge 2 justera volymen innan han återvände till läge 4.
Detta kommer att täckas mer i detalj i kodavsnittet.
Adriangame ger en väl utförda beskrivning av det protokoll som används för att tala till iPod:
http://www.adriangame.co.uk/iPod-ACC-Pro.
Varje kommando skickades till iPod innehåller minst 5 artiklar i byte form.
- i huvudet (0xFF, 0x55)-varje kommando startar med detta exakta huvud.
- Storleken på kommandot - detta byte representerar antalet följande byte exklusive kontrollsumman.
- The läget för kommandot - projektet använder mestadels leveranssätt 4 med några 2 kommandon därinne.
- The Command - två byte specifika för instruktionen skickas/tas emot. I läge 4, den första kommandobyte är oftast 0x00.
- The parametrar - upp till 9 parametrar kan skickas som innehåller uppgifter om kommandot
- The kontrollsumma - detta byte används för felkontrollen.
Kontrollsumma byte summerar värdet av byte från läge till slutet av parametrarna.
Denna summa dras sedan från 0x100 (256). Eftersom summan kan vara större än 0xFF (255) och vi bara vill den lägre byten, bitvis operatorn & används med 0xFF för att kasta de högre bitarna.
(dvs. checksum = (0x100 - summan) & 0xFF)
Detta är den metod som används av iPod men är bara ett sätt att beräkna en kontrollsumma.