Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to make a programmable cartridge setter.

I just got my very first 3D printer ever last month and its awesome. Its the Da Vinci v1 with firmware v1.0.1. Sadly I am running out of filement fast aned I dont want to spend £55 on a new cartridge that doesn't seem very big for there price.

I have been scouring the internet for a cartridge re setter and temperature setter so I can print with anything. Unfortunately after days of searching all I can find are premade units in america.

I get on fine with soldering and assembly plus I know someone who is happy handling code so I was thinking of making my own but I cant seem to find a guide on it. I have found the xyzap guide but it dousnt really tell me how to put the code on the board and it cant change temperatures and I have fond a German website showing how to make one controlled with a dipswitchs. The maker of that one says it is untested with my version of the 3d printer though.

What I was really hoping for was one where I could attach it to a computer and select temperatures that best match the make and material of a filament. I have looked on this forum but could not find a guide on making one. If anyone could point me in the direction of one it would be greatly appreciated.
I made one with an Arduino Uno. I've never used Arduino before either but it wasn't that difficult.
You just need to download the Arduino IDE software and connect your computer to the board via USB to get the code on the board.
You can change temps in the Arduino code by changing these lines ...

// extruder temp, default is 210 C for ABS
char et[] = {0xd2,0x00}; // 210 C
//char et[] = {0xe6,0x00}; // 230 C
//char et[] = {0xf5,0x00}; // 245 C
//char et[] = {0xfa,0x00}; // 250 C

// bed temp 90 degrees, default ABS
char bt[] = {0x5a,0x00};
Davinci 1.0 with repetier 0.92 & E3D hotend
Slicer - Simplify3d 

I did the same thing using an Arduino Uno board (cheap copy actually).
-Download and install the Arduino software ( I used version 1.0.6
-Open :
-Copy the text on that page, easiest way is to click "Raw" then select all the text on the new page and paste it into a text file.
-Rename your text file to whatever.ino
-Open the file using Arduino , set your board type (Tools -> Board), set your Serial Port to whatever com port your ,plugged into PC, arduino board is on (Tools -> Serial Port)
-The in Arduino , with the Arduino board plugged in, click File->Upload. You must do this anytime you change the temperature (upload it to the arduino that is)
-Flash the filament chip

I basically followed the steps from:
The info scott posted you will find in the actual arduino file, that is where you would adjust the chip info.

Only big thing different for me vs the webpage I linked is the way it looks to work. In the video on the webpage it shows different LED's flashing. All I get is one LED flashing and it goes solid once I place the filament chip on it. I just wait 2 seconds and take it off and it's been working fine.
Thank you for your responses.

Can I use any arduino board to rewrite the cartridge? I have seen some nice cheap Pro Nano and Pro Mini with ttl to usb adapter boards.

I was thinking updating the resseter with the PC whenever i change the filament type would be a nice easy way to do it and just keep a folder full of eeproms with titles matching the filament I am using. This seems a fast easy way to do it to me.

Does anyone know if reset cartridges will work with v1.0.1 firmware? Is there any point updating firmware or hardware? I dont want the printer to stop working and I dont want to void the warranty.
I am using firmware version 1.0.1 on my Da Vinci 1.0A. I have not had any firmware related issues when flashing cartridges. However I have to use an older version of xyzware (1.27.x) otherwise I get an error about an unrecognized cartridge when I go to print.
That's good to know, thanks william. I heard the cartridge issue was only if the xyzware was connected to the internet.

I have just ordered a arduino uno board and some spring probe pins. Then i just have to make heads or tails of that code that joe and scott linked to.

How does the temperature numbering work if i want a different temp than what scott listed below?

And what's the maximum safe temperature for the extruder and heatbed. I would love to be able to print in more exotic plastics. I have some projects in mind that need self lubricating plastic.
There's quite a few decimal to hex convertors online you can use to give you the hex values for temperatures.
Just change the figures in the brackets with the new values you want to use.
Davinci 1.0 with repetier 0.92 & E3D hotend
Slicer - Simplify3d 

I attached a picture of my setup that works well. I too followed the directions and uploaded the code from github to my Arduino Uno. The only issue I had was setting the baud rate to 115200 in the serial monitor to match the setting in the code. After I did that it worked. I printed the 3 pin connector jig thats on thingiverse to interface with the EPROM chip and it works well. I thought I had blocked xyzware with my firewall but I must have not done it correctly![Image: IMG_0549_2015-01-27.jpg]
Ah ok thx scott. I suppose i just have to wait on the postman now.

@william if you are using windows own firewall it is really stupid as you cannot block xyzware on private and home network settings. It can only be blocked in public network settings. You might want to try a different firewall app to get more control.
The steps in this link below are how I blocked the xyz.exe file in windows firewall.

And a quick online decimal to hex converter:

in the Arduino code (near the end) you will find this:
// extruder temp, default is 210 C for ABS
char et[] = {0xd2,0x00}; // 210 C
//char et[] = {0xe6,0x00}; // 230 C
//char et[] = {0xf5,0x00}; // 245 C
//char et[] = {0xfa,0x00}; // 250 C

the HEX values (to convert) are the d2 = 210 , e6 = 230 , etc.
I haven't tried actually changing the temp to anything other than the values already listed. So far every ABS material I've used has worked fine set at 210C. If your not familiar with code, the // comments out the lines. So any line(s) with // in front is ignored by the software. Be sure you only uncomment one setting for each component (extruder, bed). Every time you want to change the code you will need to re-upload it to your UNO before resetting the filament chip.

the first few times I tried the reset with one of the printed holders it did not work. I was not using the spring pins (didn't have any) and found that I was not making good contact. Also worth note is that the power to the filament chip is the pin closest to the slant. I wired mine like the attached picture.[Image: da_vinci_eeprom-300x195.jpg]
I am a bit confused with the various posts on this subject, and people having issues after flashing the chip.
I have a new 1.0A I am really happy with the way it is printing especially with The Esun filaments I get from HobbyKing.

At the moment I am just leaving original cartridge in place and feeding in the third party filament externally.
I am now down to 18M on the cartridge stats, so all I want to do is reset it to 120 or 240 or what ever works best, I have no interest in changing anything else and dont want to flash the cartridge if it will effect print quality, temps etc.
I have two ardunio mini pros, and two nano's.

What sketch file that is known reliable that I can download, just reset the filament left in cartridge
Here's a cartridge resetter I found on thingiverse My Filament Resetter v1.0.
It has a link to a website (in German) . Translated page below . This resetter uses dip switches to vary the cartridge parameters.
I haven't used up all my filament yet. I ordered several cartridges as it's not that much more expensive than third party filament in Australia.
When I build this, I'll eventually modify it to have an LCD screen and menu buttons instead of dip switches.
I bit the bullet and ordered the XYZEROCART from WCtek, it looks really good

In the mean time (as it will probably take 3 weeks to get here) I was down to my last 3M tonight so had to do something.
So I flashed an arduino nano with the sketch on github.
I have a pro mini like used in the reset tools, but the nano has a mini usb so was easier to do. It is also the one with all the pins fitted so I added some leads and just soldered the connections to the chip.
I left the D7 wire disconnected at the board and powered up the nano with a 5v psu, after the led was blinking really fast, I made connection to D7, light went solid but didnt go out again as seen in other examples, after about 5 secs it went out momentarily but came back on again, I left it connected and it done the same again.
Dont know why it did this maybe the nano is different, the others all seem to go out after 2 secs.
Anyway when I de-soldered pads on chip and refitted, It worked !! now shows 120M again.

Just now doing a keyring test print with some silver after it prints, I will see if I have any software issues as reported I am currently using 1.34
As follow up to above, no issues after reset cartridge with software
My cartridge SN was 0187 it is now 0192
I have had to reset again and all went well ser no. is now 2 above what it was.
Dont know why my nano board works differently re the led but it works !
There are other resetters out there, for less, , this one is built on a nano so you can flash it with your own sketch if you want.
I am using a Da vinci 1.0A firmware 1.0.3 XYZware and the arduino cartridge resetter work fine. I now have 240g of ABS set in my machine thanks to those who help me in thread.

I have finally made a resetter with a imported arduino uno.

I understand how to flash the chip on the cartridge but I cannot find an explanation on how to make a backup of the chip before I try over writing it.

Can someone tell me how please?
yes there are windows firewall setting to block it in all three...... domain , private and home .
and it defaults with them all turned on.
do you have a link for that jig? I cant seem to find it.....


Forum Jump:

Users browsing this thread: 1 Guest(s)