251

Re: print gcode files to miniMaker

Things are looking promising for being able to print on a 1.1 machine.  If that works it probably will also work for 1.0 and 2.0 machines as well.

Unfortunately since this is just a shell of a printer I can't simulate a whole print cycle and so I can't verify if the print actually started or not.  However I was able to download a print and got the printer to attempt to print it, up to the point that it errord out because of a runaway thermal condition (no thermistor, or hot end for that matter).

Now that is all on usb, wifi is a whole other ball of wax.  I may be able to make some progress there, but it is not as straight forward.

252

Re: print gcode files to miniMaker

Well done on your progress!

253

Re: print gcode files to miniMaker

I've been trying to get this to work with my da Vinci Mini W without much luck.  I think I'm missing something.  Is there a read me somewhere that explains how to set it up, and the workflow?

Thanks for any help.

254

Re: print gcode files to miniMaker

ruggerjoe wrote:

I've been trying to get this to work with my da Vinci Mini W without much luck.  I think I'm missing something.  Is there a read me somewhere that explains how to set it up, and the workflow?

Thanks for any help.

What is the problem you are having.  It should work great with a mini W if you are using USB, however WiFi is not working very well with the mini W at this time.

Give me some details and I can try to help out.

255

Re: print gcode files to miniMaker

I spent most of my weekend on vacation!  However I managed to get a few hours in this afternoon to start putting my notes together.  I put everything I could find together into a few new documents.  I have a reasonable start on how the usb v2 protocol works. I still need to work out the file upload protocol but otherwise it is fairly complete.

I'm not sure how far to take the v1 protocol, it appears that almost none of the calls are even encoded in the XYZMaker executable.  Chances are no one is using this protocol anymore.

256

Re: print gcode files to miniMaker

Does anyone know if the da Vinci 1.1 Plus is the only XYZ printer with a built in camera for monitoring a print?  It seems like a brain dead feature to want to add, but searching on the website I can't see any other printer that mentions a camera.

257

Re: print gcode files to miniMaker

The 2.1 Plus also has a camera - it essentially seems to be the 1.1 Plus interface on a 2.0 Duo platform.  They have a dedicated Android app for the 1.1 Plus, I would assume the 2.1 Plus is compatible despite not being listed as a supported model.

Apparently, the idea was to download, print and monitor via the App, but I have never used this functionality.

258

Re: print gcode files to miniMaker

david.tucker wrote:

It seems like a brain dead feature to want to add.

You have no idea how popular camera mount for all kinds of 3d printer is on thingiverse. And people post all kinds of video on facebook group recorded from these cameras. Some even call it "porn" which really challenges my English vocabulary.

Da vinci Jr. mainboard have two underpopulated port labeled as Cam L and Cam R, Seemed like dual camera support potential.

(Da Vinci 1.0, Jr. 1.0 RAMPS, miniMaker) X4, (Creality CR-10S, CR-10 mini, Ender-3) X4, Anycubic MEGA X4, Anycubic Chrion X1, ADMILAB Gantry X2 (MonoPrice Maker Select V2, Plus, Ultimate)X4--Select mini X1, Anycubic photon X4, Wanhao duplicate D7 X1.
iNSTONE Inventor Pro X2, CTC Dual X2, ANET-A8, Hictop 3DP-11, Solidoodle Press, FLSUN I3 2017X1

259

Re: print gcode files to miniMaker

I was tired last night, I was attempting to say adding a camera was the obvious choice, but somehow it got twisted around when I wrote it out smile

Anyway was the 2.1 Plus ever released?  I have seen subtle hints about it in XYZWare, but could not find it on any of there websites.  It looks like they had plans for a 2.0A and a 2.0 AiO (3in1) as well, along with 1.1A and 1.1 AiO machines as well.  However I doubt they made it past the prototype stages, at least they probably don't work with XYZWare.

Along those lines, it seems to me that XYZPrintings biggest shortcoming is not there proprietary filaments, there is always a segment of the market who is happy to pay more for a reduced hassle factor, however it is that they keep adding printer models without retiring the older units and end up confusing there buyers. 

In my mind they should really only have 3 lines, the full size 1.x, the smaller Jr, and the budget mini.  All should be built on the same underlying hardware and each new iteration should replace the previous model.  That is as much as possible the 1.0A uses the same electronics, motors, and harness as the older 1.0, upgrading only what must be upgraded to move the model forward.

They can offer the scanner/no scanner variants but should let you pay to get a dongle to open the filament restrictions.  The scanner cost them real money to add, but loosening the filament restrictions can be taken care of in software.  The only cost there is the potential loss of sales of filament.  In total that would be 6 models, plus whatever they want to do on the high end side with there color/jumbo printers.   Right now I'm counting at least 24 known models and possibly up to 51 variations on those models!

Dual extruders should be a drop in upgrade for the Jr and 1.x line, along with the laser module, I would imagine running the wires for dual extruders would be almost free, they just need to have a clip on extruder motor and a second print head (or a nozzle that can mix filament).  WiFi should also be built into all models, and be of a higher quality than what they have.  I could add wifi for less than $8, so there cost has to be almost nothing.  Cameras should also be included in everything but the mini line and at this point in time everything but the mini should have a touch screen as well.

That way there is a strong delineator between the mini and jr lines, eve though they use the same material and have the same build volumes.  And the customers only need to make two major decisions, do I want a larger build volume and heated bed support, and do I want a scanner included.

260

Re: print gcode files to miniMaker

Since I'm already venting smile

On the software side they should let you print any gcode you want, force the user to use XYZWare to send it if you want but what advantage is there in restricting what slicer they use.  Make it an 'advanced' option they must turn on if you want to stop beginners from getting lost in the details but why not open things up.  Again they could have a small upgrade fee to get to the 'pro' interface, with the assumption being the money is to cover the increased number of support calls a more advanced application would produce.

They also desperately need to solidify there protocols across all printers, and need to stop treating wifi as an afterthought  but rather use the same protocol for that as well.  That way they only need to maintain enough older code to enable them to upgrade the firmware on older printers and the rest of XYZWare could be built entirely on the new protocol.  It would probably make the code much easier to read and maintain, and would make supporting all printers much simpler as well.  I have a feeling the 1.1 Plus got dropped from XYZWare Suit because it is an odd hybrid between the v2 and v3 protocols, probably other models were dropped as well.

Finally there is no good excuse that I can see for there wifi implementation to be so slow.  If they targeted 802.11g they could hit 54Mbits/sec, that is about 50x faster than the 1.1 Mbit/sec they are hitting over usb, even keeping it at 802.11b they still theoretically have 10x more speed than they are getting over usb.  Forcing several seconds of delay between sending messages to keep the connection stable seems wrong.  I suspect that there programming team came from C# land and is having to learn about low level programming the hard way.  The smart move would have been to hire a pair of low level engineers, one to handle the firmware and another to handle the pc side of the connection.  I grew up on serial port programming and looking at there api it seems clear to me that no one on there team had any real experience with how to make a low level communications protocol.

Overall I think they have made some great products for the price, but I wish they could put the polish on to make things even better.

261 (edited by arhodiewithsoul 2018-11-15 15:05:59)

Re: print gcode files to miniMaker

I'm not sure if the 2.1 Plus was ever released, but it seems that there was a unit(s) flaunted about the shows and at least a couple of hands on reviews. I was reading through a list of upgrades and aftermarket parts people had fitted to their 1.0 model printers to try and improve the quality of their prints - I have to say that apart from a *z-stepper brace*, it seems that the 1.1 Plus (or I was lucky with mine at least) had a much improved build quality.

There is very little to no slop in the mechanical function of the bed and rails, belts are tight and bearings are well supported. There is interference with the filament feed tube and lid casing (you can hear it rubbing on the inside of the unit) when it's printing, but I have yet to see any substantial impact on the quality of the prints. It's the restrictive software and being locked out of the firmware that grinds my gears.

Anyway, I've had a moan in the other thread, so feel free to chip in there if you want to vent more wink

I agree with you that their product lineup is not very well considered and could do with some refinement.

edit :: I was obviously looking with my ears - there is a *z-stepper brace* in the form of a steel bracket!

262

Re: print gcode files to miniMaker

Well I'm nearing the end of the 1.1 Plus project.  This board I have is close but not quite a printer and that is limiting how far I can take things.  Still I have gotten much closer to supporting the older 1.x printers and that is a good thing.

Typically I would start by snooping on the communications between XYZWare and the printer to get a sense of what the protocol really looks like, then I would move on to a decompile of XYZWare to try and work out what the code really was doing.  However since this printer lacks enough hardware to start a print, let alone monitor and control the print, there are only a few calls I can get XYZWare to make.  On top of that the printer is not even supported by XYZMaker or XYZMaker Suite, those programs use separate code bases and some times communicate in different ways.

Anyway I have gone about as far as I can with the v2 wifi protocol.  I still need to finish going over the code for sending firmware and prints via the v2 usb protocol.  I have the functions pulled out, but it is tedious work trying to make sense of the jumbled code.  Once I have that all decoded I will finis updating my documentation and probably put together a skeleton function that can send a print to a 1.x printer.  However it will be difficult to test since all I can do is start a print, and even then it probably will fail since this board lacks the eeproms from the filament.

The 1.1 Plus is unique in that it partially supports the v3 protocol as well.  I have improved my existing code to better deal with there cut down version of the protocol, but there is still a little bit of cleanup needed there to make it fully functional.  There are two outstanding problems.  The 1.1 closes the wifi connection after every command, and I assume the connection will remain open unless there is a failure.  And there is an abnormally long delay between when we request to start printing and when the machine allows us to send the gcode.  I suspect that I'm missing some piece of the command that the printer is waiting on and that is slowing things down.

Anyway many thanks again for letting me have access to this hardware, it is a big help and will get me much closer to the goal of fully supporting all printers.  My long term goal is to allow these printers to function long after XYZ gives up on supporting them, and of course this was originally about making better prints as well smile

263

Re: print gcode files to miniMaker

Well, it was a pleasure to contribute! Thank you for your dedication and effort - I ran your 0.9.0 exe to encrypt/decrypt 3w files where ThreeDubber kept falling over. Looks like a very cool program, so I will be dead chuffed if I can slice in Cura and print directly with the miniMover. big_smile

Have a read of your PM's - I sent you some more info, which may/may not be of interest. I might need to pick your brains, but doubt I'll have much spare time over the next couple of weeks for much further progress...

Speak soon

ARWS

264 (edited by yizhou.he 2018-11-23 18:02:10)

Re: print gcode files to miniMaker

Hi, David,

Small suggestion. update the 0.9.0.zip on first post with latest 0.9.5. I think many new people start with that buggy version. Also add a link point to release page of github on first post or add this link to the readme.md on github. I think many new people not that familiar with github are not using your latest version.

(Da Vinci 1.0, Jr. 1.0 RAMPS, miniMaker) X4, (Creality CR-10S, CR-10 mini, Ender-3) X4, Anycubic MEGA X4, Anycubic Chrion X1, ADMILAB Gantry X2 (MonoPrice Maker Select V2, Plus, Ultimate)X4--Select mini X1, Anycubic photon X4, Wanhao duplicate D7 X1.
iNSTONE Inventor Pro X2, CTC Dual X2, ANET-A8, Hictop 3DP-11, Solidoodle Press, FLSUN I3 2017X1

265

Re: print gcode files to miniMaker

Ok, I'm stubbing in what I know about the V2 protocol into miniMover. 

I already decoded the print file routine for a serial connection and have it working up to the point where the 1.1 Plus locks up (probably a hardware issue). 

I see the code that goes out and queries XYZ to see if the filament is valid, however all that seems to do is set a flag when requesting to start a print, there does not seem to be a handshake between the website and filament eeprom, at least that I can find.  Again without a working machine it is hard to be certain of this. 

The upshot is that we can probably send a print to a 1.x machine without bugging xyz.  that won't let you print with any filament, there is still a filament check in the firmware, but it will remove the need for any network access when printing.

Anyway I'm going to finish decoding the wifi print protocol and look into the firmware upgrade protocol.  And possibly try to snag an image from the camera as well.

I still won't officially support 1.x machines after that, but I will be much closer to it.  I may be able to send someone some test code to verify that  I'm going in the right direction, but chances are I will still need to get my hands on at least one fully functional 1.x machine to get this on line.  Still this potentially will reduce the timeframe needed to get it working by a lot.

266 (edited by david.tucker 2018-11-23 21:05:38)

Re: print gcode files to miniMaker

yizhou.he wrote:

Hi, David,

Small suggestion. update the 0.9.0.zip on first post with latest 0.9.5. I think many new people start with that buggy version. Also add a link point to release page of github on first post or add this link to the readme.md on github. I think many new people not that familiar with github are not using your latest version.

Good point, I will fix that up.  Anyone still on 0.9 or any older version, you should grab 0.9.5 from the first post.  It should be the most stable and complete version yet.

267

Re: print gcode files to miniMaker

I have been playing with miniMover 0.9.5 since yesterday. Everything works much better than 0.9.0, almost all function work as expected, it is much much much better than xyzware in many way.

Here are some small function request, hopefully they are not too difficult to implement.
1. The target and printer is set to auto by default, and they practically always detect my miniMaker correctly. Can you make the option automatically scroll to detected target and printer com port? It is not important at all but can make more sense. Also is it possible add a button to connect/disconnect the printer or reset the printer? I sometimes fund the app will stop working because printer is doing something else unsuccessfully (all fuction will return fail but the main UI is still response). I have to reboot the printer and restart the apps and everything will work again, it will be nice if we can recovery this by push a button.

2. z-offset, is is possible to convert the number to mm so that it is easy to understand. It is also very helpful to display tips about increase z-offset will move nozzle higher or lower so that it is easier for newbie to find out how to adjust the z-offset.

3. When load/unload filament, there is long time progress bar just hanging there and text on progress bar saying loading or unloading, I know the printer is heating up nozzle, can you change the text to heating up nozzle and include some text saying it is going to take x minutes or so? It will be great if you can display current nozzle temperature/target nozzle temperature if possible.

4. when unload filament, there is time of waiting between filament extracted and step motor pull the filament, I think it is waiting for hotend to cool down, it will be nice if there are some text to inform people so and it will be best if you can display current nozzle temperature/target nozzle temperature here.

I know these are all non-essential function, but it do improve user experience a lot, especially for people don't know what's going on and what to expect, some may think it freezes or not functional properly.

Cheers,

(Da Vinci 1.0, Jr. 1.0 RAMPS, miniMaker) X4, (Creality CR-10S, CR-10 mini, Ender-3) X4, Anycubic MEGA X4, Anycubic Chrion X1, ADMILAB Gantry X2 (MonoPrice Maker Select V2, Plus, Ultimate)X4--Select mini X1, Anycubic photon X4, Wanhao duplicate D7 X1.
iNSTONE Inventor Pro X2, CTC Dual X2, ANET-A8, Hictop 3DP-11, Solidoodle Press, FLSUN I3 2017X1

268

Re: print gcode files to miniMaker

Those are good ideas, 3 and 4 in particular are important ones, although I may not be able to get much information out of the printer at that point in time.

On number 1 you can reset the connection by selecting your printer or 'auto' from the dropdown.  That should act just the same as if you restarted the program, let me know if that is not working for you.  Of course once the printer locks up you basically have to reboot it before I can reset the connection.  Sadly it does not seem to have a watchdog timer or any other method to recover from a lockup.

269 (edited by yizhou.he 2018-11-27 03:57:09)

Re: print gcode files to miniMaker

I don't know if you already doing this, I found the printer lockup often happens when I try to make printer do something while previous task is not finished or unsuccessful. Is it possible to check printer status (query=j) before send any action command to make sure printer is idle or previous action is _DONE? If not, either msgbox printer busy or advice reboot printer is printer not response in 5 minutes or so.

When I load/unload filament from Jr. console, it shows current hotend temperature, but I'm not sure how to load/unload filament with miniMaker without miniMover. Does xyzware have load/unload filament somewhere? does it show hotend temperature? You may not be able to do query=a, but may be able to do query=t

Cheers,

(Da Vinci 1.0, Jr. 1.0 RAMPS, miniMaker) X4, (Creality CR-10S, CR-10 mini, Ender-3) X4, Anycubic MEGA X4, Anycubic Chrion X1, ADMILAB Gantry X2 (MonoPrice Maker Select V2, Plus, Ultimate)X4--Select mini X1, Anycubic photon X4, Wanhao duplicate D7 X1.
iNSTONE Inventor Pro X2, CTC Dual X2, ANET-A8, Hictop 3DP-11, Solidoodle Press, FLSUN I3 2017X1

270

Re: print gcode files to miniMaker

I put in #2 already, that was tricky but worth it.

I'm still thinking about #1, It would take some work as well but it seems like a good idea.

I have not relied on the machine state to control when we can issue a command, simply because on a wifi connection the state is unreliable and very slow to update.  However I attempt to block on any task till the state is idle, or I time out.  At that point I could pop up a dialog saying something went wrong.

For the same reason I have been reluctant to query the state when the machine is warming up.  Over usb it is not too hard, but on wifi it can make things very unstable.  Anyway it is on my list to improve the status, what I have now is certainly too little.

271

Re: print gcode files to miniMaker

You have to click the little square box in the lower right corner of XYZWare to bring up the controls to unload the filament on the miniMaker.

272

Re: print gcode files to miniMaker

david.tucker wrote:

Anyway it is on my list to improve the status, what I have now is certainly too little.

No worries, they are much much much better than xyzware already. Lot more responsive and easy to use. And after I used 0.9.5 instead of 0.9.0, I actually need to try very hard to get the printer locked up. I have not tried wifi yet, and will probably try it on your next release (connect through USB worked so well and it is actually printing a lot lately).

(Da Vinci 1.0, Jr. 1.0 RAMPS, miniMaker) X4, (Creality CR-10S, CR-10 mini, Ender-3) X4, Anycubic MEGA X4, Anycubic Chrion X1, ADMILAB Gantry X2 (MonoPrice Maker Select V2, Plus, Ultimate)X4--Select mini X1, Anycubic photon X4, Wanhao duplicate D7 X1.
iNSTONE Inventor Pro X2, CTC Dual X2, ANET-A8, Hictop 3DP-11, Solidoodle Press, FLSUN I3 2017X1

273 (edited by david.tucker 2018-11-30 01:18:46)

Re: print gcode files to miniMaker

I'm floundering a bit so I thought I would write up another todo list.

- Need to close wifi connection after every command.  That means I need to track the state of the connection independant of if it is open or not (keep track of failures), and retain enough that a 'reopen' command could be executed at any time.  This may help the mini w work better, however I'm not holding my breath.  It is needed to make the 1.1 Plus work over wifi.

- Need to properly test my stubbed in 1.1 Plus code.  This includes coming up with a small demo that can print a machine status and dump a test file to a printer so that someone with a working 1.1 can let me know how it goes.  Chances are it will just lock up, but who knows.

- Need to at least integrate enough of the v2 protocol so I can auto detect the machine model when converting files.  I think that is a safe thing to do.  Sending a file to be printed over the v2 protocol is more tricky.

- Need to finish splitting up the file enc/dec and send routines into sub tasks so they don't lock up the process.  That is the last step to getting the UI to become free of any lockups.  And it is needed so I can drive a progress bar while uploading a file to the printer (and while converting large files).  This is tedious, but not difficult.

- Need to improve the status shown on the UI.  Both by filling in more details, and working out how to query status (bed temp,etc) while in the middle of executing another command.  This is probably going to require another rethink of how I handle the logic.  In XYZWare they run two threads, one sends out data and the other recieves responses.  That way the sending thread can just spin while waiting for a response. This is not a very good design, it breaks up the logic too much however something similar is probably where I will end up eventually.

- Need to stub in code to download firmware from xyz website.  I'm reluctant to go down that road since there is a high chance of me bricking someones printer when upgrading or downgrading firmware, but still...

- Need to enforce a 3 second delay between commands when communicating to a mini w machine.

- Need to test and more test and release a 0.96 version.  There are a few nice improvements since the v0.95 version

274

Re: print gcode files to miniMaker

i can help you with testing firmware upgrade function, i got four minimake, jr, and 1.0 and i am not afraid of bricking my printer.

(Da Vinci 1.0, Jr. 1.0 RAMPS, miniMaker) X4, (Creality CR-10S, CR-10 mini, Ender-3) X4, Anycubic MEGA X4, Anycubic Chrion X1, ADMILAB Gantry X2 (MonoPrice Maker Select V2, Plus, Ultimate)X4--Select mini X1, Anycubic photon X4, Wanhao duplicate D7 X1.
iNSTONE Inventor Pro X2, CTC Dual X2, ANET-A8, Hictop 3DP-11, Solidoodle Press, FLSUN I3 2017X1

275 (edited by david.tucker 2018-12-03 00:47:15)

Re: print gcode files to miniMaker

Ok, I coded up everything I know about the V2 protocol and wired it all in so you can enable it with a #define at compile time. There are a lot of unknowns so it is unlikely this will fail, but at least I can pass this code out and log what happens on other peoples printers.

I have not had a chance to test it out yet, I'm bogged down on a rewrite of my JSON parser.  Up to now I was doing simple string matching to decode the JSON, that worked in the past but the new v1.1 Plus sends out strings with duplicate keys in it so now I have to decode it properly.  I have everything stubbed in and just need to finish the key/value parser.  Hopefully I will find inspiration to finish that up soon.

Other than that I just need to do a little cleanup to make sure I'm handling error cases well and logging everything to the debug log and then I can put up an exe for someone to test.  My goal is to finish up with the 1.1 Plus board this week, I have kept it long enough.  However I want to get the code to a working point before passing it on (if that is ok of course).

---

Oh, I forgot that I need to rework the wireless code so that the connection can close and reopen after every command.  It should be straight forward, other than the fact that I'm using a closed connection as an error state.