{"id":22843419,"url":"https://github.com/milahu/reset-toner-chip","last_synced_at":"2025-09-04T13:48:17.636Z","repository":{"id":109861259,"uuid":"563314854","full_name":"milahu/reset-toner-chip","owner":"milahu","description":"reset laser toner cartridge chip","archived":false,"fork":false,"pushed_at":"2022-11-14T12:29:06.000Z","size":30,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-04T09:55:01.312Z","etag":null,"topics":["arduino","eeprom","i2c","laser-printer","printer","printer-hacking","refill","reset","reset-toner","reset-toner-chip","reverse-engineering","toner","toner-chip"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/milahu.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-08T11:06:28.000Z","updated_at":"2025-04-17T23:19:05.000Z","dependencies_parsed_at":"2023-03-10T08:00:43.979Z","dependency_job_id":null,"html_url":"https://github.com/milahu/reset-toner-chip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/milahu/reset-toner-chip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Freset-toner-chip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Freset-toner-chip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Freset-toner-chip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Freset-toner-chip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/milahu","download_url":"https://codeload.github.com/milahu/reset-toner-chip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milahu%2Freset-toner-chip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273619538,"owners_count":25138238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","eeprom","i2c","laser-printer","printer","printer-hacking","refill","reset","reset-toner","reset-toner-chip","reverse-engineering","toner","toner-chip"],"created_at":"2024-12-13T02:14:39.782Z","updated_at":"2025-09-04T13:48:17.601Z","avatar_url":"https://github.com/milahu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# reset-toner-chip\n\ntools and docs to reset a laser toner cartridge chip\n\n\n\n\u003cblockquote\u003e\n\nhttps://www.techwalla.com/articles/how-to-reset-a-laser-toner-chip\n\nHow to Reset a Laser Toner Chip\n\nLaser printers use special toner cartridges that have smart chips installed on them.\n\nWhen the printer runs out of toner, the smart chip recognizes the low ink status and sends a warning to the printer.\nThe printer then sends a message to the connected computer, and that's how you know when to change the cartridge.\n\nHowever, instead of changing the cartridge, many people prefer to refill the existing cartridge.\n\n**After refilling, you must reset the toner chip** so it recognizes the refilled ink level\nusing a specific tool that can be bought from a printer accessories store.\n\n\u003c/blockquote\u003e\n\n\n\n## generic\n\nhttps://github.com/search?q=reset+toner\n\nhttps://github.com/lugu/toner_chip_reset\n\n\n\n## Samsung\n\n\n\n### Samsung CLP-510\n\nhttps://github.com/nharrer/speer\n\nSpeer is a python script that can backup, restore and reset the content of the EEPROM of toner cartridges for the Samsung CLP-510 series printers.\n\n\n\n## Brother\n\n\n\n### Brother HL-L3230CDW\n\ntoner cartridges: TN227, TN223\n\nhttps://reverseengineering.stackexchange.com/questions/20780/identifying-a-toner-chip-and-its-communication-protocol-to-re-program-it\n\n\nhttps://github.com/lugu/toner_chip_reset\n\nAdvices to reset your toner chip with an Arduino\n\nhttps://www.google.com/search?q=link%3Ahttps%3A%2F%2Fgithub.com%2Flugu%2Ftoner_chip_reset\n\n\n\n### Ricoh\n\n\n\n### Ricoh SP 112\n\nhttps://geizhals.de/?fs=ricoh+sp+112\n\ntoner: Ricoh 407166\n\nhttps://github.com/lugu/toner_chip_reset\n\nchip: FM24C02B https://github.com/lugu/toner_chip_reset/blob/master/datasheet/FM24C02B-04B-08B-16B.pdf\n\n#### Links\n\nBlog: http://www.hobbytronics.co.uk/arduino-external-eeprom http://www.hobbytronics.co.uk/eeprom-page-write http://lusorobotica.com/index.php/topic,461.msg2738.html\n\nArduino: https://www.arduino.cc/en/Reference/Wire\n\nTonner investigations: http://www.mikrocontroller.net/topic/369267 https://esdblog.org/ricoh-sp-c250dn-laser-printer-toner-hack/ http://rumburg.org/printerhack/\n\nToner chip reset for sale: http://www.aliexpress.com/item/chip-FOR-RICOH-imagio-SP-112-SF-chip-MAILING-MACHINE-printer-POSTAGE-printer-for-Ricoh-100/32261857176.html http://www.ebay.com/itm/Toner-cartridge-refill-kit-for-Ricoh-Aficio-SP112-SP112SU-SP112SF-407166-non-OEM-/161312940764\n\nRicoh: https://www.techdata.com/business/Ricoh/files/july2014/CurrentMSRP.pdf http://support.ricoh.com/bb_v1oi/pub_e/oi/0001044/0001044844/VM1018655/M1018655.pdf\n\nDatasheets: http://www.gaw.ru/pdf/Rohm/memory/br24l01.pdf http://www.rinkem.com/web/userfiles/productfile/upload/201009/FM24C02B-04B-08B-16B.pdf\n\nLogical Analyser \u0026 I2C: http://support.saleae.com/hc/en-us/articles/202740085-Using-Protocol-Analyzers http://support.saleae.com/hc/en-us/articles/200730905-Learn-I2C-Inter-Integrated-Circuit\n\n\n\n### Ricoh SP 204\n\nhttps://github.com/seurat-atreides/RICOH_SP-204_Toner-Chip-Reset\n\nArduino sketch to reset your RICOH SP-204 toner chip\n\n\n\n## chip: 24C16L\n\ngerman\n\nhttps://www.mikrocontroller.net/topic/482699\n\n\u003e Ich finde auch leider zu dem 24C14(L) so gar kein Datasheet\n\nHuh?\n\n24C16 ist ein 08/15-Standard-EEPROM.\n\nps: Zum Beispiel hier:\n\nhttps://www.st.com/resource/en/datasheet/m24c16-f.pdf\n\n---\n\n\u003e Ich würde gerne von einer vollen Druckerkartusche einen Dump ziehen, und\n\u003e nach erfolgreichem Wiederbefüllen dann immer wieder neu schreiben.\n\nMit ein bisschen Pech speichert der Drucker die Seriennummern.\nUnd natuerlich nicht auf dem EEPROM der Druckerkartusche.\n\nBei HP-Tintenspuckern reicht das \"Gedaechtnis\" aber nur fuer 2.\nMit 3 Patronen klappt es dann...\n\n---\n\nIch konnte es letzendlich doch noch zum laufen bekommen.\n\n8 devices found in 293 milliseconds.\n\nNochmal alle Kabel ausgetauscht, Testklammern gekauft statt meiner \nSchiebevorrichtung und es lief direkt auf Anhieb!\n\n\n\n## todo\n\nhttps://forum.arduino.cc/t/resetting-printer-cartridge-chip-using-arduino-uno/927489\n\n\nhttps://github.com/mlueft/tores_console\n\nIn combination with the tores arduino scetch it can be used to down and upload dump file from i2c connected EEproms. Actually this was the reason for this app to reset my toner chip.\n\nTores stands for Toner reset :-)\n\n\n\nhttps://electronics.stackexchange.com/questions/569631/help-identify-8-pin-soic-chip-with-markings-1734-6m-2w4\n\nResearch indicates that a lot of these \"toner chips\" are nothing more than I2C EEPROMs.\n\nIt is clearly an I2C device, so you can find it's address using a microcontroller to scan the I2C bus.\n\nA lot of these EEPROMs work the same way.\n\nThis github repo has code and information on how these EEPROMs are generally used in printers:\n\nhttps://github.com/lugu/toner_chip_reset\n\nIf you have a working printer, you can also sniff the I2C bus to see what data is transferred between the chip and printer. The above github link has information on how to do that.\n\n\n\nhttps://blog.slicer.ca/2018/12/resetting-page-count-on-samsung.html\n\nAfter some research, it turns out drum unit uses the same technique as toner cartridges to enforce end-of-life.  It uses a small 4Kbit i2c EEPROM to store the page count.  \n\nThere are some great resources for resetting almost the same EEPROM on toner cartridges on Samsung printers.  I used and adapted these to reset the drum counter.\n\nhttps://github.com/nharrer/speer\nhttps://www.netzgewitter.com/projects/speer-samsung-printer-eeprom-resetter/\nhttps://www.netzgewitter.com/2014/12/reset-samsung-clp510-toner-cartridge-with-raspberry-pi/\nhttps://github.com/lugu/toner_chip_reset\n\nNote: from what I have been reading, some versions of the firmware require modifications to other offsets too.  It's probably easiest to take a snapshot of the eeprom, save it somewhere safe, and then reload the eeprom 5 years later when the page counter is too high.\n\n\n\nchip resetter\n\nhttps://www.techwalla.com/articles/how-to-reset-a-laser-toner-chip\n\nHow to Reset a Laser Toner Chip\n\nLaser printers use special toner cartridges that have smart chips installed on them.\nWhen the printer runs out of toner, the smart chip recognizes the low ink status and sends a warning to the printer.\nThe printer then sends a message to the connected computer, and that's how you know when to change the cartridge.\nHowever, instead of changing the cartridge, many people prefer to refill the existing cartridge.\nAfter refilling, you must reset the toner chip so it recognizes the refilled ink level\nusing a specific tool that can be bought from a printer accessories store.\n\nStep 1\nBuy a chip resetter specific to your laser printer cartridge.\nA resetter is a tiny plastic tool, which when brought into contact with the printer's chip, resets its memory.\n\nStep 2\nPlace the cartridge in an upward position on a flat surface.\nThe release points on the cartridge should be pointing in the upward direction.\nHold the resetter upright, making sure its LED lights are also pointing upward.\n\nStep 3\nPush down all the pins on the resetter. Depending on the model, there may be a button instead of pins.\n\nStep 4\nKeep pushing the pins/button until the LED light on the cartridge turns green,\nor it indicates with a beep that the cartridge has been reset.\nThe entire procedure shouldn't take more than five seconds.\n\nStep 5\nOpen the printer tray and place the cartridge back into the printer.\nThe cartridge is now ready for use.\n\n\n\nhttps://reverseengineering.stackexchange.com/questions/20780/identifying-a-toner-chip-and-its-communication-protocol-to-re-program-it\n\nIdentifying a toner chip and its communication protocol to re-program it\n\nI need help identifying a chip and how to reset it from a new Brother's toner cartridge TN227 and TN223. This comes from the new Brother HL-L3230CDW laser printer.\n\nThere is currently no information on how to reverse engineer these chips to reset them, so I decided to investigate further, however I'm currently stuck.\n\n...\n\nI then connected a logic analyzer to the printer with the chip attached to see if I could figure out what protocol it was using. Assuming white is GND, Here's a sample of the Sigrok Pulseview received:\n\n...\n\nI'm not sure the best approach to analyze the binary data, since I can't identify the communication protocol, and I'm concerned that it might be encrypted. After searching patents to see if I could find more info on the chip, this was all I could find: http://www.freepatentsonline.com/y2013/0070279.html This suggests that the chip may be using crypto to hide info on the chip. If so, would it possible to crack it?\n\nI tried analyzing the data as if it were I2C, but this doesn't seem right, Also I'm pretty sure it's not SPI. I do know there's a clock involved, so I know it has to be synchronous, but any help would be appreciated!\n\n\n\nTim Do Brava:\n\nIf you have a Brother printer you can use these instructions I found on Amazon on how to reset your cartridge chip, it worked for me.\n\n\"I was able to reset my toner cartridges for this model by using the process that I found by doing some googling for a \"better way to reset brother\" toner cartridges.\n\nSummarized, open the inside cover where the toner cartridges are located. Next, press the back and X buttons simultaneously. Then, press the back button again. This should bring up the toner reset menu.\n\nI had to try a number of times...I think I wasn't pressing exactly at the same time on those two buttons OR they intentionally build it so you have to do it multiple times to make it work. In any case, it is now reset. Happy Camper.\"\n\n\n\nhttps://blog.123ink.ca/2016/08/what-is-a-printercartridge-chip/\n\nCartridge Refills and Replacements\nToner chips have caused some controversy\nbecause they make it difficult to refill a printer cartridge.\nAfter you refill a cartridge, you have to reset or replace the chip\nin order for your printer to allow you to print.\nOur compatible inks and toners have been installed with a new chip in our factory\nso you don’t have to worry about resetting the chip.\n\n\n\nhttps://www.instructables.com/How-to-Refill-Your-Printer-Toner-Cartridge-the-Eas/\n\nRefill Your Laser Printer Toner Cartridge the Easy Way\n\n\n\nreset the resetter ... (its getting stupid)\n\nhttps://www.reddit.com/r/arduino/comments/fxrkqm/reverse_engineering_a_printercartridgeresetmodule/\n\nReverse engineering a printer-Cartridge-reset-module?\n\n\n\nhttps://www.freelancer.com/projects/c-programming-verilog-vhdl/printer-toner-cartridge-reverse/\n\nWe design and develop after market printer/toner cartridges. We are looking for a new Engineer to help us with our products. We take a OEM printer and Cartridge and reverse engineer the firmware. Sometime we have to actual Decap the current IC that is used in the cartridge and use a SEM or FIB to be able to do what we need to. Extract code from the current secure controller, Create a flow chart, Emulate exactly what the current chip is doing. (100%) This is a very technical job, we only want people that really understand what we are asking for. We have lost many opportunities lately because we lost our last engineer. We need someone who is going to be 100% dedicated to what we are doing.\n\nMain equipment that will be needed to complete this project.\n\nDecapping Device\n\nFIB\n\nSEM\n\nProbing Station\n\n\n\nhttps://www.groovypost.com/howto/save-laser-toner-hack/\n\ncheap trick\n\nblock infrared sensor\n\n\n\nhttps://forum.arduino.cc/t/resetting-printer-cartridge-chip-using-arduino-uno/927489\n\n\nhttps://stefansbb.blogspot.com/2016/04/hacking-ricoh-sp-c250dn-toner-cartridges.html\n\n\n\nhttps://www.netzgewitter.com/2014/12/reset-samsung-clp510-toner-cartridge-with-raspberry-pi/\n\n\nhttps://bitbucket.org/Electricks/arduiono_sketches/src/d4a242e5b1cdebb4c38a5d93fbd5d17411abe3c4/EEPROM/EEPROM.ino?at=master\n\n\n\nhttps://www.eevblog.com/forum/chat/end-the-monopoly-we-need-open-source-inkjet-printers/\n\nlong discussion, focus on INKJET printers (waste of time, mostly)\n\nEnd the Monopoly - we need Open Source Inkjet Printers\n\nthis video got me thinking\n\nInk Cartridges Are A Scam\nhttps://www.youtube.com/watch?v=AHX6tHdQGiQ\n\ntranscript:\n[generic/ink-cartridges-are-a-scam.md](generic/ink-cartridges-are-a-scam.md)\n\none way to end the inkjet printer monopoly is open source competition.\nthis has many interesting possibilities.\nif 3D printing has open source why not 2D printing?\nto end the ink cartridge scams.\n\n\n\nhttps://www.quora.com/Is-there-any-Laser-Printer-available-whose-cartridge-does-not-come-with-a-toner-reset-chip?share=1\n\n\n\nhttps://www.quora.com/Is-there-any-open-source-hardware-for-inkjet-laserjet-printers-and-multi-function-devices?share=1\n\n\n\nhttps://hackaday.io/page/6176-why-is-there-no-open-source-firmware-for-laser-or-inkjet-printers\n\n\n\nI used to work at a company making printer software. Basically, a company (Canon, for instance) would come out with a new printer hardware, we would tune our code to run on their platform, they would then put the software into their machine. Any printer that isn't from HP or Apple has some of my code in it.\n\nThe software that goes into printers is hundreds of thousands of lines of code.\n\nBasically, the printer is underspec'd for rendering, doesn't have enough memory to render a full page, so the software breaks the page up into slices and renders the next slice while the current slice is printing. That takes a lot of effort to get right.\n\nFor example, a laser printer cannot stop in the middle of printing a page, so not only does the slice have to fit in memory it has to be finished rendered at the time the drum reaches that part of the page. \n\nThen there is verification: the three basic languages are postscript and PCL/GL, and the number of corner cases in those description languages is massive. My company purchased a debug set of reference tests and rendered output for these three languages... and it was massive. We're talking huge amounts of shelf space just to store these books of output, and there were new ones every time the language spec changed. (Postscript and the other languages have versions, and bug fixes.)\n\nThe printer hardware is straightforward: the hardware description is usually a known processor type (for which you can get a compiler), and an I/O map that shows which GPIO lights up which LED, how to send data to the laser and so on. That part was pretty straightforward.\n\nTo give you an idea of the complexity, IBM came and had us port our existing software to their new machine - software which had been ported to several dozen other hardware systems and was pretty robust - and the initial build released by the software team was found to have 900 bugs.\n\nIMO, Only a company with a dedicated software and QA team and good management will be able to make printer software.\n\n---\n\ntoo complex\n\nwe only want to patch some parts of the firmware,\nso we can reset the toner chip with the printer\n\nsome printer have a hidden menu for this,\nmaybe all printers have it?\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilahu%2Freset-toner-chip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilahu%2Freset-toner-chip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilahu%2Freset-toner-chip/lists"}