[SOLVED] Need help: Not able to see files on SD Card

What is the problem?

Unable to see any files on the SD card in the OctoPrint UI

What did you already try to solve it?

  • Clicking initialize SD Card -- the ajax call to the API returns 204 (as it's supposed to?) but no UI updates
  • Restarting OctoPrint, disabling, re-enabling SD card feature, etc...
  • Clicking 'Initialize TF Card' on the 3d printer itself

There are, for sure, .gcode files on the SD card, but they only show up on the printer's built in screen and when I run M20 from the terminal in OctoPrint (in the shortened 8.3 format)

Logs (octoprint.log, serial.log or output on terminal tab at a minimum, browser error console if UI issue ... no logs, no support!)

Octoprint server log
(I started a print from the PI's memory after trying to restart, reinitialize, and re-list again)

$ octoprint serve -4 --port 8080
2020-02-02 16:53:45,585 - octoprint.startup - INFO - ******************************************************************************
2020-02-02 16:53:45,587 - octoprint.startup - INFO - Starting OctoPrint 1.3.12
2020-02-02 16:53:45,588 - octoprint.startup - INFO - ******************************************************************************
2020-02-02 16:53:46,126 - octoprint.util.connectivity_checker - INFO - Connectivity changed from offline to online
2020-02-02 16:53:46,737 - octoprint.startup - INFO - Blacklist processing done, adding 1 blacklisted plugin versions: roomtemp (any)
2020-02-02 16:53:46,778 - octoprint.plugin.core - INFO - Loading plugins from /usr/local/lib/python2.7/dist-packages/octoprint/plugins, /home/pi/.octoprint/plugins and installed plugin packages...
2020-02-02 16:53:48,026 - octoprint.plugins.octoprint.plugins.discovery - INFO - pybonjour is not installed, Zeroconf Discovery won't be available
2020-02-02 16:53:48,040 - octoprint.plugin.core - INFO - Found 15 plugin(s) providing 15 mixin implementations, 23 hook handlers
2020-02-02 16:53:48,233 - octoprint.server.heartbeat - INFO - Starting server heartbeat, 900.0s interval
2020-02-02 16:53:48,257 - octoprint.server - INFO - Intermediary server started
2020-02-02 16:53:48,257 - octoprint.plugin.core - INFO - Loading plugins from /usr/local/lib/python2.7/dist-packages/octoprint/plugins, /home/pi/.octoprint/plugins and installed plugin packages...
2020-02-02 16:53:48,360 - octoprint.plugin.core - INFO - Found 15 plugin(s) providing 15 mixin implementations, 23 hook handlers
2020-02-02 16:53:48,394 - octoprint.filemanager.storage - INFO - Initializing the file metadata for /home/pi/.octoprint/uploads...
2020-02-02 16:53:48,396 - octoprint.filemanager.storage - INFO - ... file metadata for /home/pi/.octoprint/uploads initialized successfully.
2020-02-02 16:53:48,441 - octoprint.plugins.softwareupdate - INFO - Loaded version cache from disk
192.168.1.27 - - [02/Feb/2020 16:53:50] "GET /sockjs/info?t=1580662430018 HTTP/1.1" 404 -
2020-02-02 16:53:52,023 - octoprint.util.pip - INFO - Using "/usr/bin/python -m pip" as command to invoke pip
192.168.1.27 - - [02/Feb/2020 16:53:52] "GET /sockjs/info?t=1580662432740 HTTP/1.1" 404 -
192.168.1.27 - - [02/Feb/2020 16:53:54] "GET /sockjs/info?t=1580662434424 HTTP/1.1" 404 -
192.168.1.27 - - [02/Feb/2020 16:53:54] "GET /sockjs/info?t=1580662434424 HTTP/1.1" 404 -
192.168.1.27 - - [02/Feb/2020 16:53:54] "GET /sockjs/info?t=1580662434424 HTTP/1.1" 404 -
192.168.1.27 - - [02/Feb/2020 16:53:54] "GET /sockjs/info?t=1580662434888 HTTP/1.1" 404 -
2020-02-02 16:53:55,544 - octoprint.util.pip - INFO - Version of pip is 18.1
2020-02-02 16:53:55,546 - octoprint.util.pip - INFO - pip installs to /usr/lib/python2.7/dist-packages (writable -> no), --user flag needed -> yes, virtual env -> no
2020-02-02 16:53:55,547 - octoprint.util.pip - INFO - ==> pip ok -> yes
2020-02-02 16:53:55,552 - octoprint.plugin.core - INFO - Initialized 15 plugin implementation(s)
2020-02-02 16:53:55,562 - octoprint.plugin.core - INFO - 15 plugin(s) registered with the system:
|  Action Command Prompt Support (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/action_command_prompt
|  Announcement Plugin (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/announcements
|  Anonymous Usage Tracking (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/tracking
|  Application Keys Plugin (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/appkeys
|  Backup & Restore (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/backup
|  Core Wizard (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/corewizard
|  Discovery (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/discovery
|  Error Tracking (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/errortracking
|  Force Login (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/forcelogin
|  Logging (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/logging
|  Pi Support Plugin (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/pi_support
|  Plugin Manager (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/pluginmanager
|  Printer Safety Check (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/printer_safety_check
|  Software Update (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/softwareupdate
|  Virtual Printer (bundled) = /usr/local/lib/python2.7/dist-packages/octoprint/plugins/virtual_printer
2020-02-02 16:53:55,578 - octoprint.environment - INFO - Detected environment is Python 2.7.16 under Linux (linux2). Details:
|  hardware:
|    cores: 4
|    freq: 1200.0
|    ram: 971059200
|  os:
|    id: linux
|    platform: linux2
|  plugins:
|    pi_support:
|      model: Raspberry Pi 3 Model B Rev 1.2
|  python:
|    pip: '18.1'
|    version: 2.7.16
2020-02-02 16:53:55,589 - octoprint.server - INFO - Reset webasset folder /home/pi/.octoprint/generated/webassets...
2020-02-02 16:53:55,607 - octoprint.server - INFO - Reset webasset folder /home/pi/.octoprint/generated/.webassets-cache...
2020-02-02 16:53:56,492 - octoprint.server - INFO - Shutting down intermediary server...
2020-02-02 16:53:56,931 - octoprint.server - INFO - Intermediary server shut down
2020-02-02 16:53:56,935 - octoprint.events - INFO - Processing startup event, this is our first event
2020-02-02 16:53:56,936 - octoprint.events - INFO - Adding 1 events to queue that were held back before startup event
2020-02-02 16:53:56,952 - octoprint.filemanager - INFO - Adding backlog items from all storage types to analysis queue...
2020-02-02 16:53:57,047 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid
2020-02-02 16:53:57,112 - octoprint.filemanager - INFO - Added 0 items from storage type "local" to analysis queue
2020-02-02 16:53:57,533 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid
2020-02-02 16:53:57,835 - octoprint.server.util.watchdog - INFO - Running initial scan on watched folder...
2020-02-02 16:53:57,846 - octoprint.server.util.watchdog - INFO - ... initial scan done.
2020-02-02 16:53:57,860 - octoprint.util.comm - INFO - Changing monitoring state from "Offline" to "Opening serial port"
2020-02-02 16:53:57,864 - octoprint.plugins.discovery - INFO - Registered OctoPrint instance on raspberrypi for SSDP
2020-02-02 16:53:57,870 - octoprint.util.comm - INFO - Changing monitoring state from "Opening serial port" to "Detecting baudrate"
2020-02-02 16:53:57,888 - octoprint.server - INFO - Listening on http://0.0.0.0:8080
2020-02-02 16:53:58,098 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.27
2020-02-02 16:53:58,141 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid
2020-02-02 16:53:58,359 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.27
2020-02-02 16:53:58,810 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid
2020-02-02 16:53:58,885 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2020-02-02 16:53:58,891 - octoprint.util.comm - INFO - Changing monitoring state from "Detecting baudrate" to "Operational"
2020-02-02 16:53:58,900 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2020-02-02 16:53:59,046 - octoprint.server.util.sockjs - INFO - User enigma logged in on the socket from client 192.168.1.27
2020-02-02 16:53:59,915 - octoprint.server.util.sockjs - INFO - Client connection closed: 192.168.1.27
2020-02-02 16:53:59,951 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.27
2020-02-02 16:54:00,017 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.27
2020-02-02 16:54:00,060 - octoprint.server.util.sockjs - INFO - User enigma logged in on the socket from client 192.168.1.27
2020-02-02 16:54:00,448 - octoprint.server.util.sockjs - INFO - Client connection closed: 192.168.1.27
2020-02-02 16:54:00,825 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.27
2020-02-02 16:54:01,541 - octoprint.util.comm - INFO - Got a resend request from the printer: requested line = 1, current line = 3
| Last lines in terminal:
| Recv: echo: External Reset
| Recv: Marlin 1.1.6.2
| Send: N0 M110 N0*125
| Recv:
| Recv: echo: Last Updated: 2019-07-26 | Author: Ender-3
| Recv: echo:Compiled: Aug  4 2019
| Recv: echo: Free Memory: 10078  PlannerBufferBytes: 1232
| Recv: echo:TF card ok
| Recv: Init power off infomation.
| Recv: size:
| Recv: 585
| Recv: init valid:
| Recv: 0
| Recv: 0
| Recv: ok
| Send: N1 M115*39
| Recv: ok
| Send: N2 M21*18
| Recv: Error:Line Number is not Last Line Number+1, Last Line: 0
| Recv: Resend: 1
2020-02-02 16:54:01,613 - octoprint.util.comm - INFO - Printer reports firmware name "Marlin 1.1.6.2 (Github)"
2020-02-02 16:54:01,622 - octoprint.util.comm - INFO - Firmware states that it supports temperature autoreporting
2020-02-02 16:54:01,667 - octoprint.util.comm - INFO - Firmware states that it supports temperature autoreporting
2020-02-02 16:54:02,052 - octoprint.util.pip - INFO - Using "/usr/bin/python -m pip" as command to invoke pip
2020-02-02 16:54:02,057 - octoprint.util.pip - INFO - pip installs to /usr/lib/python2.7/dist-packages (writable -> no), --user flag needed -> yes, virtual env -> no
2020-02-02 16:54:02,070 - octoprint.util.pip - INFO - ==> pip ok -> yes
2020-02-02 16:54:02,382 - octoprint.server.preemptive_cache - INFO - Preemptively caching / (ui _default) for {'query_string': 'l10n=en', 'path': '/', 'base_url': 'http://192.168.1.25:8080/'}
2020-02-02 16:54:20,270 - octoprint.server.preemptive_cache - INFO - ... done in 17.89s
2020-02-02 16:54:32,995 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.27
2020-02-02 16:54:33,324 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.27
2020-02-02 16:54:35,025 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.27
2020-02-02 16:54:35,091 - octoprint.server.util.sockjs - INFO - User enigma logged in on the socket from client 192.168.1.27
2020-02-02 16:54:35,108 - octoprint.server.util.sockjs - INFO - Client connection closed: 192.168.1.27
2020-02-02 16:54:35,650 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.27
2020-02-02 16:54:35,977 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.27
2020-02-02 16:54:36,676 - octoprint.server.util.sockjs - INFO - User enigma logged in on the socket from client 192.168.1.27
2020-02-02 16:57:56,734 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.11
2020-02-02 16:58:03,958 - tornado.access - WARNING - 401 POST /api/login (192.168.1.11) 51.96ms
2020-02-02 16:58:17,756 - octoprint.server.api - INFO - Actively logging in user enigma from 192.168.1.11
2020-02-02 16:58:17,815 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.11
2020-02-02 16:58:17,935 - octoprint.server.util.sockjs - INFO - Client connection closed: 192.168.1.11
2020-02-02 16:58:27,715 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.11
2020-02-02 16:58:27,815 - octoprint.server.util.flask - INFO - Passively logging in user enigma from 192.168.1.11
2020-02-02 16:58:28,581 - octoprint.server.util.sockjs - INFO - User enigma logged in on the socket from client 192.168.1.11
2020-02-02 17:00:08,318 - octoprint.server.util.sockjs - INFO - Client connection closed: 192.168.1.11
2020-02-02 17:08:48,235 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2020-02-02 17:14:18,826 - octoprint.filemanager.analysis - INFO - Starting analysis of local:foot.gcode
2020-02-02 17:14:18,829 - octoprint.filemanager.analysis - INFO - Invoking analysis command: /usr/bin/python -m octoprint analysis gcode --speed-x=6000 --speed-y=6000 --max-t=10 --throttle=0.0 --throttle-lines=100 /home/pi/.octoprint/uploads/foot.gcode
2020-02-02 17:14:25,035 - octoprint.filemanager.analysis - INFO - Analysis of entry local:foot.gcode finished, needed 6.21s
2020-02-02 17:14:29,260 - octoprint.printer.standard.job - INFO - Print job selected - origin: local, path: foot.gcode, owner: enigma, user: enigma
2020-02-02 17:14:29,284 - octoprint.util.comm - INFO - Changing monitoring state from "Operational" to "Starting"
2020-02-02 17:14:29,294 - octoprint.printer.standard.job - INFO - Print job started - origin: local, path: foot.gcode, owner: enigma, user: enigma
2020-02-02 17:14:29,314 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2020-02-02 17:14:29,328 - octoprint.util.comm - INFO - Changing monitoring state from "Starting" to "Printing"
2020-02-02 17:14:31,381 - octoprint.util.comm - INFO - Printer seems to support the busy protocol, will adjust timeouts and set busy interval accordingly
2020-02-02 17:18:00,232 - octoprint.util.comm - INFO - Telling the printer to set the busy interval to our "communicationBusy" timeout - 1s = 2s
2020-02-02 17:23:48,238 - octoprint.server.heartbeat - INFO - Server heartbeat <3

Terminal M20 and output

Send: M20
Recv: Begin file list
Recv: CE3_FO~1.GCO 1071736
Recv: /TOOLBOX/CE3_TO~1.GCO 857972
Recv: /OBJECTS/CE3_CU~1.GCO 259267
Recv: /WEAPON~1/CE3_SW~1.GCO 5815198
Recv: /WEAPON~1/CE3_DA~1.GCO 4302980
Recv: /WEAPON~1/CE3_SC~1.GCO 3997598
Recv: /WEAPON~1/CE3_AR~1.GCO 2899941
Recv: /WEAPON~1/CE3_MA~1.GCO 2828093
Recv: /WEAPON~1/CE3_WA~1.GCO 4900609
Recv: /WEAPON~1/CE3_SA~1.GCO 4041792
Recv: /WEAPON~1/CE3_WI~1.GCO 2410830
Recv: /49B2F~1.MOD/MODELF~1/BOAT/BOAT-4~1.GCO 5322089
Recv: /49B2F~1.MOD/MODELF~1/BUTTER~1/HUDIE-~1.GCO 3667551
Recv: /49B2F~1.MOD/MODELF~1/CUBE/CR-X-2~1.GCO 2974239
Recv: /49B2F~1.MOD/MODELF~1/VASE/VASE~1.GCO 16754530
Recv: /49B2F~1.MOD/TEST/TEST-D~1.GCO 16902701
Recv: /49B2F~1.MOD/TEST/TEST-D~2.GCO 2974239
Recv: /49B2F~1.MOD/TEST/TEST_C~1.GCO 4824653
Recv: /49B2F~1.MOD/TEST/TEST_N~1.GCO 8861284
Recv: /TRASHE~1/501/CE3_CU~1.GCO 259267
Recv: /TRASHE~1/501/CE3_WA~1.GCO 2844275
Recv: /TRASHE~1/501/CE3_SW~1.GCO 2953059
Recv: /TRASHE~1/501/CE3_SW~2.GCO 919583
Recv: /TRASHE~1/501/CE3_WI~1.GCO 2033754
Recv: /TRASHE~1/501/CE3_MX~1.GCO 3689394
Recv: /TRASHE~1/501/CE3_FO~1.GCO 1074182
Recv: /LOGITECH/CE3_MX~1.GCO 3931628
Recv: /LOGITECH/CE3_MX~2.GCO 1666247
Recv: /CALIBR~1/ENDER3~1.GCO 167614
Recv: /CALIBR~1/ENDER3~2.GCO 166957
Recv: /CALIBR~1/TEST-D~1.GCO 16902701
Recv: /CALIBR~1/CE3_SA~1.GCO 4041792
Recv: /NSWITCH/CE3_NI~1.GCO 8274205
Recv: /NSWITCH/CE3_SW~1.GCO 2198649
Recv: End file list

Obviously if I won't be able to see the full file name in the UI I'll need to start giving my GCODE files shorter names LOL

Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible)

OctoPrint: Latest stable (1.3.12)
OS: Raspbian vanilla latest stable
Hardware: Raspberry Pi 3 Model B Rev 1.2
Browser: Firefox, on Mac OS


Side note: It feels like this is largely something silly or obvious that I've missed. Hopefully that's the case.

The problem is that your printer vendor decided to fiddle with the firmware and change some crucial strings. Where it says "TF card initialized" it should actually say "SD card initialized". Good news: @b-morgan wrote a plugin to work around the broken firmware:

1 Like

Oof, well at least I'm not the only one. Thanks!! It was simple enough to install & restart octoprint to get it running.

Great you made it! Could you please : PSA: Please mark the solutions to your topics as such