OctoPrint-FlashForge icon indicating copy to clipboard operation
OctoPrint-FlashForge copied to clipboard

Add Dremel Digilab 3D45 support

Open powpingdone opened this issue 5 years ago • 112 comments

Dremel Digilab 3D45 has a different printer ID than the "Dremel IdeaBuilder," add it in.

powpingdone avatar Feb 02 '20 01:02 powpingdone

Do not pull yet, there is a issue with connection timing out.

powpingdone avatar Feb 02 '20 02:02 powpingdone

Thanks for your help!

Where are the timeouts happening - connecting, while idle or while printing from SD? If you are doing this from the desktop and your computer goes to sleep I think that might kill the connection.

On the last rev I made some changes to the default settings to try and make it connect more reliably out the gate. But I think you need to have the two settings for "Temperature interval" be set to 2 or 3 (under "serial Connection">"Intervals & timeouts")

I am also working on a change to support direct printing (directly from OctoPrint instead only via upload to SD card and kicking off a print). While doing that I noticed that on long operations the printer needs to be polled even when the print queue is full or it drops the connection.

Mrnt avatar Feb 02 '20 02:02 Mrnt

Tried to reconnect, and I got a Kernel Panic. Whoops. Upgrading the pi....

powpingdone avatar Feb 02 '20 02:02 powpingdone

I do have the settings set to 2.

powpingdone avatar Feb 02 '20 02:02 powpingdone

Which pi are you using? You may need to turn on debugging for the plugin and take a look at the log if you are not seeing anything useful in the Terminal tab

Mrnt avatar Feb 02 '20 02:02 Mrnt

Yeah got another kernel panic. Pi 3. Sorry but I won't be able to debug it until Monday.

powpingdone avatar Feb 02 '20 03:02 powpingdone

Maybe a damaged card? Try wiping and doing a clean install?

Mrnt avatar Feb 02 '20 03:02 Mrnt

Kernel panic. Switched pis and sd cards. Something about Linux being unable to page memory? It does this every time I connect. Very strange error.

powpingdone avatar Feb 03 '20 18:02 powpingdone

Are you using OctoPi or OctoPrint installed on top of something like Raspbian? If not OctoPi do you have other things installed (touch display, etc)? Any other OctoPrint plugins installed, enabled? Debugging enabled or disabled?

Mrnt avatar Feb 04 '20 00:02 Mrnt

Using the octopi image with no other peripherals and nothing other than your plugin. Debugging disabled.

powpingdone avatar Feb 04 '20 01:02 powpingdone

And no camera?

Mrnt avatar Feb 04 '20 01:02 Mrnt

No camera.

powpingdone avatar Feb 04 '20 01:02 powpingdone

Is it possible it is a corrupted/incomplete octopi download?

Mrnt avatar Feb 04 '20 01:02 Mrnt

No, I used the same image on 2 other Pi's with regular Marlin printers attached

powpingdone avatar Feb 04 '20 02:02 powpingdone

OK. Im a bit mystified. I just:

  • made a clean image of Octopi
  • put it on a Raspberry Pi 3
  • booted up
  • installed the FlashForge plugin via the plugin manager
  • created a dev rule to enable usb access
  • rebooted and now I can connect to my Flashforge Dreamer printer (unfortunately I don't have a Dremel but I know they are made by FF and should have basically the same firmware) and uploaded to the sd card just fine.

For you is it failing right when you tell it to connect to the printer? Are you using all default settings? Did you turn on debugging for the plugin? - if so can you get a clean octopi.log and upload it as a zip file?

Mrnt avatar Feb 04 '20 02:02 Mrnt

I am using all default settings, with your suggestions. It fails after communicating with the printer. It will be giving me the timeout message, and then a kernel oops happens. Debugging hasn't been tried in depth, will be tried tomorrow.

powpingdone avatar Feb 04 '20 03:02 powpingdone

Heres the logs. Also I checked the md5 hash on the zip, and everything was ok. dremellogs.zip

powpingdone avatar Feb 04 '20 15:02 powpingdone

Upload to SD worked, and then it crashed the pi. The printer stopped shortly after.

powpingdone avatar Feb 04 '20 15:02 powpingdone

Is there anything I could do to help debug?

powpingdone avatar Feb 07 '20 04:02 powpingdone

Sorry for the delay and thanks for posting the logs. I'm taking a look at them and have a couple of ideas. Give me a day or two - I think I might make a special version for you to test with if that is ok with you.

Mrnt avatar Feb 09 '20 00:02 Mrnt

A couple of things off the bat that may not be helping:

  1. It looks like you are sending a file to print and connecting to the printer at the same time, you may need to let the connection establish first.
  2. At the moment the plugin does not support printing except via uploading the file to the printer's SD card because the printer takes so long to respond when waiting for the extruders/bed to warm up or homing that either Octoprint considers the connection dead or the printer thinks the USB connection is no longer active because the host (ie Octoprint) hasn't sent anything (because Octoprint is blocked on sending print commands until it receives a response to the commands already sent, which won't happen until the printer starts printing when it reaches temp).

I almost have a solution for 2 but I am still in the process of testing/bug fixing.

Mrnt avatar Feb 09 '20 01:02 Mrnt

Ah ok. How long does it usually take to connect? Because with your settings the pi times out when connecting. I'm ok with using a custom build and/or custom src.

powpingdone avatar Feb 09 '20 01:02 powpingdone

Just to connect is typically instantaneous, but I think there is an issue right at that point for your printer where it fetches the status as part of completing the connection, returns something mangled to Octoprint which leads to Octoprint thinking it is still waiting for a response from the printer, triggering the timeout, etc.

Mrnt avatar Feb 09 '20 20:02 Mrnt

Yeah I do remember it being very delayed when fetching temperatures.

powpingdone avatar Feb 09 '20 21:02 powpingdone

After looking more closely at the libusb docs, it looks like I needed a bigger read buffer. Just pushed a new release to master with that fix and I think that may be causing at least some of your troubles. Please do an update on the plugin and let me know how it goes.

Mrnt avatar Feb 09 '20 22:02 Mrnt

You will need to add your Dremel USB ID since I did not merge that yet

Mrnt avatar Feb 09 '20 22:02 Mrnt

Gotcha. Will do that tomorrow as I don't have access to the printer right now.

powpingdone avatar Feb 09 '20 22:02 powpingdone

octoprint.zip It connects properly, but times out during heating when attempting to print.

powpingdone avatar Feb 10 '20 14:02 powpingdone

ok well thats progress! Are you uploading the file to the sd card via Octoprint and printing or printing from within Octoprint? Right now printing from Octoprint directly ie load file into Octoprint and printing will have timeout issues because the printer will just sit there saying nothing if the wait for heat up command (M109) has been sent until it heats up (likewise for homing), so Octoprint assumes the connection is dead and will timeout depending on the timeout settings. You could try increasing the "Communication timeout" under Settings>Serial Connection>Intervals and Timeouts and fiddling with the "Max. consecutive timeouts while printing" under the "Advanced" section on the same settings page. Like I mentioned above I am working on supporting this but I have no docs and its all based on reverse engineering by trial and error so it takes time...

Mrnt avatar Feb 10 '20 18:02 Mrnt

Uploading from SD gives timeout issues, and the Pi is doing kernel panics and oops.

powpingdone avatar Feb 10 '20 23:02 powpingdone