01F0 / flashforge-finder-api

This is an unofficial interpretation of the FlashForge Finder API. It's served with Flask to make it as easy as possible to create your own UI.
MIT License
33 stars 10 forks source link

Confirmed to work on Flashforge Adventure 4 #4

Open vazman13 opened 1 year ago

vazman13 commented 1 year ago

FYI: Installed this API on a RPI 4 to access my Flashforge Adventure 4. Works perfectly. Thanks!

On the GUI for the printer, it shows the estimated remaining time. Wish that was exposed in the API, instead of having to calculate an rough time remaining from the estimated time * percentage remaining.

01F0 commented 1 year ago

That's awesome! Thanks for sharing. My Finders are still racking up hours but I have looked at the Adventure 4 too, looks nice!

As for the progress, hmm, I don't think it was exposed in the API IIRC, unless you have seen it?

If that's the case, I could add an estimatedTime property or something to /progress, do you have any nice way to calculate it? 🙂

vazman13 commented 1 year ago

Thank you for getting back to me. And thank you for sharing your programming.

I'm a totally noob regarding 3D printing and the Adventurer 4 is my first and currently only printer. So no clue as to if there is more data that could be available from the printer. But I love the machine so far... getting pretty easy to consistently print successfully. Not super fast, but also wasn't very pricey.

As for the print progress idea, since we can only get the percentage of completion, the only way I see to calculate time is to know the estimated time to print and then calculate remaining time. On the Adv. 4, the estimated time remaining is on the GUI. I can't tell if the printer is calculating that value from the model or if the slicer (I'm using Flashprint) sends the estimated completion time value as metadata with the sliced model. Either way, don't see how to grab that value.

What I really want to do is build a web-based emulation of the GUI from the printer. At this point, less interested in input/changing values, but rather monitoring the data available on my machine. Your solution fetches the progress, status, head temp, etc. Which is awesome! I'm wanting the bed temp and actual time remaining too.

Also would be nice if the filament sensor reported it's status... hard to tell if you've run out of filament, the heads clogged or the drive is malfunctioning. That would eliminate at least one culprit for a failed print when remotely monitoring.

As happens, I've had a few prints fail and string out, as I know comes with the territory. I was wondering if anyone has a solution using computer vision and AI to report if a build failed? Turns out there are a number of papers published on just that issue. They actually used cameras/AI to compare the build to a virtual model of the model at the same point in the print. Failure modes included distortion, sagging, adhesion failure, stringing, etc. Pretty cool!

I'd love to see that as standard part of a printers self-monitoring functionality. But that's a lot to ask for in a sub $1000 machine! :)

Thanks again and take care.

Dan

On Tue, Dec 20, 2022 at 1:34 PM Miro Castberg @.***> wrote:

That's awesome! Thanks for sharing. My Finders are still racking up hours but I have looked at the Adventurer 4 too, looks nice!

As for the progress, hmm, I don't think it was exposed in the API IIRC, unless you have seen it?

If that's the case, I could add an estimatedTime property or something to /progress, do you have any nice way to calculate it? 🙂

— Reply to this email directly, view it on GitHub https://github.com/01F0/flashforge-finder-api/issues/4#issuecomment-1359966553, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASS62CU5MTMCCV72YHVFGVTWOH33LANCNFSM6AAAAAATEBU6DA . You are receiving this because you authored the thread.Message ID: @.***>

01F0 commented 1 year ago

I see!

Hmm, I'm doing a few runs now but I can't see any news there. As you've mentioned it might be calculated in the GUI. It might be that my Finder doesn't have all the bells and whistles as your Adventurer 4 have :D

If you find any interesting features and want to contribute, please go ahead. You can find commands by running FlashPrint and tcpdump tcp src port 8899 -A (or Wireshark with the same port filter). You will see all the commands in ASCII and those commands are the ones I apply regex patterns to in the API.

As for the UI, did you see this UI project, might be useful for some inspiration :) https://github.com/01F0/flashforge-finder-dashboard

Failure detection like that sounds awesome, it feels like something that FlashPrint could support in the future.. Bambu's printers are equipped with that kind of AI feature out-of-the-box, I think: https://wiki.bambulab.com/en/knowledge-sharing/Spaghetti_detection