Da Vinci XYZ 3D Printer Filament Counter Resetter

Introduction: Da Vinci XYZ 3D Printer Filament Counter Resetter

One of my XYZ 3D printer cartridges died a couple of days ago :( (so sad) -- the printer was showing 0m left, where there was still filament in the cartridge ... ?!?, so I made this simple cartridge counter resetter that snaps at the bottom and resets the internal eeprom counter. It uses an Arduino Pro Mini PCB, spring-action push pins and a 3v button cell. The code on the Arduino allows you to set the filament length to 240m so it should not bother you for a while.

Step 1: Building the Cartridge Resetter

If you want to make your own, you will need the 3D printed shell published on Thingiverse.com, an Arduino Pro Mini

(either this one or any other compatible depending on how long you want to wait to get it, 3 spring-loaded pins the actual code (you can use the original code on github written by votivo) and the wiring instructions (below). If you can't be bothered getting into programming or having to buy the USB programmer etc, or if you simply dont' have the time, you can get the whole thing (less the 3d printed shell) from me - see below for the magic paypal buy now button.

Step 2: Cutting the Wires

Cutting the wires

This is a guide to help you prepare the 3 needed wires (can be any wire, the thinner the better since there is no much space under the controller). The wires must be insulated and can be of any color. They should be stripped using the below (approximate) lengths (they are not critical, just make sure it all gets wired correctly and fits snugly - there is no much space in there!).

Step 3: Wiring the Controller

Insert the golden pins into the 3 holes in the shell/enclosure, making sure you push them in to their end (they should have a tight fit, if they are loose, try the other shells with different size holes which I published in Thingiverse).

Use the diagram image to wire the Arduino to the 3 golden pins with the shell/enclosure.

The resetter only fits one way (which prevents you from accidently reversing it). The tab always faces the outside (or end) of the filament cartridge.

Step 4: Using the Cassette Filament Resetter

Connect the 3V battery into the battery slot (the power light on the Arduino will come on and the programming light will start flashing – if not, check the wires and make sure they connect to the battery properly, also, make sure that the battery is inserted correctly. The negative of the battery should face the outside of the shell/enclosure and the positive towards the Arduino). Position the resetter as per the pictures below (Fig 1, Fig 2), press on it and wait 2 seconds, the flashing light will stop flashing and go solid for about 2 seconds. Once programming is complete, it will turn off. At this point you can remove the programmer from the cartridge and disengage the battery – do not leave the battery plugged into the programmer or it will drain. If needed, please visit wctek.com/shop and take a look at the video on that page …

Step 5:



    • Creative Misuse Contest

      Creative Misuse Contest
    • Tiny Home Contest

      Tiny Home Contest
    • Metalworking Contest

      Metalworking Contest

    50 Discussions


    1 year ago

    Hi, does it works with PVA material?


    Thanks for your excellent instructable, it's nice to see one so well written.

    After seeing so many positive comments saying everything worked perfectly for some users, I wonder what I'm doing wrong with my attempt.

    I have an arduino Mega 2560 , with the eeprom card connected to 5v, Gnd and digital pin 7 (I've even soldered the leads directly to the EEPROM board, just to make sure we have good connection), but all I get back in the Serial Monitor is :

    'Testing connection to Da Vinci EEPROM CHIP'

    Can you suggest what I might be doing wrong? Is it OK to use a Mega rather than a pro mini?

    Any thoughts you have would be most appreciated - the outrageous cost of the XYZ filament is sending me broke!

    Thanks in advance.

    I do not see a buy now button,

    Has anyone tried this on the new firmware AIO 1.2.2?

    1 reply

    hi JenDoll15...did you tested it on 1.2.2?

    may i know whether it can work with firmware 2.1.2?

    Thank you. It actually worked. but temperature is too high reading 220 instead of 210. it did print yet it burned the filament. how to adjust the temperature.Bed tempreature was 90 that was fine. any help. thanks

    I am giving this a try with an arduino uno R3 and I get the error below:

    Filament_98C:78: error: 'volatileboolean' does not name a type

    static boolean read_bus(void) {

    Using the github link above and copy/paste the sketch to the arduino program. I tried with the cartridge chip attached and disconnected and get the same errors. There is plenty more to the error message, but I figured I would just put the quick sample here. I am pretty new to the arduino and tried to google my way out of this to no end. Any help is much appreciated.

    3 replies

    I had this same error with version 1.6.6 of the Arduino IDE. Try downgrading to version 1.5.8 or lower. After doing so it compiled for me with no problem. When using this ensure your correct COM port is selected and turn on the Serial monitor (under tools-serial monitor or by pressing Ctrl-Shift-M) with a baud rate of 115200 so you can see the program's messages. Look for a success message after it writes the new EPROM contents.

    After a few tries, SUCCESS!!! Of course now the AIO is showing "Unidentified" in the cartridge status, but I will probably have to do some rollbacks on that firmware to see whats up. I am testing all this with the printer disconnected to the PC before I tackle the xyzWare stuff since that will probably have to go back a few revisions too. Thanks again for the help.

    I will give this a try, thanks for the assistance.


    2 years ago

    Which Battery to use? CR2032 maybe

    I have a new da Vinci jr arriving tomorrow. So question will this trick work with off brand pla? Sorry new to this whole thing. Trying to bypass xyz limitations.

    2 replies

    wctek will release a new resetter by tomorrow specifically for the davinci 1.1 Plus -- I am not sure about the JR (or if it is the same type of printer- or if it can be resetted etc).

    lol - what's wrong with you? the kit works just fine, but you do need to know how to solder and assemble it. Of course it's not a plug and play device ... Its a KIT ! If you can't or don't have the time to assemble it, you can get already assembled units too. the kit uses the same exact code as the built units. Read the reviews on http://wctek.com.shop from other people that actually did build the kit before you blame the design.

    When I put a cartridge in that has been reset it takes forever for the bed to heat up and the extruder does not heat up at all. Everything works fine if I use a cartridge that has not been reset.

    XYZ Printing just released a new update to their printer firmware on the 15th I believe, as of right now reset cartridges will not register/work, give it a week or so and I'm sure someone can make a new fixed code. Most likely they have made a segment of code that writes a key to the cartridge or it re-writes the chip with a completely new code, I still had an original cartridge (120m) that I had reset when the printer first came out and it worked but my other 2 I reset a month ago with the 4XXmeter won't work now, maybe I'll break out my Arduino and take a look into it.

    All resetters sold on wctek.com/shop work with the current firmwares and xyzware. The issue is that you just need to block the xyz.exe with the windows firewall, that's all -- no new code needed.

    Hi Scott,

    Any news on how to reset the counter with the Arduino? If you have a solution I would like to buy the Arduino solution.