{"id":2164,"date":"2018-08-22T14:35:23","date_gmt":"2018-08-22T14:35:23","guid":{"rendered":"http:\/\/www.blog.exrockets.com\/blog\/?p=2164"},"modified":"2018-08-26T13:18:27","modified_gmt":"2018-08-26T13:18:27","slug":"xyz-3d-printer-cartridge-reset-with-pic18f2550","status":"publish","type":"post","link":"http:\/\/www.blog.exrockets.com\/blog\/xyz-3d-printer-cartridge-reset-with-pic18f2550\/","title":{"rendered":"XYZ 3D PRINTER CARTRIDGE RESET WITH PIC18F2550"},"content":{"rendered":"<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP0.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2166\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP0.jpg\" alt=\"\" width=\"1795\" height=\"1280\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP0.jpg 1795w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP0-300x214.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP0-768x548.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP0-1024x730.jpg 1024w\" sizes=\"auto, (max-width: 1795px) 100vw, 1795px\" \/><\/a><\/p>\n<p>I have an old 3D printer from XYZ (Da Vinci 1.0) which I purchased some years ago but actually haven\u2019t been using it and I am only on my third cartridge. Last week I wanted to print something and I had a cartridge with about 20m left in it and I needed only 5m. Suddenly while I was printing, the printer stopped and said \u201c0 meters left\u201d \u2013 this couldn\u2019t be right!<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2167\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART2.jpg\" alt=\"\" width=\"281\" height=\"196\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART2.jpg 1800w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART2-300x209.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART2-768x535.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART2-1024x713.jpg 1024w\" sizes=\"auto, (max-width: 281px) 100vw, 281px\" \/>\u00a0<\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2168\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART1.jpg\" alt=\"\" width=\"302\" height=\"196\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART1.jpg 1800w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART1-300x195.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART1-768x498.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/CART1-1024x664.jpg 1024w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/a><\/p>\n<p>So I opened the cartridge and there was still plenty of material left (see the picture above), then I checked the other 3 rolls I have and I saw the same situation. To be frank, I found this quite unfair and decided to reset the cartridge\u2019s memory so I can use the remaining material in full.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/EEPROM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2172 alignright\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/EEPROM.jpg\" alt=\"\" width=\"259\" height=\"227\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/EEPROM.jpg 1709w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/EEPROM-300x263.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/EEPROM-768x674.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/EEPROM-1024x899.jpg 1024w\" sizes=\"auto, (max-width: 259px) 100vw, 259px\" \/><\/a><\/p>\n<p>EEPROM<\/p>\n<p>First step was to make a EEPROM programmer. When I took the chip off from the cartridge it seemed to be the Microchip\u2019s 11LC010 1Kb UNI\/O chips. Without going into technicalities, this protocol requires only one wire and supply.<\/p>\n<p>PROGRAMMER<\/p>\n<p>Making the programmer is very simple task &#8211; still you will need to flash the PIC with a PIC programmer. For this occasion I used PIC18F2553, but the firmware will work with PIC18F2550, PIC18F4553 and PIC18F4550 as well.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/SCH-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2183\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/SCH-2.jpg\" alt=\"\" width=\"1800\" height=\"1350\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/SCH-2.jpg 1800w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/SCH-2-300x225.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/SCH-2-768x576.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/SCH-2-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 1800px) 100vw, 1800px\" \/><\/a><\/p>\n<p>Once my programmer was ready on the breadboard, I downloaded the memory from my 3 empty cartridges and started decoding the information. After some on-line reading and going through the code it seemed clear how the memory is organized and the meaning of the different blocks.<\/p>\n<p>When I was programming the EEPROM I was thinking that I will have to go through the same procedure every time my new cartridge says 0 meters left and decided to make a small software application to be used in future as well instead of manually editing the code \u2026 besides who knows what I will remember after couple of months or an year. So I changed my XYZ programmer to connect to the PC through the USB port and all programming is controlled now by the software.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP1_0.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2205\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP1_0.jpg\" alt=\"\" width=\"772\" height=\"389\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP1_0.jpg 772w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP1_0-300x151.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP1_0-768x387.jpg 768w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/a><\/p>\n<p>Using the program is easy:<\/p>\n<p>READ \u2013 reads the XYZ cartridge memory and decodes the information while saving it in the log file. I advise to read the original cartridge memory, before you start doing any changes<\/p>\n<p>READ FROM FILE \u2013 instead of using the chip\u2019s information, you can load the code from a text file<\/p>\n<p>SIMPLE RESET \u2013 or \u201cOne Click Reset\u201d. The only thing you have to do is to \u201cREAD\u201d the memory (or open a file) and click this button to reset the cartridge to its original state. All modifications done with the drop-down menus will be ignored<\/p>\n<p>ADVANCED RESET \u2013 allows you to modify some of the cartridge settings through the drop-down menus. (Please note that it looks like that the latest XYZ firmware doesn\u2019t support 400m cartridges)<\/p>\n<p>RESET APP \u2013 brings the application to its initial state i.e. will reset all fields in the software \u2013 equivalent to closing and re-opening the application<\/p>\n<p>MEMORY SIZE &#8211; Choose the memory size of your cartridge<\/p>\n<p>While the memory is being programmed, there is some information displayed and some checks are being done. These checks will inform you of the progress and will stop the reset procedure if an error occurs. Most of the information will be saved in the *log file which you can find in the main directory. Nevertheless if something goes wrong it would be best to copy the information from the both text boxes in the program and save it.<\/p>\n<p>I saw on-line that some of the reset tools are having trouble with the newest XYZ firmware \u2013 probably they are not doing all the necessary checks and\/or are not decoding properly the memory information.<\/p>\n<p>I suspect newer cartridges might be using larger memory chips, but my guess is for compatibility purposes cartridges with 1Kb EEPROM still will be supported. In these memory chips if the internal address pointer exceeds the memory boundary the pointer will wrap around to the beginning. Thus there is no (easy) way to distinguish between different memory sizes (from printer\u2019s firmware perspective) without additional write-read procedures. Therefore if a larger EEPROM chip (thus newer cartridges) is repeatedly written to the end of the memory with the data from a 1Kb chip, they should appear to the printer\u2019s firmware as 1Kb and working as well as 1Kb chips. However this is something I\u2019ll have to confirm \u2026 but I\u2019ll leave that for future if it becomes an issue.<\/p>\n<p>Today (August 2018) I checked my application and there is no problem with the latest XYZ firmware for my 3D printer \u2013 resetting the cart works just fine. So here is an example of resetting my \u201cPURPURIN\u201d cartridge.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP2_0.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2206\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP2_0.jpg\" alt=\"\" width=\"769\" height=\"388\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP2_0.jpg 769w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP2_0-300x151.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP2_0-768x387.jpg 768w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP3_0.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2207\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP3_0.jpg\" alt=\"\" width=\"769\" height=\"387\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP3_0.jpg 769w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP3_0-300x151.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/APP3_0-768x386.jpg 768w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2192\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP2.jpg\" alt=\"\" width=\"190\" height=\"129\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP2.jpg 1800w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP2-300x203.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP2-768x521.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP2-1024x694.jpg 1024w\" sizes=\"auto, (max-width: 190px) 100vw, 190px\" \/>\u00a0<\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2193\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP3.jpg\" alt=\"\" width=\"190\" height=\"129\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP3.jpg 1800w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP3-300x203.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP3-768x521.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP3-1024x694.jpg 1024w\" sizes=\"auto, (max-width: 190px) 100vw, 190px\" \/>\u00a0<\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2194\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP4.jpg\" alt=\"\" width=\"190\" height=\"129\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP4.jpg 1800w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP4-300x203.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP4-768x521.jpg 768w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/3DP4-1024x694.jpg 1024w\" sizes=\"auto, (max-width: 190px) 100vw, 190px\" \/><\/a><\/p>\n<p>Important!<\/p>\n<p>It looks like the XYZware software is checking the serial number of the cartridge upon an online database when it is connected to Internet and the printer is on. If the SN is not found, XYZware will send a command to render the cartridge \u201cUndetermined\u201d\u00a0 (writing FF\u2019s in the memory) and the SN is blacklisted in the internal memory card. Therefore when you reset your cartridge you should always change the SN. Also you should either block your XYZware from accessing Internet in your firewall or close the software as soon as the object is transmitted to the 3D printer.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/XYZ-3D-Printer-Cartridge-Reset_V1.zip\">RESET TOOL SOFTWARE<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2018\/08\/XYZ_RSET_18F_2553_2550_4553_4550_V1.zip\">RESET TOOL FIRMWARE<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have an old 3D printer from XYZ (Da Vinci 1.0) which I purchased some years ago but actually haven\u2019t been using it and I am only on my third cartridge. Last week I wanted to print something and I had a cartridge with about 20m left in it and I needed only 5m. Suddenly [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"gallery","meta":{"footnotes":""},"categories":[8],"tags":[32,33,31],"class_list":["post-2164","post","type-post","status-publish","format-gallery","hentry","category-chemistry-and-technology","tag-cartridge-reset","tag-da-vinci-reset","tag-xyz-3d-printer","post_format-post-format-gallery"],"_links":{"self":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts\/2164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/comments?post=2164"}],"version-history":[{"count":29,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts\/2164\/revisions"}],"predecessor-version":[{"id":2217,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts\/2164\/revisions\/2217"}],"wp:attachment":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/media?parent=2164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/categories?post=2164"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/tags?post=2164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}