DaVinci filament memory chip support?

Hello all,

I have a DaVinci 1.0A that I've owned and run with its original firmware for a couple of years until recently, where I have taken the plunge and installed Repetier 0.92.  And I'm really pleased I have, my prints are better now I have dialled it in a bit and I am enjoying the printer more.

One feature I really liked of the DaVinci was that it keeps filament (almost) sealed inside its cartridges with a silica gel pouch and the printer knows how much filament is left.  I built a rewinder to put new filament into the DaVinci cartridge cases and modified some Arduino software to configure and reset the cartridge memory chips, based on the early published WCTEK software.

Now I'm using Repetier I wonder if anyone has added the code to read and update the cartridge memory, as it would be nice to be able to use a menu option to see that data on screen (even better if the reset / config can be done there too).

I realise most people have simply printed spool holders and discarded the cartridges, but I quite like the cartridge design and while I have Googled this, I've so far only found people saying they'd like that function to work rather than any solution.

If it hasn't been done, can anyone point me in the right direction to modify the firmware as I'm willing to attempt to add it, but reading through the code, it's very complex and I appreciate all the effort put in by the devs all the more!




  • While I have no idea how to write and read the cartridge, you should now that firmware stores filament printed in eeprom. So if you add a new spool and you know how much it contains you could check eeprom in host/server eeprom editor and write down start counter. Then you know how much you still can print by looking at this.

    If the chip doe not measure you could use the positions where eeprom gets modified with new length as well and add a mcode in commands.cpp to read the value and write it to console. Same gcode could also have a set command to set value to a new value manually once you have put new filament on it.
  • edited March 17
    Hi there, thanks for the reply, I'll take a look.  I already saw that the firmware keeps a total of filament printed and hours printed, which is good as a start point and I like that it keeps a log of its total use, as I can use that data to judge when the printer probably needs service.  Last year I worked out how to write to the filament cartridge, which is just a 3-pin serial eeprom that must be wired to a GPIO on the microprocessor.

    I think the function I'd like to add is effectively:
    • When starting print, read (your) eeprom value for starting filament value.
    • When ending / aborting a print, read again and subtract the difference from the stored value on the cartridge.

    On the display:
    • Add a value displaying the remaining filament value (read from the cartridge).

    Optionally, in a menu:
    • Add a 'maintenance' option to set the remaining filament to a new value (after refilling).

    I love your firmware, you've unlocked my printer and made it so much more effective.  Thank you. :-)

Sign In or Register to comment.