Prosur: newly released open-source 3D printing monitoring tool
-
In the topic https://forum.duet3d.com/post/260584 I mentioned my need for way to log temperatures of my custom heated chamber for troubleshooting. After making various crappy tools to gather various temperatures across my print chamber, I got fed up and decided to create a proper tool:
Prosur - Production Surveyor
Logging all activity
in your additive production facility.It turned into a much more general purpose tool. It continuously gathers data from RepRapFirmware (over HTTP), it gathers stills from an UVC camera, and collects aux. chamber temperatures from the serial port.
(There is an optional AVR program (using plain AVR code, not using any Arduino tooling) to gather thermistor temperatures on an ATMega based microcontrollers.
The tool stores all data into a database for archival.
Using a web viewer, an infinitely scrolling plot gives access to all the print data.
It stores the GCode file and extracts all slicer parameters. These are stored in separate rows in the database and displayed in the webviewer. This allows comparing print jobs by looking at the stills in the bottom timeline bar, looking at the graphs, and comparing the print parameters by looking in the right column.
For the web viewer, TypeScript is used with no JS libraries. The C++20 backend uses only the ProgreSQL C client library and a small header-only JSON and timer component. HTTP client and server are done using unix sockets. Using modern C++20 this has become trivial.
It it written for Linux specifically, in particular the UVC camera component, which uses V4L2 (video for LInux 2). All other code should run on most Unix based systems with minor adjustment. (not much is needed apart from pthreads).
Please let me know your thoughts! Any feedback is highly welcomed!
https://github.com/EDG5000/prosur
PS I have not gotten CI working, so you will have to compile it yourself. Let me know if there are any build issues. I should test my build guide on a clean Linux VM to check if all dependencies are correct.
-
@EDG5000 link is not working?