Data Acquisition from a Prusa MK3S, what is available?

I am working on a research project that is also implementing several Prusa MK3S printers into a bigger setup. The aim is to collect data from different devices with high frequency.
So, regarding the printers we wanted to use octoprint and a plugin to collect data during the prints and send them to a database.
My questions now are:
What parameters can actually be monitored via octoprint that we can then work with?
What kind of readout frequency can be achieved?
Are there any other options that might give us more datasets and/or a faster readout?

I tried to look up information regarding this aspect but could not find any good summaries, so i would kindly ask the community to maybe support me.

Thanks in advance,
Tobias

I'm no dev so I'm technically not qualified to help you with that stuff - but maybe I'm able to give you some useful information :slight_smile:

You don't necessarily need a plugin to collect data from an Octoprint instance - you could also request the data via the REST API — OctoPrint master documentation.

Thank you for your response. As of now, we have set up two printers wit a Raspi4 and Octopi and made a first trial using a plugin writing data to our database.
We are able to collect the "normal" values, meaning hotend temperature (target and actual value), bed temperature (target and actual value), estimated time till print ends, percentage of completion and the according timestamps. We also have the possibility to track "events" and are therefore able to track when the printer is performing the startup gcode and get a signal when the print is finished.
However, it would be great to get information on additional events. For example, we tried to trigger an event by voluntarily causing a crash (just by holding onto the printhead for a brief moment) and the Prusa actually showed the "Crash detected" warning in its screen. Via the events we did not get any message that something went wrong.
So how can we actually record such events to use them as a trigger to perform an action like noticing the operator via an e-mail or similar? Interesting events would be crash detected, running out of filament, temperature offset...

By writing a plugin that listens to the received serial messages and reacting to them.

Alternatively by writing a push API client that does the same.

There are only events for generic error cases, if you need more specifics you won't get around either a plugin or some API magic. Personally I'd recommend going the plugin route.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.