Reverse Engineering att emulera bläckpatroner för skrivare Epson (3 / 8 steg)

Steg 3: Grundläggande koden rutiner

Vad jag ville göra var läste ut Rom från bläck vagnar och sedan använda dem att försöka efterlikna saknade bläckpatronen jag inte har. Detta innebär att skapa ett bibliotek som fungerar som en värd att läsa data men kan också användas för att emulera en bläckpatron.
Med tidigare kunskap från att skapa programvara baserat protokoll har skapat jag en header-fil med dessa funktioner:
• extern void epsnCartInit(void);
• extern void epsnCartStart (unsigned char addr, unsigned char skriva);
• extern void epsnCartStop(void);
• extern void epsnCartWrite (unsigned char data);
• extern unsigned char epsnCartRead(void);

Jag skapade också följande definitioner som hjälper till med att komma ihåg vilka stift var vad:
För du mikrokontroller måste du ändra dessa värden för att passa din ansökan

#define _ecSCKTRIS TRISCbits.TRISC0
#define _ecSDATRIS TRISCbits.TRISC1
#define _ecRSTTRIS TRISCbits.TRISC2
#define _ecVDDTRIS TRISBbits.TRISB1

#define _ecSCKLat LATCbits.LATC0
#define _ecSDALat LATCbits.LATC1
#define _ecRSTLat LATCbits.LATC2
#define _ecVDDLat LATBbits.LATB0

#define _ecSCK PORTCbits.RC0
#define _ecSDA PORTCbits.RC1
#define _ecRST PORTCbits.RC2
#define _ecVDD PORTBbits.RB1

#define wait() DelayUS(50)

Obs: Jag använde en PIC18F och används spärrarna för att ställa utgångarna, det är bara min preferens i valet. Du är välkommen att använda en mikrokontroller som du är bekant med.

void epsnCartInit() {
_epsnCartSCKTRIS = 0;
_epsnCartSDATRIS = 0;
_epsnCartRSTTRIS = 0;
_epsnCartVDDTRIS = 0;

_epsnCartSCK = 0;
_epsnCartSDA = 0;
_epsnCartRST = 0;
_epsnCartVDD = 0;

_epsnCartSCKLat = 0;
_epsnCartSCKLat = 0;
_epsnCartSCKLat = 0;
_epsnCartSCKLat = 0;
}

Funktionen start drar VDD hög, väntar, sedan sätter SDA enligt adress bit samt SCK. Väntar, drar SCK låg, väntar ännu en gång och sedan drar SDA hög följaktligen till adressen. Detta upprepas 2 gånger utom på den 4: e gången, SDA ligger lågt för att vi vill läsa data i EEPROMs inte skriva.

void epsnCartStart (unsigned char addr, unsigned char skriva) {
char jag = 0; Används för att räkna

röding tmp = 0; / / Temp lagring variabel

_ecVDDLat = 1; Ställa in VDD hög
DelayMS(1); Vänta på EEPROMs redo
_ecRSTLat = 1; Aktivera EEPROMs för kommunikation

tmp = addr; Kopiera adressen till variabeln temp
IF(Write) {/ / om vi vill skriva
Temp | = 0x08; Ange den 4: e lite höga (' |' betyder eller)
}

While(i<4) {
_ecSDALat = (tmp & 0x01); Inställd SDA hög eller låg enligt LSB

wait(); Vänta ungefär 50uS
_ecSCKLat = 1; Set Clock hög
wait(); Vänta en annan 50uS
_ecSCKLat = 0; Ställa in klockan låg
wait(); Vänta en annan 50uS
tmp >> = 1; Just flytta alla bitar i tmp av en
i ++; ökas räknaren med ett
}

}

Nästa funktion att genomföra är stopp:
void epsnCartStop() {
_ecRSTLat = 0; Ange första låg
DelayMS(1); Vänta lite
_ecVDDLat = 0; Stäng av EEPROMS
}

Och slutligen funktionen Läs:
unsigned char epsnCartRead() {
char jag = 0;
char temp = 0x00;

While(i<8) {
Temp >> = 1; Högerskift variabeln temp av en
_ecSCKLat = 1; SCK högt
wait(); Vänta ungefär 50uS
IF(_ecSDA) {/ / om SDA är hög
Temp | = 0x80; Sedan lite set 7 hög
}
_ecSCKLat = 0; Föra SCK låg igen
wait(); vänta en annan 50uS

i ++; Ökas räknaren med 1
}
returnera härda; Gå tillbaka vad vi har läst
}

Nu har vi de grundläggande funktionerna som vi behöver för att läsa data från bläckpatronerna, låter vår microcontroller och angett resultaten.

Se Steg
Relaterade Ämnen

Reverse Engineering ett elstängsel laddare

Reverse engineering något kan vara en bra form av både underhållning och utbildning. Jag har ofta köpt något bara för att tillgodose demontera dem för att avgöra hur de fungerar och hur de är utformade. Längs vägen kan du lära dig en hel del, förbätt...

Live Reverse Engineering

Jag började i elektronik före tillkomsten av internet och mest solida state komponenter, så får datablad och scheman inte var lätt för mig. Idag med tillverkar att göra anpassade ICs och LCD-skärmar för allt från telefoner till TV-spel, tinkers att b...

Reverse Engineering

många av ledamöterna här på Instructables fråga om datablad eller pin outs av en enhet eller display-svar, tyvärr du skränande alltid få ett datablad och scheman, i dessa fall du har bara ett val bakåtkompilering.Reverse engineering är en färdighet s...

Reverse engineering: USB kontrollerade hemautomation hacka

hacka ett trådlöst hem automationssystem för att vara USB kontrolleras med hjälp av två AVR microcontrollers!Kolla in videon! Systemet är verkligen mer lyhörd, men webbläsaren på min telefon är långsam.Om du gillar detta, kanske du också gillar detta...

Reverse Engineering: RGB LED-lampa med IR fjärrkontroll

vi köpte 20 av dessa RGB LED-lampor för en fest på jobbet, men jag var lite besviken med funktionerna färg bleknar de. Så jag bestämde mig att ta en apart, reverse engineer IR-protokollet, och se om det hade fler funktioner än de som är tillgängliga...

Göra en arbetande nyckel från skrot genom reverse engineering ett lås

har du förlorat alla nycklar för ditt lock och behöver göra en ny nyckel från grunden? Låssmeden saknar en nyckel tomt som passar din lås kilspår? Ta en metall fil, några skrot plåt, och Läs vidare för en grov & tumla hemmafixare nyckel att göra guid...

USB hacka genom Reverse Engineering

USB är ett mycket komplext protokoll, mycket mer komplicerat än seriell eller parallell, SPI och I2C även. USB används bara två trådar men de används inte som "få" och "överföra" som följetong. Snarare, data är dubbelriktad och differe...

Billiga Arduino kontrollerade ljus Sockets - Reverse Engineering RF

Smart glödlampor kostar din förstfödda barn. Vilket är synd, eftersom smarta lampor låsa upp enorm potential för hemautomation, energibesparingaroch alla typer av coola projekt.Om bara fanns det ett sätt att kontrollera dina lampor utan att bryta ban...

PCB Reverse Engineering använder GIMP

det finns bara några artiklar eller guider som visar hur du kan återföra ingenjör ett kretskort med en jpg eller png bild som du har eller du ta för en PCB. Jag försökt den som nämns på denna webbplats, men jag har inte lyckats att.Syftet med bakåtko...

Reverse Engineering en liten förstärkare

Min andra Instructables på bakåtkompilering är på komponenter som du inte kan få datablad och Stifttilldelningar för. Jag bakåtkompilera ett par går runt stiger ombord en vecka, små som dessa ta mig ungefär en dag att vända ingenjör och band för dera...

Reverse engineering luftkonditioneringen IR Remote control protocol

Hej, detta är min första instructable, hoppas du gillar den.För att få in elektronik jag valde ett hemautomation projekt: ett system som tillåter mig att kontroll och program både luftkonditionering enheter i min lägenhet. I detta instructable jag vi...

Reverse Engineering och 3D utskrift en Lego första ordning Tie Fighter!

Först, innan vi börjar, måste du köpa en Lego första ordning Tie Fighter i referenssyfte. Du behöver också AutoDesk Inventor på datorn för att utforma den.Steg 1: Börja skapa vingenÖppna upp AutoDesk Inventor och skapa en sammansättningsfil. Nu, med...

Reverse engineering enkel plåt parentes (från en Volvo S70)

/ *Jag bestämde mig att hjälpa en vän ersätta kylaren i sin Volvo inte så länge sedan. Misstag 1! Eftersom knektar och står olägenheter, beslutade vi att hoppa över dem och sno under stötfångaren och runt fortfarande dränerande kylmediet att nå olika...

Reverse Engineering = Uzzors2k = blåttBilen Android App. Amarino grejer också.

Detta instructable hjälper mestadels människor som försöker driva/james bond (dör i morgon aldrig förstås) rc bilar. Om du bara försöker slå på lampor eller styra ditt garage med bluetooth från en android-telefon, det finns massor av andra, bättre, l...

Aktiverar Raspberry Pi att Skriv ut till nätverksanslutna skrivare och utskriftsservrar

introduktionÄnda sedan min stationära dator gick kaputt. Jag har använt Raspberry Pi som min desktopen PC ersättning. Varför?, du frågar. Eftersom jag är fattig och inte har råd med en ordentlig stationär dator. Hur som helst fick jag idén till detta...

Att göra choklad med 3D-skrivare

Jag vill alltid göra användning av 3d-skrivare att göra något mer praktiskt, jag tror att 3d-utskrift ett plast objekt kunde göras till mögel att göra något annat. Jag försökte med choklad denna gång och och i slutet kunde jag mögel choklad med min d...

Vintage TI DataMath / Sinclair vetenskaplig kalkylator Emulator

MSP430G2452 fungerar som en TMS0803 kalkylator chip. Emulerar TI DataMath 2500II och Sinclair vetenskapliga miniräknare.Jag fick in till en webbaserad kalkylator emulering via vissa forumtråd.Jag blev intresserad och börja spela med tanken på att gen...

Skydda din ## #code från ## #reverse ## #engineers som boss

I den här guiden kommer vi att visa dig några grundläggande tekniker som används för att skydda din kod blir omvänd konstruerad.NOTERA: DENNA TUTORIAL SPELAR "T GER FULLT SKYDD MOT REVERSE ENGINEERING MEN DET HJÄLPER PÅ NÅGOT SÄTT FÖR NYBÖRJAREMotiva...

Förslag för att uppnå sviktande betyget på "DIY på Internet" tilldelningen

instruktioner för tilldelning: skapa ett DIY projekt för webben. Använda bilder och text (instruktioner) för att vägleda någon att göra eller gör ett projekt av din design. Projektet kan vara ett objekt (användbart eller inte), en aktivitet eller någ...