Rétro-ingénierie à émuler les cartouches d’encre pour une imprimante Epson (3 / 8 étapes)

Étape 3: Routines de Code de base

Ce que je voulais faire était de lire les ROMs les chariots d’encre et les utiliser ensuite pour essayer d’imiter la cartouche d’encre manquant, que je n’ai pas. Cela signifie la création d’une bibliothèque qui agira comme un hôte pour lire les données, mais peut également être utilisé pour émuler une cartouche d’encre.
Utilisation des connaissances préalables de la création de protocoles logiciels basés, j’ai créé un fichier d’en-tête avec ces fonctions :
• extern void epsnCartInit(void) ;
• extern void epsnCartStart (addr unsigned char, unsigned char écriture) ;
• extern void epsnCartStop(void) ;
• extern void epsnCartWrite (données unsigned char) ;
• extern unsigned char epsnCartRead(void) ;

J’ai également créé les définitions suivantes qui aident à se souvenir de quel code pin ce qui a été :
Pour vous le microcontrôleur, vous devez modifier ces valeurs pour convenir à votre application

#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

wait() #define DelayUS(50)

Remarque : J’ai utilisé un PIC18F et loquets pour définir les sorties, c’est juste ma préférence au choix. Nous vous invitons à utiliser n’importe quel microcontrôleur avec que vous êtes familier.

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 ;
}

La fonction de démarrage tire la DMV haute, attend, puis définit la SDA selon le bit de l’adresse ainsi que la SCK. Attend, tire SCK faible, attend encore une fois et puis tire SDA haute en conséquence à l’adresse. Ceci répète 2 fois plus sauf sur la 4ème fois, SDA a la valeur faible parce que nous voulons lire que les données dans les EEPROMs pas écrire.

void epsnCartStart (addr unsigned char, unsigned char write) {}
char i = 0 ; Utilisé pour le comptage

char tmp = 0; / / Temp variable de stockage

_ecVDDLat = 1 ; Définir la DMV haute
DelayMS(1) ; Attendez que l’EEPROM pour se préparer
_ecRSTLat = 1 ; Activez l’EEPROM pour la communication

tmp = addr ; Copiez l’adresse dans la variable temp
if(Write) {/ / si nous voulons écrire
Temp | = 0 x 08 ; définir la 4e peu élevé (' |' signifie ou)

}

while(i<4) {}
_ecSDALat = (tmp & 0 x 01) ; SDA haute ou basse selon le LSB

Wait() ; Attendre environ 50uS
_ecSCKLat = 1 ; Ensemble horloge haute
Wait() ; Attendre un autre 50uS
_ecSCKLat = 0 ; Réglage de l’horloge faible
Wait() ; Attendre un autre 50uS
tmp >> = 1 ; Juste passer tous les bits dans tmp par un
i ++ ; incrémenter le compteur par un
}

}

La fonction suivante pour implémenter est stop :
void epsnCartStop() {}
_ecRSTLat = 0 ; SET RST faible
DelayMS(1) ; Attendre un peu
_ecVDDLat = 0 ; Désactiver les EEPROMS
}

Et enfin la fonction de lecture :
unsigned char epsnCartRead() {}
char i = 0 ;
temp de char = 0 x 00 ;

while(i<8) {}
Temp >> = 1 ; Décalage vers la droite la variable temp par un
_ecSCKLat = 1 ; attachées haut SCK
Wait() ; Attendre environ 50uS
if(_ecSDA) {/ / si SDA est élevé
Temp | = 0 x 80 ; Puis ensemble bit 7 haut
}
_ecSCKLat = 0 ; Ramènerai SCK faible
Wait() ; attendre un autre 50uS

i ++ ; Incrémenter le compteur de 1
}
Return temp ; Revenir à ce que nous avons lu
}

Nous avons maintenant les fonctions de base qu’il faut lire des données dans les cartouches d’encre, permet de configurer notre microcontrôleur et les résultats.

Articles Liés

Rétro-ingénierie : USB contrôlée hack domotique

Rétro-ingénierie : USB contrôlée hack domotique

pirater un système domotique sans fil pour être contrôlé à l'aide de deux microcontrôleurs AVR de USB !Découvrez la vidéo ! Le système est vraiment plus réactif, mais le navigateur de mon téléphone est lent.Si vous le souhaitez, vous pouvez aussi com
Rétro-ingénierie en direct

Rétro-ingénierie en direct

J'ai commencé en électronique avant l'avènement de l'internet et les composants plus solides à l'État, donc obtenir des fiches techniques et des schémas n'a pas été facile pour moi. Aujourd'hui avec la fabrique faisant ICs personnalisés et écrans à c
Rétro-ingénierie : Ampoule de LED RVB avec télécommande IR

Rétro-ingénierie : Ampoule de LED RVB avec télécommande IR

nous avons acheté 20 de ces ampoules LED RVB pour un parti au travail, mais j'ai été un peu déçu avec les fonctions de décoloration de couleur ils ont fourni. J'ai donc décidé de prendre un ingénieur apart, inverse le protocole infrarouge et voir si
Comment remplir les cartouches d’encre HP en deux minutes.

Comment remplir les cartouches d’encre HP en deux minutes.

Comment remplir HP 21 27 56 imprimante jet d'encre panier en moins de deux minutes.Pour des informations plus détaillées, consultez mon blog :http://refillhp.blogspot.com/
Comment inverser l’ingénierie pcb

Comment inverser l’ingénierie pcb

PCB rétro-ingénierie, également appelée clonage de PCB ou de copie de PCB, utilise la technologie de l'ingénierie inverse sur le PCB qui a été conçu et fabriqué par d'autres, c'est d'utiliser des PCB ayant trait aux logiciels pour copier la carte de
Comment enseigner l’ingénierie orientée projet Kids

Comment enseigner l’ingénierie orientée projet Kids

Si vous aimez ce Instructable, alors je vous encourage à acheter mon livre, Ingénieur de l'élastique. Elle est pleine de projets plus impressionnants et originaux fabriqués à partir de matériel domestique. Vous pouvez le trouver là où les livres sont
Recycler les cartouches jet d’encre CMJN dans des enclos de marqueur

Recycler les cartouches jet d’encre CMJN dans des enclos de marqueur

j'ai parfois jeter des cartouches d'encre et remarqué comment complet qu'ils sont toujours même si l'imprimante ne le pense. J'ai pensé à fixer certains desséchées vieux marqueurs à bas prix sur l'ouverture de l'extrémité qui se connecte à l'impriman
Conversion d’une imprimante jet d’encre pour imprimer les BPC

Conversion d’une imprimante jet d’encre pour imprimer les BPC

Voir l'étape 12 pour un gravure/projet mise à jour et nouveaux résultats!Récemment, un des mes objectifs a été de trouver un moyen pour faciliter le processus de création de PCB (Printed Circuit Board). J'aime être en mesure de concevoir que quelque
Imprimer les Circuits conducteurs avec une imprimante jet d’encre

Imprimer les Circuits conducteurs avec une imprimante jet d’encre

Ce tutorial va vous apprendre comment modifier votre imprimante jet d'encre moyenne pour pouvoir imprimer les circuits conducteurs d'électricité. Cette technologie est assez nouveau mais peut fournir une option plus rapide et plus sûr de prototypage
Comment imprimer avec une cartouche d’encre « vide ».

Comment imprimer avec une cartouche d’encre « vide ».

Il est tard et vous devrez imprimer certains rapports à emporter avec vous à une réunion. Votre imprimante est à court d'une seule couleur d'encre et maintient votre en otage tout le travail jusqu'à ce que vous pouvez mettre dans une nouvelle cartouc
Comment faire pour remplacer la cartouche d’encre Neopost IJ25

Comment faire pour remplacer la cartouche d’encre Neopost IJ25

Faire un reset de Neopost IJ25 cartouche peut être difficile si vous n'avez pas remplacé votre encre ij25 cartouche avant. Cependant nous avons mis en place ce guide pour aider et faire le travail rapidement.Si vous avez besoin de Télécharger un Manu
Contrôler une imprimante 3D avec les gestes de la main

Contrôler une imprimante 3D avec les gestes de la main

j'ai écrit à ce sujet avant, mais j'ai réussi un laboratoire de technologie créative au California College of the Arts. J'ai aider les élèves avec un large éventail de compétences, créer un large éventail de projets. Une des nombreuses parties de mon
Ingénierie d’un système d’alimentation pour cycle-camions lourds et les velomobiles

Ingénierie d’un système d’alimentation pour cycle-camions lourds et les velomobiles

Utilitaire lourd cycles deviendra une très grande partie du transport, comme les gens se réveillent à la réalité du changement climatique. Il n'est pas facile de comprendre comment fournir assez basse vitesse couple Poussée qui est nécessaire pour gr
La plupart les plate-formes d’ingénierie jamais

La plupart les plate-formes d’ingénierie jamais

J'ai construit ces étagères pour ma copine maintenant fiancé (Merci beaucoup) donc elle pourrait remplir avec tout le travail Uni ici.Pour une raison quelconque, j'aime construire des étagères que vous pourriez vraiment remarqué si vous consultez mes