Can Octoprint display the realtime printing speed?

I am new to Octoprint and have seen some users screens on YouTube that seem to show the printing speed. I suspect that this is the expected printing speed and not the actual real time printing speed. Is this correct? If so, is there interest in having real time printing speed values?

I have some hardware that outputs real time printing speed values on a USB connection. Is there any interest in incorporating this data to allow the display of the actual printing speeds?

What is your definition of "printing speed"?

Can you provide a link (or two) to YouTube videos showing the "printing speed"? Can you provide some sample output from your hardware? Use a simple object like a small cube and provide the gcode file.

By printing speed, I mean mm/s. I don't have the YouTube links but they were not specifically focused on the printing speed but it was on their Octoprint screen. I'll try to search it up again.

I will print a cube and record the output for you.

Hi there.
Here is the data from the USB port as captured using Arduino Com port monitor. I printed a 10mm x 10mm x10mm cube. The data is transmitted every 10.5mm of filament usage, from the spool. This means data is not sent every second but depends on the print job speed. I think this is still useful data though. (baud = 115200)

1 cubic centimeter 0.497m at 0.2mm of Isanghu Transp RedYelBlk PETG 14m.gcode (194.4 KB)

Can't seem to upload a txt file so here it since it's small.

11:48:01.672 ->
11:48:02.183 ->
11:48:02.183 -> Connecting to WiFi..........
11:48:07.898 -> Connected to orange
11:48:07.898 -> IP address: 192.168.1.6
11:48:07.898 -> MDNS responder started
11:48:07.898 -> HTTP server started
11:48:18.059 -> Spool selection
11:48:24.105 -> Spool selected: 2
11:52:06.896 -> G_sec_start = 249
11:52:06.896 -> Printing Speed (mm/s) = 0
11:52:14.457 -> Printing Speed (mm/s) = 27
11:52:21.303 -> Printing Speed (mm/s) = 29
11:52:28.793 -> Printing Speed (mm/s) = 27
11:52:40.426 -> Printing Speed (mm/s) = 17
11:52:56.411 -> Printing Speed (mm/s) = 13
11:53:14.304 -> Printing Speed (mm/s) = 11
11:53:34.628 -> Printing Speed (mm/s) = 10
11:53:53.177 -> Printing Speed (mm/s) = 11
11:54:15.783 -> Printing Speed (mm/s) = 9
11:54:35.432 -> Printing Speed (mm/s) = 10
11:54:55.497 -> Printing Speed (mm/s) = 10
11:55:17.015 -> Printing Speed (mm/s) = 9
11:55:37.593 -> Printing Speed (mm/s) = 10
11:55:58.974 -> Printing Speed (mm/s) = 9
11:56:19.871 -> Printing Speed (mm/s) = 10
11:56:38.049 -> Printing Speed (mm/s) = 11
11:56:59.101 -> Printing Speed (mm/s) = 10
11:57:20.921 -> Printing Speed (mm/s) = 9
11:57:42.183 -> Printing Speed (mm/s) = 9
11:58:03.246 -> Printing Speed (mm/s) = 10
11:58:21.589 -> Printing Speed (mm/s) = 11
11:58:42.040 -> Printing Speed (mm/s) = 10
11:59:03.951 -> Printing Speed (mm/s) = 9
11:59:22.679 -> Printing Speed (mm/s) = 11
11:59:44.616 -> Printing Speed (mm/s) = 9
12:00:05.854 -> Printing Speed (mm/s) = 9
12:00:23.734 -> Printing Speed (mm/s) = 11
12:00:45.151 -> Printing Speed (mm/s) = 9
12:01:05.712 -> Printing Speed (mm/s) = 10
12:01:25.526 -> Printing Speed (mm/s) = 10
12:01:47.536 -> Printing Speed (mm/s) = 9
12:02:07.634 -> Printing Speed (mm/s) = 10
12:02:27.816 -> Printing Speed (mm/s) = 10
12:02:49.530 -> Printing Speed (mm/s) = 9
12:03:07.986 -> Printing Speed (mm/s) = 11
12:03:28.592 -> Printing Speed (mm/s) = 10
12:03:51.818 -> Printing Speed (mm/s) = 9
12:04:09.215 -> Printing Speed (mm/s) = 12
12:04:29.467 -> Printing Speed (mm/s) = 10
12:04:52.386 -> Printing Speed (mm/s) = 9
12:05:10.529 -> Printing Speed (mm/s) = 11
12:08:40.545 -> printing Finished. Print time = 0Hrs 13min 4Sec

The print speed is predetermined by the slicer settings. I'm not sure realtime output is all that useful except to verify that the actual speed matches the requested speed but since the requested speed can be changed on each command, how useful is a sampled actual speed?

What might be just as useful is offline analysis like that provided by something like https://www.gcodeanalyser.com/.

To display this data in OctoPrint would require a plugin. There are plugins that add to the temperature graph that might be used as examples as well as plugins that generate timelapse videos that might also be useful.

It would probably be quite straightforward to make a plugin to read your output and do what you want with it, although it sounds like it's external hardware to the printer rather than coming through on the same connection so that might complicate it a bit.

Print speed can vary from what the slicer sets, due to acceleration limits & stuff, and then even in the slicer it can vary the print speed from what you asked in relation to minimum layer time and extrusion limits. But then also someone might just be interested in seeing how fast the printer is moving now rather than theoretically from analysing the gcode.

Hi there.
I guess not everyone likes to see data from their equipment like I do. In my opinion, if it's interesting then it is useful. Anyways, I don't have time to write a plugin myself right now but thanks for the suggestions.

You're right, it's external hardware from the printer. I thought maybe the Pi or whatever would have another USB port or port of some kind that could be used.

And, I am one of those people who just like to see the current 'real' printing speed as the print is running. I don't use Octoprint currently, but I was curiously looking at it.

OctoPrint displays quite a lot of data already and many of us do like to see data from our equipment.

Many Raspberry Pi models have multiple USB ports (the Raspberry Pi 4 has 2 USB 2.0 and 2 USB 3.0 ports) so from a hardware perspective, integrating your printer and your hardware would still leave a couple of USB ports for other things (cameras being a very popular choice).

I'm guessing your hardware is measuring the filament usage (in mm per second) and not speed of the nozzle, correct?

That's right. Filament usage as opposed to nozzle movement speed. Using math I translate the filament movement from the spool to filament movement out of the nozzle.