76

Re: print gcode files to miniMaker

I'm seriously considering gutting the underlying XYZv3 library and completely rewiring it. 

I wrote it in a call/response style assuming one call would result in one action being performed and that the caller would want to wait (block) on the action.  This is a logical way to look at it, and great for command line utilities, but not so good for interactive programs.

My new model would basically have the caller queue up a series of actions and then poll for the response.  That would allow us to track temps, react to abort messages and other small benefits, all while never blocking for more than a few milliseconds.  I'm a little hesitant to go down this path because the benefits are relatively small compared to the work needed, but it is the only way to move to a truly responsive UI that can never block. And it is the cleanest way to make nozzle cleaning and filament unloading seamless.

The one hiccup in the equation is file conversion.  I either need to break conversion into pieces, not an easy task to do, or speed it up, or run it in its own thread.  Right now conversions can take up to 13 seconds!  That is way too long to block the UI.  Most conversions are under a second, livable but not wonderful.

The big killer on conversions is my AES algorithm.  I picked it because it was small and simple, but I may start looking into a more mature api, even if it clutters up the code.

77

Re: print gcode files to miniMaker

I'm taking a serious look at printing over wifi.  It looks relaively straight forward, if I can get my head around windows sockets.

I already put together code that can auto detect your wifi settings and can use that to setup the wifi properties on the printer.  And I have worked out how XYZWare keeps track of the last wifi printer you talked to.   

I just need to get a socket class that looks similar to my serial class and then make an abstraction layer to let you choose what method to communicate.  Then I need to track the wifi machines you have connected to via usb and optionally attempt to scan the network for any devices that have XYZ in there name.

Sounds simple enough, but the devil is in the details for sure.  Anyway I need to work up some drive to get this going, it would be much more exiting if I had a machine to talk to, but I can't find a way to get my hands on one.  I even have been trolling my kids schools and the local library system hoping to find a machine I could spend a few minutes a week with...

78

Re: print gcode files to miniMaker

I made some progress on adding in support for controlling a printer over wifi.  I have a rudimentary socket class that works, but could use a bit of help. And I have the basics stubbed in for the UI work. I still have a long way to go, and I'm not very optimistic that I can get the socket code to work right without having a machine to test against, but we will see.

79

Re: print gcode files to miniMaker

I forgot to mention that I have worked out some of the calls needed to control the scanner in the 3in1 printers.  I'm not that interested in finishing this off, but if you are curious you can see my notes here: https://github.com/reality-boy/miniMove … 0notes.txt

80 (edited by david.tucker 2018-04-28 19:18:16)

Re: print gcode files to miniMaker

Here is an early alpha version of miniMover 0.9.  This is laying the groundwork for printing over wifi. 

I have extended things so you can setup the wifi network, and have the code in place to query the printer ip so we can connect back to it after we remove the usb cable.  I also have a rudimentary soccet class going that may or may not work, but it is not currently hooked to anything.  Finally I filled in the rest of the options, like changing the name of the printer and adjusting the language and power saving options.

Still to do is to stash off information on the printers network into the registry (or a local text file), to load that information back up and populate the machine drop down, and finally to switch over to my socket class when a wifi connection is selected.

What I really need right now is someone with anything other than a miniMaker to test this out over usb and try adjusting all the settings and tell me how it goes.  If you can, create a debug.txt file in the same directory as the miniMoverUI.exe file before running any tests and send me the resulting file.  You can post it here, or email it to david.tucker at goliathindustries dot com.

I really need to get some data back from a machine that is configured to talk over wifi so I can see how to parse the return data.  Right now I'm mostly guessing at the format.  Any data would be a huge help.

Finally, this is completely untested, it could crash or blow up in any number of ways (but won't hurt your computer).  Keep a copy of 0.8 around if you need this to work reliably.

Post's attachments

miniMover 0.9.0 alpha 1.zip 223.37 kb, 32 downloads since 2018-04-28 

You don't have the permssions to download the attachments of this post.

81

Re: print gcode files to miniMaker

I am downloading now.

82

Re: print gcode files to miniMaker

David,

If I gave you access to a machine that was on my network with the printers, would that help you debug?


Where are you from?

email me at glennemay at g m a i l . c o m

83

Re: print gcode files to miniMaker

That may work, I will email you with details.

84

Re: print gcode files to miniMaker

david.tucker wrote:

I know I called this miniMover, but I want to be clear that this should let you send a gcode file to most of the currently shipping XYZ printers.  In fact here is a dump of all the printers I know about, everything not in the 'older' section should work with this utility.  Please let me know if you get it working with anything besides a miniMaker. 

Also, this currently only works over a serial connection (USB) but in theory it could be extended to work over wifi.

//  older communication protocol

"da Vinci 1.0"       
"da Vinci 1.0A"
"da Vinci AIO"
"da Vinci 2.0 Duo"
"da Vinci 2.0A Duo"

//  v3 protocol

"da Vinci 1.1 Plus" //???? I'm suspicious of this one, think it belongs above

"da Vinci Nano"
"da Vinci Mini w"
"da Vinci miniMaker"
"da Vinci Jr. 1.0"
"da Vinci Jr. 1.0 Wireless"
"da Vinci Jr. 3in1"
"da Vinci Jr. 2.0 Mix"
"da Vinci Jr. 1.0A"

//  new file format

"da Vinci Jr. 1.0 Pro"
"da Vinci Jr. 3in1 (Open filament)"
"da Vinci 1.0 Pro"
"da Vinci 1.0 Pro 3in1"
"da Vinci 1.0 Super"

I got a "da Vinci miniMaker" + red edition. It will not be recognized by the program. I use an usb 2.0 connection that lives as com12 in device manager and I can connect to it via xyzware.

85 (edited by carl_m1968 2018-05-17 17:02:12)

Re: print gcode files to miniMaker

The fact that it is a red edition should not matter. The main board is only one color and should have the same firmware they all have. There is some other reason it is not working. The software should connect to the printer regardless of a file being loaded or not. It still has to confirm certain parameters before a file can even be sent to it.

Printing since 2009 and still love it!
Anycubic 4MAX best $225 ever invested.
Voxelabs Proxima SLA. 6 inch 2k Mono LCD.
Anycubic Predator, massive Delta machine. 450 x 370 print envelope.

86

Re: print gcode files to miniMaker

jokerper wrote:

I got a "da Vinci miniMaker" + red edition. It will not be recognized by the program. I use an usb 2.0 connection that lives as com12 in device manager and I can connect to it via xyzware.

Can you create a debug.txt file and place it next to the minimover exe, then try to run the program.  That will log out any attempts I make to communicate with the machine.  Maybe it will give me a hint about what is going wrong.  You can post the output here, or email me at david.tucker at goliathindustries.com

Also I attempt to auto detect the port, but it is possible that I am latching onto the wrong device.  Can you manually choose com12 in the minimover program and see what happens.

Finally there are some known issues with the last few versions of minimover.  You may have more luck by going back to version 0.5.0 from here https://github.com/reality-boy/miniMover/releases

I have some bug fixes checked into github, I'm hoping to make a new release here soon.  My hope is to spend a few days doing some serious testing to make sure everything is working well before I release it.

87

Re: print gcode files to miniMaker

Oh, one more thing.  The first dropdown at the top of the minimover program lets you choose what printer to target when converting a gcode file to a 3w file.  This is automatically set if we manage to connect to a printer over usb, but you can manually select a printer and convert gcode to 3w files by hand.  Then you can use XYZWare to send it on to your printer.

Finally, could you make a small print in xyzware (slice it for printing, then hit save) and email it to me.  That will let me see if the machine id in the file is different than a normal yellow miniMaker or not.  It is possible they are different.

88

Re: print gcode files to miniMaker

I'm just wrapping up version 0.9 and hope to have it up to you by tomorrow.  In testing it out I realized that I have had a lot of long standing bugs in my code. 

One big one was in version 0.6.0 I lowered the communications timeout from 10 seconds to 0.5 seconds.  That was much too aggressive and can lead to regular failures.  I'm bumping that up to 5 seconds, but keeping it at 0.5 seconds when querying the z-offset  Apparently the pro 1.0 does not support that call.

Another was in the 0.9 alpha I posted a while back, I goofed up a call that was suppose to write a repeating byte pattern to file but instead started reading random blocks of memory.  Of course that lead to a nasty crash that was hard to track down.

Finally I managed to goof up the settings by being too agressive in pushing the last known state from the printer.  Basically you could not edit some settings because the state was constantly being updated.  I have this cleaned up by caching the current state and only updating if the setting changed.

In addition I have put in a lot of work to split out the maintenance routines so they can be run in loops rather than blocking.  I have everything split out but don't yet have the loops in place.  Once that is in place you will be able to see the hotend heat up and see the sub sate change when loading filament or doing other maintenance.

I also put more time into wireless. I have my wifi and serial classes deriving from a generic serial base class.  That will make it much easier for me to switch back and forth between them when I get ready to implement wifi support.

Anyway I hope to get this out to you soon, once I get some more testing behind me.  I usually only have time to work on this a few times a week for 45 minutes or so.  With so little time I have been guilty of pushing changes with almost no testing, and sadly some bugs have crept into the works.  I'm hoping that 0.9.0 will be a stable release that will work for some time.  In the meantime version 0.5 is very stable and worth checking out.

89

Re: print gcode files to miniMaker

I put in an offer on a broken mini w printer from ebay.  I doubt I will get it, but if I manage to then I will have a good chance of adding in wifi support.

90

Re: print gcode files to miniMaker

good update, i got a vinci pro and notice that most commands wont work on it.

i want to make octopi like base for my vinci pro and this program is very cool.

also cant believe this records temps better than xyzware does lol

91

Re: print gcode files to miniMaker

Ok, 0.9 is up! This should be much more stable than previous versions (at least since 0.5) so please upgrade right away, or give it another shot if you could not get the older versions to work.  And as always please let me know if you have any troubles with this.

92

Re: print gcode files to miniMaker

x1800MODMY360x wrote:

good update, i got a vinci pro and notice that most commands wont work on it.

i want to make octopi like base for my vinci pro and this program is very cool.

also cant believe this records temps better than xyzware does lol

Let me know if 0.9 works better with changing parameters on the pro, it should be more stable.  If it does not work then could you give me a list of options that don't work? 

I have often wondered if the options work with printers that already have a setting menu on the printer, or if they only work with the mini and micro printers that lack a LCD.

93

Re: print gcode files to miniMaker

david.tucker wrote:
x1800MODMY360x wrote:

good update, i got a vinci pro and notice that most commands wont work on it.

i want to make octopi like base for my vinci pro and this program is very cool.

also cant believe this records temps better than xyzware does lol

Let me know if 0.9 works better with changing parameters on the pro, it should be more stable.  If it does not work then could you give me a list of options that don't work? 

I have often wondered if the options work with printers that already have a setting menu on the printer, or if they only work with the mini and micro printers that lack a LCD.

On my pro, only print and pause/cancel print works. Every other option fails.

09 is working a lot better than 09A.

94

Re: print gcode files to miniMaker

Very interesting.  I guess it makes sense that they would not duplicate the on screen menu.  Although it seems short sited to force you to use the printer menu, what if the display went out or you can't read the text, etc. I wonder if that is the case for all the other printers.

I have tried to spoof things in XYZWare so that I can see how it would look with other printers, but have only had very limited success. It would be nice to see what they do for each printer.  Maybe I will code up an arduino to look like a printer.

95

Re: print gcode files to miniMaker

david.tucker wrote:

I put in an offer on a broken mini w printer from ebay.  I doubt I will get it, but if I manage to then I will have a good chance of adding in wifi support.

I got my mini w, and managed to get it back together.  Whoever had it last ripped it apart and did a bit of damage to it along the way but fortunately the broken parts are easy to swap over from my miniMaker.

Anyway now I have access to a machine that supports a wireless network.  I managed to get it setup and already fixed one of my issues, so I'm one step closer to making wireless working.  Now to get down to coding.

96

Re: print gcode files to miniMaker

While I was waiting for my mini w to come in, I decided to try porting my code over to linux/mac.  After a days work I managed to get almost everything to compile, everything but the networking/serial code that is...  Anyway I'm going to spend some time cleaning up the effort and then check it in.

The only problem is that I'm using the windows 10 linux subsystem and I can't get that to allow access to my serial port.  So I can compile but can't test.  I guess I need to dig out an emulator of some sort.  Anyway I guess I'm burning the candle at both ends now smile

97

Re: print gcode files to miniMaker

I can test the linux app, got the com ports to work on win10 for linux.

found out with another slicer program my printer confirmed that only can send prints/pause/cancel on wifi/usb.

for the da vinci pro.

98

Re: print gcode files to miniMaker

David,
before dealing with all the plattform-specific details... Have you thought about porting minimaker to java? Getting it to run on win/linux/mac would be way easier. I'm using my java based application for a while now (for uploading files, loading/unloading filament, zoffset etc).
Willing to offer sources as a starting point :-)

99

Re: print gcode files to miniMaker

david.tucker wrote:
jokerper wrote:

I got a "da Vinci miniMaker" + red edition. It will not be recognized by the program. I use an usb 2.0 connection that lives as com12 in device manager and I can connect to it via xyzware.

Can you create a debug.txt file and place it next to the minimover exe, then try to run the program.  That will log out any attempts I make to communicate with the machine.  Maybe it will give me a hint about what is going wrong.  You can post the output here, or email me at david.tucker at goliathindustries.com

Also I attempt to auto detect the port, but it is possible that I am latching onto the wrong device.  Can you manually choose com12 in the minimover program and see what happens.

Finally there are some known issues with the last few versions of minimover.  You may have more luck by going back to version 0.5.0 from here https://github.com/reality-boy/miniMover/releases

I have some bug fixes checked into github, I'm hoping to make a new release here soon.  My hope is to spend a few days doing some serious testing to make sure everything is working well before I release it.

Hi, Now I get it to work. It was connected to com3 and com1 was in use by the system, so I swapped the com port from 3 to 1, now it works. I dont think it runs all the com port thru.

100

Re: print gcode files to miniMaker

madman907 wrote:

David,
before dealing with all the plattform-specific details... Have you thought about porting minimaker to java? Getting it to run on win/linux/mac would be way easier. I'm using my java based application for a while now (for uploading files, loading/unloading filament, zoffset etc).
Willing to offer sources as a starting point :-)

Java or python would be more portable but also harder to embed in octopi, etc. Besides I’m a c++ developer by trade so this is what is comfortable and it helps hone my craft. I did a lot of Linux development 15 years ago, it is fun to get back into it now.