Reverse-Engineering te emuleren inktcartridges voor een Epson-Printer (8 / 8 stap)

Stap 8: Emuleren inktcartridges


Dus wat er nu gebeurt is dat we moeten onze microcontroller instellen met de gegevens die we hebben gedumpt. Laat de printerhost lezen en ernaar schrijven.

Nu is het probleem met dit dat ik wil niet dat mijn nep inktcartridges wennen ooit, dus dat is hiervoor hebben we een vaste dump dat de microcontroller in ram everytime die het opstart zal laden. Hierdoor kan de printer niet alleen lezen, maar ook naar het schrijven. Wanneer de microcontroller is vervolgens weer terug op uitgeschakeld, wordt de vorige gegevens hersteld. (Dubbele Bonus)

Storing gegevensmatrices in de microcontroller, plaats deze ergens onder de inclusief, maar voordat nietig main()

Opmerking: Dit kan variëren tussen verschillende microcontroller families, maar het werkt goed met mijn PIC18F

RAM van unsigned char zwart [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 van unsigned char cyaan [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 van unsigned char gele [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};

Opmerking: Opgemerkt dat ik geen Magenta? Dat is want dat is de inktcartridge heb ik niet.

De volgende stap is om te schrijven een routine waarmee wordt gecontroleerd welke inktcartridge wordt aangevraagd, en toestaan dat de host te lezen en te schrijven.
Dit is hoe ik het deed:

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

While(1) {}

epsnCartStartListen();

while(epsnCartReady()==1); Wachten op de klaar signaal om terug te gaan naar laag

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

Als (addr & 0x7 == 0x01) {/ / als de eerste 3 bits gelijk is aan 0x01
inkPtr = & black [0]; Wijs de zwarte gegevens
} else if (addr & 0x7 == 0x03) {/ / als de eerste 3 bits gelijk is aan 0x03
inkPtr = & cyaan [0]; Wijs de cyaan gegevens
} else if (addr [i] & 0x7 == 0x05) {}
inkPtr = & cyaan [0]; Dit is bedoeld om te worden Magenta, maar ik heb dat niet
} else if (addr [i] & 0x7 == 0x07) {}
inkPtr = & gele [0];
} else {}
verder: / / teruggaan naar het begin van de hoofdlus, omdat we dit adres niet weet
}

if(addr&0x08) {//WriteMode – Check om te zien als de Host wil schrijven
while(epsnCartReady()) {//keep herhalen totdat RST laag gaat
* inkPtr = epsnCartIn();
de gegevens van de pointer wijst naar
wordt geschreven met nieuwe gegevens
inkPtr ++; _ / / Verhogen de aanwijzer
}
} else {//Read modus
while(epsnCartReady()) {}
epsnCartOut(*inkPtr);
Output de gegevens de Pointer wijst naar
inkPtr ++; Inrement de aanwijzer
}
}
}
}

Succes!
Na deze nieuwe programmacode en draaien op mijn printer, aanvaard de printer 4 imaginaire cartridges dankzij mijn microcontroller. Ik ben ook zeer geschokt dat ik de gegevens van de cartridge cyaan inkt voor magenta aswell geaccepteerd!

Dit is een grote voltooiing voor me als dit mijn eerste echte wereld reverse is engineering die ik ooit heb gedaan en ik kreeg veelbelovende resultaten.
Nu kan ik doorgaan met het omzetten van de printer in een 3D-printer

Ik hoop dat jullie graag dit, dit is mijn tweede instructable en dit kostte me een tijdje om te schrijven: P

Als u wan, zijn jullie meer dan welkom om te downloaden van de bronbestanden

Cheers!
Romeinse

Gerelateerde Artikelen

How to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.

How to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.

Dit instructable zal detail how to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.Voor een volledige beschrijving over de bouw van de nieuwe 3D-Printer af te drukken in NYLON, enkel bezoek de belangrijkste instructable:Dit
Reverse-Engineering- en 3D-printen van een Lego eerste orde Tie Fighter!

Reverse-Engineering- en 3D-printen van een Lego eerste orde Tie Fighter!

Voordat we beginnen, moet u eerst een Lego eerste orde Tie Fighter voor verwijzingsdoeleinden aanschaffen. U moet ook AutoDesk Inventor op uw computer om te ontwerpen.Stap 1: Beginnen met het maken van de vleugelVervolgens openstellen van AutoDesk In
Originele kunstwerken voor een 3D-printer maken: Illustrator naar Tinkercad (SVG)

Originele kunstwerken voor een 3D-printer maken: Illustrator naar Tinkercad (SVG)

Ik nam een grote klasse op TechshopSF op geavanceerde 3d printen. De instructeur voorgesteld met behulp van Tinkercad of Meshmixer voor design. Echter werd niets vermeld over het converteren van bestaande illustraties in iets dat Tinkercad aankan (al
Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Als u om het even wat als me bent, zou u willen hebben en het nemen van controle over alles op uw computer. U ust kunnen bepalen hoeveel opslag wordt gebruikt voor programma's blah blah blah.Hoewel toepassingen mogelijk nuttig om dingen gedaan te kri
Omzetten van een Inkjet-Printer als u wilt afdrukken van PCB's

Omzetten van een Inkjet-Printer als u wilt afdrukken van PCB's

Zie stap 12 voor nieuwe resultaten en een ETS/PROJECT UPDATE!Onlangs een van mijn richt zich te vinden een manier om de aanmaak van PCB (Printed Circuit Board) gemakkelijker geweest. Ik ontwerp die iets op basis van wat ik wil in een circuit kunnend
Complete newbie stap voor stap, 3D-printer met alle onderdelen lijsten

Complete newbie stap voor stap, 3D-printer met alle onderdelen lijsten

Intro, prelude, of gewoon: die is dit bedoeld voor?Ik wilde de titel op te nemen goedkoop, maar laten we eerlijk zijn: het is niet goedkoop om te bouwen van een 3D-printer, tenzij u sommige/allermeest naar de onderdelen bij de hand hebben of als u ge
Beheersing van een 3D-printer met handgebaren

Beheersing van een 3D-printer met handgebaren

ik heb geschreven over het vóór maar ik beheren een creatieve technologie lab aan het California College van de kunsten. Ik helpen studenten met een breed scala aan vaardigheden, het maken van een breed scala van projecten. Een van de vele onderdelen
Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

In dit instructable, leert u hoe om te keren ingenieur radiofrequentie (RF) afstandsbedieningen en implementeren in een zeer goedkope WiFi toegelaten computer, het knooppunt MCU. Met deze techniek kunt u IoT inschakelen oudere toestellen en doelappar
Reverse Engineering een kleine versterker

Reverse Engineering een kleine versterker

Mijn andere Instructables op reverse-engineering is op onderdelen die je niet gegevensbladen en pinouts voor. Ik reverse-engineering die een paar circuit boards een week, kleintjes als deze neem me over een dag om te keren ingenieur en strip voor hun
Een werkende sleutel van schroot maken door reverse-engineering van een sluis

Een werkende sleutel van schroot maken door reverse-engineering van een sluis

heb je verloren alle sleutels voor uw lock en moeten maken van een nieuwe sleutel van kras?  Heeft de slotenmaker gebrek een lege sleutel die van uw slot Spiebaan passen zal? Pak een metalen bestand, sommige blad schroot, en lees verder voor een ruwe
Reverse Engineering een schrikdraad lader

Reverse Engineering een schrikdraad lader

Reverse-engineering iets kunnen een grote vorm van zowel entertainment en onderwijs.  Ik heb vaak inkoopartikelen net voor de bevrediging van de demontage van hen om te bepalen hoe zij functioneren en hoe ze zijn ontworpen.  Langs de weg, kunt u verb
De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

dit instructable introduceert het eerbiedwaardige spion oor in details en mijn weg naar het omgekeerde ingenieur een circuit.Waarom wordt dit apparaat verdient zijn eigen instructable?:-U kunt kopen een spion oor voor een dollar!-Het kan geluiden ver
Reverse luchtstroom mondstuk voor een luchtcompressor

Reverse luchtstroom mondstuk voor een luchtcompressor

Dus na het bekijken van een video over het reinigen van uw droger ventilatieopeningen ging ik op zoek naar een bijlage voor het einde van mijn luchtcompressor. Een bijlage van reverse luchtstroom die is verbonden met het einde van uw compressor lucht
Hoe reverse-engineering een schematische voorstelling van een circuit bord

Hoe reverse-engineering een schematische voorstelling van een circuit bord

dit project is een resultaat van hoeft te een binnenlandse elektronische serviceartikel zonder zijnde kundig voor het verkrijgen van een schakeldiagram.Het proces bleek zeer lange en moeizame, maar ook zeer de moeite waard.  De stappen die hier worde