{"uuid":"f99ab6c7-db3a-4eea-be14-593a7eb183ba","slug":"imprimante-ricoh-sp-c252sf-ps","title":"Imprimante Ricoh SP C252DN","author":"cedric@abonnel.fr","published":true,"published_at":"2025-01-14 07:42:58","created_at":"2025-01-14 07:42:58","updated_at":"2025-01-14 07:42:58","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Informatique","content":"# Imprimante Ricoh SP C252DN\n\n![Nom de la section](dummy.png)\n\nUn fichier PPD est un descripteur qui contient des informations sur les fonctionnalités de l'imprimante, telles que les résolutions d'impression disponibles, les options de finition et les polices de caractères disponibles. Les systèmes d'exploitation, y compris Linux, utilisent les informations contenues dans le PPD pour configurer l'imprimante et fournir des options d'impression avancées.\n\nPour utiliser un PPD sous Linux, vous devez tout d'abord installer le pilote d'imprimante correspondant à votre imprimante.\n\nPour l'imprimante **Ricoh SP C252DN** sélectionner le protocole JetDirect.\n\n![](20230313-201028.png)\n\nChoisir le pilote `Generic` > `Generic PDF Printer`\n\n![](20230313-201303.png)\n\nSur le site https:*git.abonnel.fr/cedricAbonnel/richo_c250dn_c252dn/src/branch/main/ppd télécharger le fichier **PPD file**.\n\nDans la liste des imprimantes, sélectionner le symbole `Paramètre` (![roue crantée](20230313-202024.png)) puis sélectionner `Informations sur l'imprimante` :\n\n![](20230313-201543.png)\n\nCliquer sur le bouton `Installer le fichier PPD`. Choisir le fichier fraîchement téléchargé. Changer le nom, renseigner l'emplacement.\n\n![](20230313-201400.png)\n\nFermer avec la croix.\n\n![](20230313-201855.png)\n\nUne fois le pilote installé, vous pouvez sélectionner l'imprimante dans les options d'impression de votre application, puis sélectionner les options d'impression disponibles.\n\n![](20230313-201923.png) ![](20230313-201933.png)\n\nEn résumé, si vous disposez d'un pilote d'imprimante Linux compatible avec votre imprimante qui inclut le PPD approprié, vous pouvez utiliser le PPD pour configurer votre imprimante et profiter de toutes les fonctionnalités avancées qu'elle offre.\n\n# Reprogrammation de la puce de toner\nPort de communication\n\n![](20230919-225855.png)\n\n![](20230919-225945.png)\n\n![](20230919-230131.png)![](20230919-230139.png)\n\n![](20230919-230155.png)\n\n```\n* This code updates Ricoh Toner chip for Ricoh Aficio SP C250SF, SP C250DN, C250e, etc...\n* Update EEPROM_I2C_ADDRESS define value with the chip you want to reprogram\n* 83 is Chip K - black\n* 82 is Chip C - cyan\n* 81 is Chip M - magenta\n* 80 is Chip Y - yellow\n\n#define EEPROM_I2C_ADDRESS 83\n#include \n\n* blank data for K, C, M & Y chip. 128 array of data. I got it from data dump of a replacement chip. \nbyte KChipData[]={168,0,1,3,18,1,1,255,100,0,52,48,55,53,52,51,20,9,65,66,22,0,22,38,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,100,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0};\nbyte CChipData[]={168,0,1,3,14,2,1,255,100,0,49,49,49,53,52,54,20,2,65,66,23,0,7,1,255,255,255,255,255,255,255,255,88,48,56,54,80,52,48,49,50,48,56,0,68,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,85,0,18,0,40,0,5,184,230,50,0,128,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0};\nbyte MChipData[]={168,0,1,3,14,3,1,255,100,0,49,49,49,53,52,54,20,2,65,66,24,0,7,16,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,100,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0};\nbyte YChipData[]={168,0,1,3,14,4,1,255,100,0,49,49,49,53,52,55,20,2,65,66,25,0,3,7,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,100,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0};\n\nvoid setup() {\n- Select correct data for chip then copy to WriteData array\n byte WriteData[128];\n switch (EEPROM_I2C_ADDRESS){\n case 83:\n memcpy(WriteData,KChipData,128*sizeof(byte));\n break;\n case 82:\n memcpy(WriteData,CChipData,128*sizeof(byte));\n break; \n case 81:\n memcpy(WriteData,MChipData,128*sizeof(byte));\n break;\n case 80:\n memcpy(WriteData,YChipData,128*sizeof(byte));\n break;\n default: *default K chip data, no reason.\n memcpy(WriteData,KChipData,128*sizeof(byte));\n break;\n }\n \n- Start Wire and Serial bus\n Wire.begin();\n Serial.begin(9600);\n delay(100);\n\n Serial.println(\"Start\");\n Serial.println(\" \");\n\n- Start Write Chip with blank data\n Serial.println(\"Write 128 bytes:\");\n byte wordaddress;\n\n for(byte i=0;i<128;i++){\n wordaddress = i;\n i2cwrite[^note: byte)wordaddress,(byte)WriteData[i]);\n Serial.print(wordaddress);\n Serial.print(\":\");\n Serial.print(WriteData[i]);\n Serial.print(\" \");\n }\n\n- Start Read chip\n Serial.println(\" \");\n Serial.println(\"Read 128 bytes:\");\n for(byte i=0;i<128;i++){\n byte readVale = i2cread(i);\n Serial.print(i);\n Serial.print(\":\");\n Serial.print(readVale);\n Serial.print(\" \");\n } \n Serial.println(\" \"); \n Serial.println(\"End\");\n\n}\n\nvoid loop() {\n\n}\n\nvoid i2cwrite(byte address, byte data) {\n Wire.beginTransmission(EEPROM_I2C_ADDRESS);\n Wire.write((byte)address);\n Wire.write((byte)data);\n Wire.endTransmission();\n delay(20);\n}\n\nbyte i2cread(byte address) {\n byte rData = 0;\n Wire.beginTransmission(EEPROM_I2C_ADDRESS);\n Wire.write((byte)address);\n Wire.endTransmission();\n\n Wire.requestFrom(EEPROM_I2C_ADDRESS,1);\n while (Wire.available(]{\n rData = Wire.read();\n return rData;\n }\n}\n\nvoid WhatI2CAddress() {\n for(int i=0;i<128;i++){\n Wire.requestFrom(i,1); *request first data byte\n Serial.print(i);\n Serial.print(\":\");\n while(Wire.available()){\n byte c = Wire.read();\n Serial.print(c); //if data exist, print it out. That way you can identify which address.\n }\n Serial.println(\" \");\n delay(5);\n }\n}\n```","featured":false,"tags":[]}