Introduction: Da Vinci XYZ 3D Printer Filament Counter Resetter

Picture of 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

Picture of Building the Cartridge Resetter

If you want to make your own, you will need the 3D printed shell published on, 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

Picture of 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

Picture of 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

Picture of 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 and take a look at the video on that page …

Step 5:


GerdD3 (author)2017-04-18

Hi, does it works with PVA material?

Melbfella (author)2017-03-18


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.

bobscat (author)2017-01-08

I do not see a buy now button,

Jendoll15 (author)2016-06-29

Has anyone tried this on the new firmware AIO 1.2.2?

norchie (author)Jendoll152016-12-04

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

MesserSG (author)2016-06-26

may i know whether it can work with firmware 2.1.2?

merizian (author)2016-01-29

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

arduinounouser (author)2015-12-09

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.

netnap (author)arduinounouser2015-12-12

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.

arduinounouser (author)netnap2015-12-17

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.

arduinounouser (author)netnap2015-12-16

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

zann68 (author)2015-12-15

Which Battery to use? CR2032 maybe

bxizzy143 (author)2015-09-27

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.

fr333n3rgy (author)bxizzy1432015-10-01

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).

fr333n3rgy (author)2015-03-04

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 from other people that actually did build the kit before you blame the design.

bearcateds (author)2015-02-22

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.

JakeD5 (author)2015-01-22

My printer is now saying that my cartridge isn't genuine

scottrevoman333 (author)JakeD52015-01-28

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 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.

SørenR (author)scottrevoman3332015-02-11

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.

scottrevoman333 (author)SørenR2015-02-11

Yeah i just made an 'ible with some directions and a code that works.


I just tried the Votivo code on my cartridges and now it reads them as 120m before it would say "unrecognized cartridge" and would not load IDK what happened but my printer has the latest firmware and using their reset code it worked? IDK if they've updated their arduino code but according to my PC it is from around May 2014? Might be original file?

Chrisstull24 (author)2014-12-24

I made one and it will not let my extruder heat up past 50 c when I am using a reset cartridge. Does anybody know why this happens?

fr333n3rgy (author)Chrisstull242014-12-24

Did you make one with the code on github?

Chrisstull24 (author)fr333n3rgy2014-12-24

I used the wcteck code. Can you give me the link for the code that you are referencing please?

fr333n3rgy (author)Chrisstull242014-12-24

wctek ( never released any code. Only pre-programmed arduino are available and I know for a fact that they all work correctly, so if you're getting 50*C then you may have an issue with the extruder. The code on github is hosted at The code is maintained by Oliver at voltivo. Good Luck.

Chrisstull24 (author)fr333n3rgy2014-12-24

I gave you the wrong name. I used the code on this instructable. My fault. If I use new cartridges my extruder works fine, but when I use a cartridge that has been reset it will only heat to 50*C. I will try buying a few different arduinos and uploading the code again. Thank you

Chrisstull24 (author)fr333n3rgy2014-12-24

I used the wcteck code. Can you give me the link for the code that you are referencing please?

kaelumhasler (author)2014-12-04

could this be used to enable spool use?

loiclahaye (author)2014-12-04

I love this project ;) it's perfect because an official cartridge is too expensive!!!!

But before the use, I have a question: what's the dangers for the 3d printer/warranty ?

sci05 (author)2014-11-11

Couldn't help but notice that you're using a 3v battery to power the arduino, but the arduino you linked is rated for 5v. Am I understanding this correctly?

bmartinez19 (author)sci052014-12-02

There are 2 models of the pro mini. The one he used is rated for 3.3v, but only runs at 8 mHz compared to the 16 mHz the 5v model runs at. That should be plenty for a small build like this though.

nathan.niles.9 (author)2014-09-27

where can i buy 1?

Lofan (author)fr333n3rgy2014-11-21

Can you make and ship it to us outside the USA?

If yes = how much?

Cheers Peter

thank u do they ship to the uk?

Yes, all the time...

jonathan.nunez.35325 (author)2014-10-29

nice work

sat481 (author)2014-09-17

Finally have emptied a cartridge and tested out the resetter. It worked exactly as promised :) I tried several configurations and all seemed to be great with the firmware revision J. This should save me a fortune in filament once I get 5 minutes to play with it.

fr333n3rgy (author)sat4812014-09-17

Glad to hear that. :) - Its comment like these that makes all those nights spent building prototypes and coding worthwhile. Thanks!

sat481 (author)fr333n3rgy2014-10-10

Hi fr33n3rgy, do you know if the resetter is working ok on the new firmware update that came out on 08 Oct 2014? Many thanks in advance.

fr333n3rgy (author)sat4812014-10-10

It seems to work fine with the Da Vinci 1.0 fw ver 1.2.3 which was just released a few days ago (tested on my printer), however be aware that once you upgrade you can not downgrade by software anymore. They locked that feature (to prevent people from downgrading - sneaky) which leads me to believe there are new remote monitor routines added and they do not want people going back to the previous version when they find out about some unwanted features (or bugs)... This is a dumb move IMO from XYZ...

Anyway, I've tried the new firmware and honestly there were no print-quality improvements (so I downgraded back to J using the hardware reset method). The hardware reset method is described on the voltivo forum.

sat481 (author)fr333n3rgy2014-10-10

Many thanks for the quick reply. I will leave it on J for now then until they improve something with the update. Keep up the great work :)

sat481 (author)2014-08-12

Great Instructable and excellent idea. All built, just need an empty cartridge now to test it on... Better get printing :)

Rjones499 (author)2014-08-04

how much are these? Couldn't find the paypal button. Thank you

fr333n3rgy (author)Rjones4992014-08-05

see - alex.

theb00g1em4n (author)2014-07-14

are you still selling these, i'm in the uk?

w1ng0 (author)2014-06-13

Thank you I have the 1.0 and will be buying the 2.1 and now I can refill the cartridges

yasam2002 (author)2014-05-17

thank you so much fr333n3rgy for this nice instructable.

fr333n3rgy (author)yasam20022014-05-17

You're welcome :)

About This Instructable




More by fr333n3rgy:Da Vinci XYZ 3D Printer Filament Counter Resetter
Add instructable to: