Using Non-Crappy Software With The Da Vinci Printer

davinci

The Da Vinci printer from XYZprinting is turning out to be one of the best buys in the world of cheap, consumer printers. Sure, it uses chipped filament, but that’s an easy fix for anyone who knows what a .hex file is. And yes, the Da Vinci host software is a mess of proprietary garbage with limited functionality, but [Mark] has figured out a way around that.

When [Mark] received his Da Vinci, he immediately started snooping around inside the printer’s guts, like any good tinkerer should. He found an SD card holding all the sample prints that ship with the printer, all in a convenient Gcode format. Inside these sample .STL files were all the calls you would expect – setting the temperature, changing the layer height, and all the other good stuff you’d find in any other RepRap.

With a little bit of modification to .STL files generated by any slicing program, [Mark] isn’t limited any more by the terrible host software that ships with the Da Vinci. Combine this with the ability to reset the chip inside the filament cartridge, and [Mark] has a printer at least as functional as any open hardware model.

Comments

  1. charliex says:

    nicely done Mark

  2. tmk says:

    I think you mean “gcode” not “.STL” in most places in the summary?

  3. Torque says:

    Why not “just” gut the existing controller out of it and swapping in something a little more “open”?

    Although that’ll just further point out the lack of a quality IKEA-like hardware kit where you “just” assemble it and then add your own controller board(s).

    • romfont says:

      Looking at the video I noticed that the controller shown actually has stepsticks mounted on it, so if you swap it out with a ramps or sanguinololu or similar you wouldn’t even need to buy those.

      What’s more interesting however is that the sd card contains a file ‘FW_upgrade.dat’, so unless there’s some funky encryption going on, the easiest things seems to be to just port a standard firmware over to this controller.

      Mark, if you’re reading this, perhaps you can post that file somewhere?

      Also, this guy found that the ‘proprietary’ .3w file format is just obfuscated gcode, and wrote a converter for it (unfortunately online only):

      http://3dprintingindustry.com/2014/02/05/unboxing-printing-da-vinci-1-0-3d-printer/

      In other words, lots of options for ‘jailbreaking’ this machine, it seems.

      • Mark F says:

        So the FW_upgrade.dat’ is encrypted too. I tired decrypting it with Notepad++ with no luck. Also the converter does not work for the version I have. I sent the .3w and the same .gcode file to a very geeky friend and he could not crack the encrypted file and get the key. I will post the all of the files later today.
        Bonus points for whoever can crack the code first!

        Mark F
        2robotguy

  4. sneakypoo says:

    I’ve seen this printer mentioned twice now on this site as being something great. What makes it so special?

  5. Chris says:

    the offline gcode file may be the printer’s spool file that is transferred from the computer to the printer for printing offline. It might be worth looking to see if it changes from offline print to offline print.

  6. Aeva says:

    So, I’m a biased party here, but if you want a hackable printer, why not just buy a libre hardware one, and support the companies that are willing to respect your rights to tinker? *cough*lulzbot et all*cough*

    • mechadrafter says:

      I’m thinking because the DaVinci is cheap ($500) with pretty good specs and what appears to be solid build quality. Their plan, I assume, was to take a hit on the printer, and make up the cost with their proprietary filament.

    • notdave says:

      you realize what you’re saying …. you are attempting to convince people who regularly seek to modify and improve locked down devices with effectively a subsidized device price, and encourage them to pay more money for a product that already does what they want out of the box. typically that type of talk/’solution’ is discouraged here.

      yo dawg heard you like hacking so we bought you all this stuff so you wont have to use hacks to hack as you hack for hackings sake

      • charliex says:

        amen, i am looking a the lulzbot at $2,000 on amazon right now, i like the TPE, but i’m also looking at the $500 davinci thinking hax.

        Mostly i’m wrestling with the idea that i’ll end up with a poopbot that requires a tonne of fiddling about with and not that great prints, thats what stops me buying one.

        • EGHM says:

          This is the boat I find myself in, I want to support the open standards, but starting off with my first venture into 3D printers at $500 (and a bit of hacking) is a lot easier to swallow as entry level to figure out what I really want when I go to spend thousands.

          • Jerry says:

            I spent $700ish at makerfarm for a Prusa i3 kit. Super Happy with it. Took a few hours to put together, but that was part of the fun.

            My colleague at work bought a pre-built 3D printer – don’t remember the exact brand, but he paid around $2K and had to tinker with it (tightening belts and bolts and stuff that loosened/misaligned during shipping) for about the same amount of time as it took me to build from the kit.

            Working on building another from scratch with my own 3d printed parts now.

          • dale says:

            I second Makerfarm I3’s $550 for the V2 and $650 for the V3 versions.

            If XYZprinting just drop all the limits on the Da Vinci printer then they would probably be a great alternative.

          • EGHM says:

            Thanks Jerry and dale, this is the other one I’ve been looking at, just a bit worried about all the assembly required. I’ll need to watch all the assembly videos and google around to see about a case.

        • rasz_pl says:

          >tonne of fiddling about

          you just described EVERY SINGLE extrusion printer there is on the market. There are no printers that just work out of the box and dont require spending hours fixing shit up.

          • peanutbutterjellytime says:

            this one doesn’t require fiddling, just finished about 9 hours worth of flawless printing out of the box!

          • JRDM says:

            Give it time.

            Give it time. I know one person that got a several decent weeks out of a Replicator 2 before things went haywire. I think there’s something about the process that evades good usability, but cheap FFF is still in its infancy.

            And, going by reviews on Amazon, Da Vinci experiences vary quite a lot, some people can it the ground running, others, not so much.

      • JRDM says:

        I haven’t seen the machine in person, but I would suspect that there’s a lot of corners cut that make it a false economy. It might be a subsidized unit, but it could be a lot of substandard parts too. If you still have to do a bunch of jiggering and upgrades to get it working well, you may as well build a proper open source open hardware machine.

      • fdsa says:

        Drop in azteeg electronics or arduino + ramps and you’re done!

      • Paul says:

        Sure, but also some of us recoil at the idea of giving money to snakes who put encryption chips into their cartridges. For that reason alone, I bought a Makerbot 2X rather than a UPrint – the Uprint was all around better, but I felt right about buying the Makerbot… and then three months later Stratasys bought them out anyway, go figure!

      • traverseda says:

        That’s sort of how we got into this mess in the first place. Vote with your wallet, and vote for companies that aren’t going to try and screw you over.

        At least when that’s practical.

        You could probably build a reprap wallace for cheaper.

    • David says:

      Because I bought it. It’s mine and I can do what I dxxn well please. I purchased turnkey and now I’m ready to fiddle.

  7. ejonesss says:

    here is the http version of the video

  8. edward gad says:

    HAD really, really, really needs a link to each story under the summary.

    As it is, a link “Read More” only appears when the description is long. We have to scroll back up and find the comments link to get to the comments if the description is short.

    The code should be changed to show the same link in either case, but say “comments” if the description is not long enough for “Read More” to appear.

    PS – congrats on the fine grammar and spelling these days. It’s wonderful!

    • Mike Szczys says:

      Thanks for the tips on design. We have been talking about a ground-up template redo just to fix all the broken stuff. Not sure when we’ll get around to that. But I’ll keep this in mind as plans shape up.

      I also appreciate the compliment regarding our language skills. (You don’t know how hard it was not to misspell in that sentence on purpose just to mess with you)

  9. Thinkerer says:

    Any bets on there not being an SD card or other SW lockdown in future builds? Get `em while you can…

    I’d also like to know what’s in the Machine_Life.dat file.

  10. RandyKC says:

    I really think it makes more sense to support open source by buying open source rather than bend an existing product and get it shut down in an update.
    I’d recommend Fabtotum.

    • notdave says:

      sense but not cents. a good, proper hack would address this possibility/likelyhood. when someone hacks an 1,000$ scope to perform functions of a competing, more capable $3,000 model, ‘buy the more expensive existing product to ensure success’ is a tough sell. tough sell here too.

    • DR says:

      I recommend $thing that costs twice as much and isn’t available yet.

      Don’t get me wrong, fabtotum sounds kinda slick, but you’re kinda comparing apples and samsungs here.

  11. Sheepdog says:

    On the surface, it’s impressive for the money.

    ABS only?
    It smells and it’s fickle. Local sales show PLA is selling about 5 to 1 PLA to ABS. That is/was a serious blunder on their part. More and more are moving away from ABS..

    A big problem with the race to the bottom on 3d printers is that we have pretty much bottomed out the electronics, and all profit is coming out of the mechanical side. Which wears out. Give it a couple hundred hours of print time, and see how worn it is. That may not sound bad until you consider 200 hours of print time, isn’t much when a single print can take 4 hours or more. Good linear systems are quite expensive.

    • scuffles says:

      If memory serves ABS has a higher melting temp than PLA. So if the hot end can handle ABS I would think it shouldn’t have an issue with PLA. So it seems to me that it would just be an issue of setting the temp in the Gcode.

      If I am wrong then I am mistaken.

      • Jerry says:

        Unfortunately it’s not that simple. There’s a bunch of other variables. For example, the magma hotend can print ABS (225C) and polycarbonate (265C) but has all sorts of clogging problems printing PLA. The explanation I’ve heard is the heat transfers itself up the filament (creeps), eventually causing it to deform higher up in the hotend where it clogs things up. Whether that is the actual mechanism of clogging, I can’t be sure, but google magma and pla and you’ll find lots of info.

        I pretty much print everything with ABS, in spite of having options. PLA doesn’t work well in Phoenix…ABS stands a better chance of not melting if a part ends up outside for any length of time.

      • Isaac S. says:

        I’ve given up printing large parts in abs, the warping is terrible, especially for solid objects with squarish corners. Closed chamber, heated print surface and abs slurry on the print surface help, but at some at some point your print is going to curl at the corners and split across layers because it is too big.

        For strong or large parts I print in pla which in my experience does not warp, sand and touch up. Then silicone mold and cast. The bonus is that I can save the mold and recast. Takes 20 minutes to cure instead of 3+ hours of print time. Downside is that youre going to spend an extra 100 $ on materials that spoil pretty quick once opened.

    • archer174 says:

      The software has a preconfigured PLA setting.

    • JRDM says:

      The biggest thing about ABS that is hard for a beginner to deal with is the higher temperatures, lengthening the turnaround time. So I suggest people start with PLA, since the machine gets up to temp as much as twice as quickly, so they can fail often, fail early so they learn quickly.

      ABS does smell, but an enclosure helps that a *lot*. ABS parts can be stronger, have a much higher impact resistance and they are also not going to melt if you leave the part in your car during the day.

      I’ve not had to deal with a warped part in a good long time. A level bed and an enclosure helps for that too, prevent drafts, and warmer ambient temps during prevent warping.

  12. cbob says:

    Suddenly I may start looking at Ez3D’s phoenix

  13. Josh says:

    Hello, I just wanted to mention that all the fiddling with the sd card is not needed at all. Simply slice the model of choice in whatever slicer you see fit and export the gcode. open a good editor and edit the header information to conform to the xyz file header. base64 encode the whole file and save with a .3w extension. Import that file into xyzware and hit print.

    • JRDM says:

      All that still seems a bit much. I guess it’s good to know for someone that can make a pass-through script, but it shouldn’t be necessary in the first place. This mirrors Makerbot’s silly antics, which also requires either using their software, or passing the gcode through a post processor so the machine will run.

    • jaak says:

      “edit the header information to conform to the xyz file header. base64 encode the whole file and save with a .3w extension.”
      could you tell use how? or do you have any link/tuto to see how it should be done
      many thanks

  14. Robot says:

    Hmm. . . this makes me regret the money spent on a printrbot simple and the stupid upgrades :(

    • Sheepdog says:

      Use it to build another, better printer.

      You have the experience, and you have the electronics, two big hurdles for building a printer. Your first is always the toughest and most expensive. Print one, buy a few parts and scavenge what you can from your PrintRbot.

  15. crabbycakes says:

    I posted this a few places already like a day after I got my printer. If you change the offlineprinting.gcode to SAMPLE01.gcode and access it from the menu>utilities>Samples>Demo you can print the files all day long without it reducing the filament count on the eeprom chip. No soldering or wasting time resetting the chip. So essentially you can print what you want and not worry about the chipped cartridges. I’ve printed PLA, NYLON, NINJAFLEX, whatever. This works on my printer, anyone else want to confirm it?
    I will take this printer any day of the week over errhem**lulzbot**cough**. Lulzbot is overpriced, you need a separate extruder head for flexible filaments, etc. The Da Vinci is everything all printer companies have not been able to do straight out of the box: work.

    • the new kid on the "3d printing" block says:

      Crabbycakes,

      You got me at “Hello” ! I just placed order on Amazon for one Da Vinci !!!!

      Great Hack !!!!

    • jaak says:

      You mean that if we rename the print with sample01, we could print with any other filaments?
      How to setup the temperature?

      • SKEstes says:

        Yes, the EEPROM in the cartridge does hold the initial extruder and bed temps (210C and 90C, respectively). However, once those temps are reached the G Code settings take over and the printer then pauses again until the final temps are reached.

        • jaak says:

          i d love to use cura to generate g code
          i’ve red that some guys managed to control printing with slic3r
          what do you use? i can’t find the translator gcode to 3W
          is there a link to any reliable startcode?
          thanks!

          • javy1389 says:

            slice with cura
            download notepad++
            open your gcode
            paste this to the top
            ; filename = Pickup.3w
            ; machine = daVinciF10
            ; material = abs
            ; layer_height = 0.3
            ; total_layers = 173
            ; total_filament = 3245.86
            ; extruder = 1

            go to plugins> mime tools >base64 encode
            save with extension .3w

          • javy1389 says:

            or you can load it directly to the sd card just save the gcode as SAMPLE03.gcode and go to print sample and select the last one

          • jaak says:

            i could but my lcd screen is dead, so i can’t

  16. jaak says:

    ok the eprom flash worked for me but i’ve had some cartidge error
    i had to reboot the printer 2 times and it was good!
    is their a simple way of setting up the extruder temp?
    by editing these lines i suppose:
    Serial.println(“Updating EEPROM…”);
    status(unio.simple_write((const byte *)x,8,4));
    status(unio.simple_write((const byte *)x,12,4));
    status(unio.simple_write((const byte *)et,16,2)); // extruder temp
    status(unio.simple_write((const byte *)bt,18,2)); // bed temp
    status(unio.simple_write((const byte *)x,52,4));
    // same block from offset 0 is offset 64 bytes
    status(unio.simple_write((const byte *)x,64 + 8,4));
    status(unio.simple_write((const byte *)x,64 + 12,4));
    status(unio.simple_write((const byte *)et,64 + 16,2)); // extruder temp
    status(unio.simple_write((const byte *)bt,64 + 18,2)); // bed temp
    status(unio.simple_write((const byte *)x,64 + 52,4));

    i d like to have these values
    210° 215 220 230 240
    anybody knows how please?
    thanks!

  17. Malafax_dand says:

    The XYZ software is running on Slic3r source code.

  18. jaak says:

    thanks javy1389
    i tried your method:
    “go to plugins> mime tools >base64 encode
    save with extension .3w”

    but xyzware can’t open it

  19. jaak says:

    i found this on voltivo blog

    “The experts in this and other forums are still figuring out what the chip on the cartridge does, but at this point it is clear that the printer checks the cartridge for the following information:

    – Is a valid chip present (cartridge is out – won’t print)
    – What is the cartridge original (FULL) capacity?
    – How much is still left in the cartridge (It’s not counting the use of filament, when I file is sent to the
    printer it includes the amount of filament it will use, and this is decremented from the current capacity)
    – Other print parameters
    – Color of the plastic in the cartridge
    – Type of plastic in the cartridge (ABS or PLA)
    – Temperature values for the extruder and bed (based minimally on whether the cartridge contains
    ABS or PLA (to be implemented later in 2014 when PLA cartridges are made available)
    – Other parameters that are currently unknown (possibly altering the printer behavior based on level of
    filament that’s been used)

    I only add the last one because after flashing the EEPROM (to 120M) the print worked fine, but gradually degraded until it was just extruding slices that were misaligned and not attached. XYZ must be changing other parameters on the chip as you progress through the cartridge, but not sure what/why.”

    i’m experiencing the same problem
    with weak parts and delaminating layers
    any idea?

  20. jaak says:

    it works well for me but i’ve got a speed problem,
    it’s a bit fast for small parts
    some say speed is determined by g code and some other , in heading details
    what am i supposed to do?
    http://www.soliforum.com/post/55132/#p55132

  21. rescueweasel says:

    Thanks for all of the info everyone is putting in. I think I want to take the leap and get one if I can find one. Amazon stopped selling them and Studica is out of stock. Have not found any other places selling it. I will be watching this post for more info, I also found this post about the chip in the cartridge: http://wctek.com/xyz/

  22. mochajavaman says:

    I think Studica just got stock on these again!

    • rescueweasel says:

      Amazon got them back in stock and I snagged one on prime. Should be here in a couple of days. Cant wait!

      • Mike Carr says:

        Mine came today, already printed the XYZ keychain

        • Rescueweasel says:

          Mine came Friday but work is getting in the way still boxed. Did you use the latest firmware from the site that came out about a week or two ago? Any problems?

        • Shane says:

          Mine also came in today. I’ve printed out the “DEMO”- not sure what it is supposed to be, but it maybe is something to put a hot paper coffee cup into so one can drink from it as if from a regular cup. It used about 15% of the 300 gram filament cartridge- i’d skip this one if you just got your printer. I notice I have firmware 1.1.A, and the website has 1.1.I… I’m wondering if I should upgrade the firmware. I saw some mention that people wanted to revert back from ‘G’ – anyone know why?

          I also printed out the key chain. I am not impressed with the print quality so far. I have a UP3D Mini that puts out much better parts. I was hoping the da Vinci would print better parts… BTW, I am using 0.2 and average speed, so I would expect better prints.

          Something else I have noticed- I have an STL that prints out on the Up3D Mini in proper scale, but the da Vinci is printing it in micro size for some reason… Not very impressive results so far.

          • JRDM says:

            Sometimes STLs are saved in inch size and that can show as very small parts in slicers. The STL file format is unitless, so the slicing software can’t know. Most slicers read them as millimeters. Some slicers check the part size. If a part dimensions are very tiny, it will ask if the part is in inches, and if you want to scale it to mm equivalent. I wonder if your Up3D’s software just automatically scales the file without prompting.

          • Shane says:

            JRDM,

            Thank you for your comment- I believe you have hit the nail squarely on the head! I am using ViaCad Pro9 to develop my print files, and I am using English (inch) base measurements. I will check to see if I can get the XYZ thing to recognize inch measurements. If not, I will just scale it up by 25.4 and see if that does the trick.
            Regards,
            Shane

  23. Shane says:

    I juar ordered one myself from Amazon- should have it by Saturday, if FedEx will deliver it then.

    I noticed on YouTube a guy has come up with firmware version 1.1.Q, which is his name for it. Sounds like he might have extracted the code (Arduino style?) and has modified it to use a WiFi SD card.

    I’d like to see an open source firmware become available for this printer, myself.

    Cheers,
    Shane

  24. Josh says:

    Totally brand new to the 3D world. I am a math teacher trying to get STEM/Programming going for students in my middle school. I actually got one of these as a donation. Can I not have kids make their own sketches? I have tried importing .stl files to their xyzware and nothing loads. Cutting the SD card out is really the only way?

    • rescueweasel says:

      Not sure why your having problems, I print with mine day in and day out it runs constantly and it prints stuff I make and stuff I find on Thingiverse. All .stl files. No problems with importing. Are you following the directions for the software? Should be as simply as select import and pick the file and hit ok.

  25. Kevin B says:

    Josh, I tend to have the same problem. I have a work around that you should try. I actually import the stl and then get a blank image. I then print anyways and send it to the device. Once xyzware slices the image it then is view able within xyzware (although by now printing.)

    Bad grammar, punctuation and spelling aside on this mini rant, I believe this is due to opengl driver issues. For I’m running a mid 06 macbook with win7.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s