OctoPrint connected to printer but not detecting print job (SKR Mini E3)

What is the problem?

OctoPrint is successfully connected to my printer and all of the printer status (temperature, motion etc.) are update as should, but when I start a print job from my TFT35 LCD either via the main board SD card or via the USB flash drive on the LCD, the print is started and print successfully without an issue.

The only problem is that the print state in OctoPrint remain as "Operational" during the entire print (Pause and Cancel buttons are disabled and Print button is enabled).

Normally this is not a big issue for me as the print is successfully printed, but as I'm using the "The Spaghetti Detective" plugin there is my problem, the detective isn't working because it didn't detect the print job state (verified with the plugin support team).

Printing via the OctoPrint interface everything is as should.

Seems that this behavior started after I upgraded the stock Melzi board to the SKR Mini board.

[EDIT]
The official response from BIGTREETECH support:

Hello,

Now OctoPrint has a bug with our products, so if you can, you can use other printing software or use SD card to print. Or wait for OctoPrint official repair. I'm really sorry.

Yours sincerely,

BIQU customer service

Really disappointing!

What did you already try to solve it?

I've tried to use the M117 command as suggested in this post: https://community.octoprint.org/t/printer-doesnt-show-printing-status/20393 but without a success.

Complete Logs

octoprint.log (11.0 KB)
serial log wasn't activated, I will upload as necessary.

Additional information about your setup

OctoPrint Version: 1.4.2
OctoPi Version: 0.17.0
Raspberry Pi 3 Model B Rev 1.2
Printer: Ender 3
Main Board: SKR Mini E3 V2.0 (Marlin FW 2.0.6 customize)
LCD: TFT35 E3 V3.0

Interesting one. Now I thought OctoPrint did support picking up the status of the SD print, and that this is a firmware issue instead. Lazy response from. BTT support if you ask me...

I don't have my Marlin config around at the moment, maybe I can find it later, but I'm sure there is an option to report SD status back to OctoPrint.

Ha, that was easier than I thought.

Try enabling this line in configuration_adv.h

It should then come through in a capability report, so OctoPrint sends the M27 to autoreport.

Again, incredibly lazy response from BTT, that took me all of 2 mins. No bugs, just settings.

Hi Charlie,

Thank you for the reply.

I also thought the BTT response was lazy and not respect their customers.

Anyway, your suggestion didn't fix my problem but you are on the right direction.

I've enabled the AUTO_REPORT_SD_STATUS definition and tried to print both from the SD card and from the TFT35 flash drive (I don't know if that on purpose or you just miss that, but you didn't address the flash drive in your answer), and again no detection of the print in OctoPrint.

I searched in the serial.log (76.8 KB) the 'M27' command and it wasn't there, so I manually sent 'M27 S' command via the OctoPrint terminal (during a print) and immediately the state changed to 'Printing from SD'.

As a workaround I believe that I just can add the 'M27 S' command to my start Gcode but I would like to avoid that if possible.

Oh yeah, missed that. Imagine it's handled similar to the SD card anyway, although I don't know the specifics.

What does an M115 command output? It could be for some reason it is not reported as a capability, so OctoPrint doesn't know to send M27.

Or I may be wrong, however when I connect to the virtual printer in OctoPrint, it automatically reports the status of the 'virtual SD', so something's there.

Afraid I don't know how to get the capability report fixed, I just assumed that it would be generated by Marlin. Would have to have a look when I get a chance next week.

EDIT: I have just looked at your log, seems it does report SD Autoreport as 1, so OctoPrint should know to send M27......

Send: M115
[...]
Recv: FIRMWARE_NAME:Marlin 2.0.6 (Aug 21 2020 14:23:37) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:Ender-3 EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
Recv: Cap:SERIAL_XON_XOFF:0
Recv: Cap:BINARY_FILE_TRANSFER:0
Recv: Cap:EEPROM:1
Recv: Cap:VOLUMETRIC:1
Recv: Cap:AUTOREPORT_TEMP:1
Recv: Cap:PROGRESS:0
Recv: Cap:PRINT_JOB:1
Recv: Cap:AUTOLEVEL:1
Recv: Cap:RUNOUT:0
Recv: Cap:Z_PROBE:1
Recv: Cap:LEVELING_DATA:1
Recv: Cap:BUILD_PERCENT:1
Recv: Cap:SOFTWARE_POWER:0
Recv: Cap:TOGGLE_LIGHTS:0
Recv: Cap:CASE_LIGHT_BRIGHTNESS:0
Recv: Cap:EMERGENCY_PARSER:0
Recv: Cap:PROMPT_SUPPORT:0
Recv: Cap:SDCARD:1
Recv: Cap:AUTOREPORT_SD_STATUS:1
Recv: Cap:LONG_FILENAME:1
Recv: Cap:THERMAL_PROTECTION:1
Recv: Cap:MOTION_MODES:0
Recv: Cap:ARCS:0
Recv: Cap:BABYSTEPPING:1
Recv: Cap:CHAMBER_TEMPERATURE:0
Recv: ok
Send: M155 S2

EDIT: I want to try this tomorrow after I finish my current print:
https://github.com/bigtreetech/BIGTREETECH-SKR-PRO-V1.1/issues/123#issuecomment-643912932

You think it could help? or it got nothing to do with this issue.

That issue seems unrelated. I only have my phone with me, but it has OctoPrint installed :sunglasses:, so I'm going to have a look at what the virtual printer does.

Capability report is good, so maybe it is something in OctoPrint :thinking:

Well, it works for me...
This is the terminal output, on the virtual printer.


As you can see... M115 reports SD Autoreport, and then OctoPrint follows up with M27.

Hmm. Maybe there's a setting in OctoPrint that enables that.