Billiga Arduino kontrollerade ljus Sockets - Reverse Engineering RF (1 / 5 steg)
Steg 1: Läsa EEPROM
Vi ska börja med sprickbildning öppna en av dessa ljus sockets och läsa dess minne. Ta din skruvmejsel och ta bort de två phillips skruvarna som håller huset tillsammans. Fallet bör falla öppen och avslöja PCB inuti.
Om du tittar runt, ser du några kondensatorer, några dioder, en stor låda (relän), en lång IC (mikrokontroller), en separat styrelse kryssade på (RF-mottagare) och en liten 8-DIP chip märkt 24C 04 - detta är den EEPROM som lagrar kommandot RF att slå på lampan.
Låt oss ta en närmare titt på vad minneskrets innehar, skall vi? Använda en buss pirat och datablad för EEPROM chip, tråd upp en krets liknande den som visas. Du bör ha:
- Buss pirat VCC -> chip VCC (och VPU, pullup pin av buss pirat)
- Buss pirat GND -> chip GND
- Buss pirat SDA (MOSI, Orange för Sparkfun BPs) -> chip SDA
- Buss pirat SCL (CLK, gult för Sparkfun BPs) -> chip SCL
- Buss pirat VPU -> buss pirat VCC (pullup I/O pins drivs från detta stift)
Nästa, låt oss köra ett skript som kommer att dumpa EEPROM data till en fil med den I2C krets vi precis satt upp. Med hjälp av terminal eller kommandoraden, navigera till mappen där du hämtade i2c_dump.py och springa den följande:
Det ska producera en hex-fil visar de hexadecimala värdena av data.
Öppna txt-filen. Om det innehåller ingenting men 0x00 eller ingenting annat än 0xFF, är chanserna du behov till check din krets och kör igen soptippen. Om du ser några olika värden mot start i filen och en massa 0x00's efter, har du en framgångsrik hex dump!
Det är en bra idé att prova dumpning ett par andra lökarna för att se vad värdena ändras i denna kod. Oroa dig inte om hex dumpar inte vettigt ännu, men du kommer att märka att endast ett visst värde i dem förändras. Hmmmm...