The XYZPrinting DaVinci 1.1 is an annoyingly highly proprietary machine. It requires specific software (the XYZWare suite), and can only take filament in a proprietary format (the XYZ Cartridge). These proprietary limitations make using the machine for more than simple prints more of a pain than other 3d printers, due to how limited xyzware is as a slicer, and they also make it more expensive to run due to the price of the XYZ Cartridge over other filaments.
In this post I'm going to explain some ways to get around these deliberate proprietary limitations.
Replacing XYZWare with PrusaSlicer
Thanks to a python script and profile by Mason Sheffield (that I have modified for my own use), you can use PrusaSlicer (or slic3r, but I prefer Prusa's fork) to slice models for the da vinci 1.1 plus. You can get it Here.
The profile in the original github repo appears to be made for the da vinci 1.0, but appears to work without modification for the 1.1.
You will need python 3 installed, which I won't go over here.
- Download the script from [TODO make link]. This is my modified version to work with python 3 and as a post-processing script in PrusaSlicer.
- Load the Slic3r config ini file from the repo into the slicer with the
File > Import > Import Configmenu.
- Set the post-processing script (
Print Settings > Output options) to the path to the convert.py file.
Then, slice your model as you would for any other printer. Adjust your newly-acessible print settings and export the gcode. You should also get a 3w file in the same directory as it. If you don't but you do have a gcode file, run the script in a terminal:
$ python2 daVinciGcodePrep.py <File Path>
NOTE: It is normal for files prepared this way not to display a print time progress bar (or just display it as full for the whole print) on the display. I don't know what causes this, but it is to be expected.
Using 3d party filaments by resetting cartridges
Using arduino code from Voltivo you can easily build a filament cartridge resetter. This will allow you to connect an arduino to the cartridge and reset the filament length (allowing you to refil the cartridge with 3rd party filament).
The device itself is as simple as an arduino with a few connections coming from it. Mine literally sits on a breadboard and contacts the cartridge with jumpers, although keeping them connected can be a pain. I used tape to help.
My Super minimal cartridge resetter.
In the code, uncomment the temperatures and length of your filament. Upload it to the arduino, then connect to the arduino on serial and connect the pins up to the cartridge like so:
Then connect to it on serial from your PC. The serial console is at 115200 baud, although this will be automatically set if you use the arduino serial console. When it asks you to confirm to send, hit enter. Your cartridge will now be reset.
Note that while I have personally tested resetting cartridges, I've not tested adding 3rd party filament. I've heard that changing the temperatures may not work if your firmware is newer although it appears to work for me.
I'm also working on my own designs for a cartridge resetter based on this and some other ideas (mainly having settings accessible from a PC over serial and not hardcoded)
If you don't want to bother with building a resetter you can get one from sites like WCTek although I don't have personal experience with these.
Hopefully this post has been useful for making your da vinci 1.1 a more useful machine.