OctoPrint-FlashForge
OctoPrint-FlashForge copied to clipboard
Add Dremel Digilab 3D45 support
Dremel Digilab 3D45 has a different printer ID than the "Dremel IdeaBuilder," add it in.
Do not pull yet, there is a issue with connection timing out.
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.
Tried to reconnect, and I got a Kernel Panic. Whoops. Upgrading the pi....
I do have the settings set to 2.
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
Yeah got another kernel panic. Pi 3. Sorry but I won't be able to debug it until Monday.
Maybe a damaged card? Try wiping and doing a clean install?
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.
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?
Using the octopi image with no other peripherals and nothing other than your plugin. Debugging disabled.
And no camera?
No camera.
Is it possible it is a corrupted/incomplete octopi download?
No, I used the same image on 2 other Pi's with regular Marlin printers attached
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?
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.
Heres the logs. Also I checked the md5 hash on the zip, and everything was ok. dremellogs.zip
Upload to SD worked, and then it crashed the pi. The printer stopped shortly after.
Is there anything I could do to help debug?
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.
A couple of things off the bat that may not be helping:
- 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.
- 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.
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.
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.
Yeah I do remember it being very delayed when fetching temperatures.
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.
You will need to add your Dremel USB ID since I did not merge that yet
Gotcha. Will do that tomorrow as I don't have access to the printer right now.
octoprint.zip It connects properly, but times out during heating when attempting to print.
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...
Uploading from SD gives timeout issues, and the Pi is doing kernel panics and oops.