Need your help with gathering M20 L T output from various printers

Hello.

I'm interested in "M20 L T" command output (lists files with long file names and timestamps) from different printers/firmwares.

So if you have one then please do octoprint -> terminal -> write M20 L T command and attach output to this thread. Also do the same with M115 (firmware information). Thanks!

Note - at least one file is needed on sd card.

The goal is to have sd card file timestamps supported in octoprint.

1 Like

Example entries:

prusa mk3s+ with 3.11.1 firmware:

Send: M20 L T
Recv: Begin file list
Recv: 24CHAR~1.GCO 78 0x28210800 "test-100M.gcode"
Recv: 3DBENC~2.GCO 0 0x28210800 "z-screw-cover_0.2mm_PETG_MK3S_1h21m.gcode"
Recv: TEST-G~2.GCO 3014 0x28210800 "test-smaller.gcode"
Recv: 3DBENC~4.GCO 0 0x28210800 "y-motor-holder_0.15mm_PETG_MK3S_3h19m.gcode"
Recv: TGOM~1.GCO 22 0x54fb311a "tgom.gcode"
Recv: 3DBEN~10.GCO 0 0x28210800 "test-smaller.gcode"
Recv: 3DBEN~11.GCO 0 0x28210800 "test-smaller.gcode"
Recv: PRUSA_~2.GCO 14015678 0x55027301 "prusa_mmu_enclosure_2_02mm_pet_mk3s_11h28m.gcode"
Recv: PRUSA_~3.GCO 2997519 0x5503369a "prusa_mmu_enclosure_3_02mm_pet_mk3s_4h28m.gcode"
Recv: PRUSA_~1.GCO 11684439 0x5501b751 "prusa_mmu_enclosure_1_02mm_pet_mk3s_15h36m.gcode"
Recv: PRUSA_~4.GCO 7009828 0x55035bac "prusa_mmu_enclosure_4_02mm_pet_mk3s_4h42m.gcode"
Recv: PRUSA_~5.GCO 4731382 0x55038a92 "prusa_mmu_enclosure_11_black_02mm_pet_mk3s_5h23.gcod"
Recv: BANANA~1.GCO 111932 0x550449e8 "banana plug spacer flat_0.3mm_PETG_MK3S_2m.gcode"
Recv: PTFE_4~1.GCO 284654 0x55044744 "ptfe_4mm_cutting_guide_0.35mm_PLA__14m.gcode"
Recv: TEST-G~1.GCO 14465 0x550555ed "test-gcode-moves-with-m84.gcode"
Recv: PRUSA_~6.GCO 14265025 0x5504576a "prusa_mmu_enclosure_5_02mm_pet_mk3s_16h45m.gcode"
Recv: PRUSA_~7.GCO 16330603 0x5505370a "prusa_mmu_enclosure_6_02mm_pet_mk3s_20h57m.gcode"
Recv: LINUX-~2.GCO 78 0x55053c2f "linux-NOutc-09-33.gcode"
Recv: LINUX-~3.GCO 78 0x55055424 "linux-10-32.gcode"
Recv: End file list
Send: M115
Recv: FIRMWARE_NAME:Prusa-Firmware 3.11.1 based on Marlin FIRMWARE_URL:GitHub - prusa3d/Prusa-Firmware: Firmware for Original Prusa i3 3D printer by PrusaResearch PROTOCOL_VERSION:1.0 MACHINE_TYPE:Prusa i3 MK3S EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000
Recv: Cap:AUTOREPORT_TEMP:1
Recv: Cap:AUTOREPORT_FANS:1
Recv: Cap:AUTOREPORT_POSITION:1
Recv: Cap:EXTENDED_M20:1
Recv: Cap:PRUSA_MMU2:1
Recv: ok

custom printer with repetier 1.0.4 firmware:

Send: N17 M20 L T63
Recv: ok 17
Recv: Begin file list
Recv: BANANA~1.GCO 113118
Recv: PTFE_4~1.GCO 285511
Recv: 24char~1.gco 408
Recv: autole~1.gco 408
Recv: End file list
Send: N18 M115
31
Recv: ok 18
Recv: FIRMWARE_NAME:Repetier_1.0.4 COMPILED:Aug 2 2022 FIRMWARE_URL:GitHub - repetier/Repetier-Firmware: Firmware for Arduino based RepRap 3D printer. PROTOCOL_VERSION:1.0 MACHINE_TYPE:Core_XY EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
Recv: Cap:PROGRESS:1
Recv: Cap:AUTOREPORT_TEMP:1
Send: N19 M155 S2*91
Recv: Cap:HOST_RESCUE:1
Recv: Cap:EEPROM:1
Recv: Cap:AUTOLEVEL:1
Recv: Cap:Z_PROBE:1
Recv: Cap:SOFTWARE_POWER:0
Recv: Cap:TOGGLE_LIGHTS:0
Recv: Cap:PAUSESTOP:1
Recv: Cap:PREHEAT:1
Recv: Cap:EMERGENCY_PARSER:1
Recv: Printed filament:1824.72m Printing time:30 days 11 hours 41 min
Recv: PrinterMode:FFF
Recv: ok 19

LulzBot TAZ 6 with Universal (Marlin) firmware 2.0.9.0.13:

2022-08-05 08:56:09,152 - Changing monitoring state from "Offline" to "Detecting serial connection"
2022-08-05 08:56:09,207 - Performing autodetection with 2 port/baudrate candidates: /dev/ttyACM0@250000, VIRTUAL@250000
2022-08-05 08:56:09,208 - Trying port /dev/ttyACM0, baudrate 250000
2022-08-05 08:56:09,222 - Connecting to port /dev/ttyACM0, baudrate 250000
2022-08-05 08:56:09,254 - Handshake attempt #1 with timeout 2.0s
2022-08-05 08:56:09,260 - Connected to: Serial<id=0x5ba78390, open=True>(port='/dev/ttyACM0', baudrate=250000, bytesize=8, parity='N', stopbits=1, timeout=2.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
2022-08-05 08:56:09,265 - Send: N0 M110 N0*125
2022-08-05 08:56:10,166 - Recv: start
2022-08-05 08:56:10,249 - Changing monitoring state from "Detecting serial connection" to "Operational"
2022-08-05 08:56:10,482 - Recv: Marlin 2.0.9.0.13
2022-08-05 08:56:10,493 - Send: N0 M110 N0*125
2022-08-05 08:56:10,515 - Recv: 
2022-08-05 08:56:10,522 - Recv: echo: Last Updated: 2021-06-15 | Author: Lulzbot
2022-08-05 08:56:10,529 - Recv: echo:Compiled: Aug  4 2022
2022-08-05 08:56:10,540 - Recv: echo: Free Memory: 2269  PlannerBufferBytes: 1456
2022-08-05 08:56:13,143 - Recv: echo:DIGIPOTS Loading
2022-08-05 08:56:13,153 - Recv: echo:DIGIPOTS Loaded
2022-08-05 08:56:13,163 - Recv: echo:DIGIPOTS Loading
2022-08-05 08:56:13,169 - Recv: echo:DIGIPOTS Loaded
2022-08-05 08:56:13,175 - Recv: echo:V83 stored settings retrieved (620 bytes; crc 34230)
2022-08-05 08:56:15,663 - Recv: echo:SD card ok
2022-08-05 08:56:17,666 - Recv: echo:busy: processing
2022-08-05 08:56:17,670 - Printer seems to support the busy protocol, will adjust timeouts and set busy interval accordingly
2022-08-05 08:56:19,665 - Recv: echo:busy: processing
2022-08-05 08:56:20,799 - Recv: X:-18.10 Y:317.50 Z:15.00 E:0.00 Count X:-2010 Y:31050 Z:24000
2022-08-05 08:56:20,819 - Recv: ok N0 P13 B3
2022-08-05 08:56:20,828 - Recv: ok N0 P13 B3
2022-08-05 08:56:20,830 - Send: N1 M115*39
2022-08-05 08:56:20,847 - Send: N2 M21*18
2022-08-05 08:56:20,874 - Recv: FIRMWARE_NAME:Marlin  FIRMWARE_VERSION:2.0.9.0.13 EXTRUDER_TYPE:Universal (Aug  4 2022 12:30:45) SOURCE_CODE_URL:https://gitlab.com/lulzbot3d/marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:LulzBot TAZ 6 EXTRUDER_COUNT:1 UUID:845f003c-aebd-4e53-a6b9-7d0984fde609
2022-08-05 08:56:20,926 - Recv: Cap:SERIAL_XON_XOFF:0
2022-08-05 08:56:20,934 - Recv: Cap:BINARY_FILE_TRANSFER:0
2022-08-05 08:56:20,955 - Recv: Cap:EEPROM:1
2022-08-05 08:56:20,961 - Recv: Cap:VOLUMETRIC:1
2022-08-05 08:56:20,968 - Recv: Cap:AUTOREPORT_POS:0
2022-08-05 08:56:20,975 - Recv: Cap:AUTOREPORT_TEMP:1
2022-08-05 08:56:20,988 - Recv: Cap:PROGRESS:0
2022-08-05 08:56:20,995 - Recv: Cap:PRINT_JOB:1
2022-08-05 08:56:21,000 - Recv: Cap:AUTOLEVEL:1
2022-08-05 08:56:21,005 - Recv: Cap:RUNOUT:1
2022-08-05 08:56:21,010 - Recv: Cap:Z_PROBE:1
2022-08-05 08:56:21,014 - Recv: Cap:LEVELING_DATA:1
2022-08-05 08:56:21,019 - Recv: Cap:BUILD_PERCENT:1
2022-08-05 08:56:21,024 - Recv: Cap:SOFTWARE_POWER:0
2022-08-05 08:56:21,028 - Recv: Cap:TOGGLE_LIGHTS:0
2022-08-05 08:56:21,033 - Recv: Cap:CASE_LIGHT_BRIGHTNESS:0
2022-08-05 08:56:21,038 - Recv: Cap:EMERGENCY_PARSER:1
2022-08-05 08:56:21,044 - Recv: Cap:HOST_ACTION_COMMANDS:1
2022-08-05 08:56:21,055 - Recv: Cap:PROMPT_SUPPORT:0
2022-08-05 08:56:21,066 - Recv: Cap:SDCARD:1
2022-08-05 08:56:21,070 - Recv: Cap:REPEAT:0
2022-08-05 08:56:21,075 - Recv: Cap:SD_WRITE:1
2022-08-05 08:56:21,080 - Recv: Cap:AUTOREPORT_SD_STATUS:1
2022-08-05 08:56:21,088 - Recv: Cap:LONG_FILENAME:1
2022-08-05 08:56:21,107 - Recv: Cap:THERMAL_PROTECTION:1
2022-08-05 08:56:21,111 - Recv: Cap:MOTION_MODES:0
2022-08-05 08:56:21,126 - Recv: Cap:ARCS:1
2022-08-05 08:56:21,130 - Recv: Cap:BABYSTEPPING:1
2022-08-05 08:56:21,136 - Recv: Cap:CHAMBER_TEMPERATURE:0
2022-08-05 08:56:21,140 - Recv: Cap:COOLER_TEMPERATURE:0
2022-08-05 08:56:21,151 - Recv: Cap:MEATPACK:0
2022-08-05 08:56:21,155 - Recv: ok N1 P13 B3
2022-08-05 08:56:21,159 - Recv: echo:SD card ok
2022-08-05 08:56:21,163 - Send: M115
2022-08-05 08:56:21,167 - Recv: ok N2 P13 B3
2022-08-05 08:56:21,178 - Send: M105
2022-08-05 08:56:21,186 - Recv: FIRMWARE_NAME:Marlin  FIRMWARE_VERSION:2.0.9.0.13 EXTRUDER_TYPE:Universal (Aug  4 2022 12:30:45) SOURCE_CODE_URL:https://gitlab.com/lulzbot3d/marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:LulzBot TAZ 6 EXTRUDER_COUNT:1 UUID:845f003c-aebd-4e53-a6b9-7d0984fde609
2022-08-05 08:56:21,196 - Recv: Cap:SERIAL_XON_XOFF:0
2022-08-05 08:56:21,202 - Recv: Cap:BINARY_FILE_TRANSFER:0
2022-08-05 08:56:21,215 - Recv: Cap:EEPROM:1
2022-08-05 08:56:21,220 - Recv: Cap:VOLUMETRIC:1
2022-08-05 08:56:21,225 - Recv: Cap:AUTOREPORT_POS:0
2022-08-05 08:56:21,229 - Recv: Cap:AUTOREPORT_TEMP:1
2022-08-05 08:56:21,238 - Recv: Cap:PROGRESS:0
2022-08-05 08:56:21,242 - Recv: Cap:PRINT_JOB:1
2022-08-05 08:56:21,246 - Recv: Cap:AUTOLEVEL:1
2022-08-05 08:56:21,250 - Recv: Cap:RUNOUT:1
2022-08-05 08:56:21,254 - Recv: Cap:Z_PROBE:1
2022-08-05 08:56:21,258 - Recv: Cap:LEVELING_DATA:1
2022-08-05 08:56:21,262 - Recv: Cap:BUILD_PERCENT:1
2022-08-05 08:56:21,266 - Recv: Cap:SOFTWARE_POWER:0
2022-08-05 08:56:21,270 - Recv: Cap:TOGGLE_LIGHTS:0
2022-08-05 08:56:21,274 - Recv: Cap:CASE_LIGHT_BRIGHTNESS:0
2022-08-05 08:56:21,277 - Recv: Cap:EMERGENCY_PARSER:1
2022-08-05 08:56:21,282 - Recv: Cap:HOST_ACTION_COMMANDS:1
2022-08-05 08:56:21,287 - Recv: Cap:PROMPT_SUPPORT:0
2022-08-05 08:56:21,292 - Recv: Cap:SDCARD:1
2022-08-05 08:56:21,297 - Recv: Cap:REPEAT:0
2022-08-05 08:56:21,301 - Recv: Cap:SD_WRITE:1
2022-08-05 08:56:21,307 - Recv: Cap:AUTOREPORT_SD_STATUS:1
2022-08-05 08:56:21,316 - Recv: Cap:LONG_FILENAME:1
2022-08-05 08:56:21,320 - Recv: Cap:THERMAL_PROTECTION:1
2022-08-05 08:56:21,332 - Recv: Cap:MOTION_MODES:0
2022-08-05 08:56:21,336 - Recv: Cap:ARCS:1
2022-08-05 08:56:21,341 - Recv: Cap:BABYSTEPPING:1
2022-08-05 08:56:21,345 - Recv: Cap:CHAMBER_TEMPERATURE:0
2022-08-05 08:56:21,350 - Recv: Cap:COOLER_TEMPERATURE:0
2022-08-05 08:56:21,354 - Recv: Cap:MEATPACK:0
2022-08-05 08:56:21,359 - Recv: ok P15 B3
2022-08-05 08:56:21,363 - Recv: ok T:23.62 /0.00 B:24.50 /0.00 @:0 B@:0
2022-08-05 08:56:21,364 - Send: M20
2022-08-05 08:56:21,374 - Send: M113 S2
2022-08-05 08:56:21,375 - Recv: Begin file list
2022-08-05 08:56:21,385 - Recv: TEMPTEST.GCO 95
2022-08-05 08:56:21,390 - Recv: CURATA~1.GCO 2178
2022-08-05 08:56:21,394 - Recv: End file list
2022-08-05 08:56:21,398 - Recv: ok P15 B3
2022-08-05 08:56:46,449 - Recv:  T:23.81 /0.00 B:24.36 /0.00 @:0 B@:0
2022-08-05 08:56:47,461 - Recv: Not SD printing
2022-08-05 08:56:48,662 - Send: M20 L T
2022-08-05 08:56:48,678 - Recv: Begin file list
2022-08-05 08:56:48,684 - Recv: TEMPTEST.GCO 95
2022-08-05 08:56:48,688 - Recv: CURATA~1.GCO 2178
2022-08-05 08:56:48,692 - Recv: End file list
2022-08-05 08:56:48,697 - Recv: ok P15 B3

I compiled this firmware myself from the LulzBot Git sources with no changes. It looks like the M20 L T output is the same as the M20 output.

'Vanilla' Marlin doesn't support the T parameter to M20, either. It will just respond to the L as normal, ignoring the T.

Ignoring is ok. Error on unrecognized option would be much worse (from adding support to octoprint point of view).

This is Klipper:

Send: M20 L T
Recv: Begin file list
Recv: 20_20_20_test_cube_1_0.2mm_PLA_3mm.gcode 904271
Recv: CHEPCalibrationCube_0.2mm_PLA_3mm.gcode 1284300
Recv: moai-small-no_overhang_0.2mm_PLA_3mm.gcode 29696595
Recv: End file list
Recv: ok
[...]
Send: M115
Recv: ok FIRMWARE_VERSION:v0.10.0-494-gd3c4ba48-dirty FIRMWARE_NAME:Klipper
[...]