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

Steg 8: Efterlikna bläckpatroner



Så vad som händer nu är att vi behöver ställa in våra microcontroller att innehålla data vi har dumpade. Låt skrivaren värd att läsa och skriva till den.

Nu är problemet med detta att jag inte vill min falska bläckpatroner att någonsin få användas upp, så för att göra det är vi har en fast soptipp som mikrokontroller kommer att ladda in i RAM-minne varje gång den startar. Detta gör att skrivaren inte läsa bara skriva till den också. När mikrokontroller är avstängd sedan tillbaka på, återställs tidigare data. (Dubbel Bonus)

Lagra datamatriser i mikrokontroller, placera detta någonstans under inkludera, men innan void main)

Obs: Detta kan variera mellan olika microcontroller familjer, men det fungerar fint med min PIC18F

ram unsigned char svart [32] = {0x10, 0x00, 0x02, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0x6A, 0x17, 0xE3, 0x54, 0xA3, 0x39, 0x50, 0x14, 0x15, 0x31, 0x93, 0xE4, 0xB4, 0x24, 0x96, 0x57, 0x04, 0x35, 0xF5, 0xE4, 0x14};
ram unsigned char cyan [32] = {0x4C, 0x04, 0x01, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0x5A, 0x19, 0xF0, 0x94, 0x03, 0x3B, 0x50, 0x16, 0x17, 0x31, 0x93, 0xE4, 0xB4, 0x24, 0x96, 0x57, 0x04, 0x35, 0xF5, 0xE4, 0x34};
ram unsigned char gul [32] = {0x4A, 0x04, 0x01, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0x6A, 0x8B, 0xC9, 0xA4, 0x41, 0x3B, 0x50, 0x1A, 0x1B, 0x31, 0x93, 0xE4, 0xB4, 0x24, 0x96, 0x57, 0x04, 0x35, 0xF5, 0xE4, 0x74};

Obs: Märkte att jag inte har Magenta? Det är eftersom det är den bläckpatron som jag inte har.

Nästa steg är att skriva en rutin som kontrollerar vilken bläckpatron som efterfrågas och tillåta värd att läsa och skriva till den.
Detta är hur jag gjorde det:

void main () {
unsigned char * inkPtr;
char addr = 0x00;
...

While(1) {

epsnCartStartListen();

While(epsnCartReady()==1); Vänta på signalen redo att gå tillbaka till låg

While(epsnCartReady()==0);
addr = espnCartGetAddr();

om (addr & 0x7 == 0x01) {/ / om de första 3 bitarna är lika med 0x01
inkPtr = & svart [0]; Peka på den svarta datan
} else om (addr & 0x7 == 0x03) {/ / om de första 3 bitarna är lika med 0x03
inkPtr = & cyan [0]; Peka på den cyan datan
} else om (addr [i] & 0x7 == 0x05) {
inkPtr = & cyan [0]; Detta är tänkt att vara Magenta, men jag har inte som
} else om (addr [i] & 0x7 == 0x07) {
inkPtr = & gul [0];
} annat {
fortsätter: / / gå tillbaka till början av huvudloop eftersom vi inte vet denna adress
}

IF(addr&0x08) {//WriteMode-Check till se om den vill skriva
While(epsnCartReady()) {//keep looping tills första går låg
* inkPtr = epsnCartIn();
data pekaren pekar på
skrivs med nya data
inkPtr ++; Öka pekaren
}
} annat {//Read läge
While(epsnCartReady()) {
epsnCartOut(*inkPtr);
Utgång data pekaren pekar på
inkPtr ++; Inrement pekaren
}
}
}
}

Framgång!
Efter denna nya programmeringskod och slå på skrivaren, accepterade skrivaren 4 imaginära patroner tack vare min mikrokontroller. Jag är också ganska chockad att jag accepterade cyan ink cartridge data för magenta aswell!

Detta är en enorm bedrift för mig eftersom detta är min första riktiga världen omvänd ingenjörskonst jag någonsin gjort och jag fick lovande resultat.
Nu kan jag fortsätta med att vrida skrivaren i en 3D-skrivare

Jag hoppas ni gillade detta, detta är min andra instructable och detta tog mig ett tag att skriva: P

Om du glåmig, är ni mer än välkommen att hämta källfiler

Skål!
Romerska

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...