OctoPi not reading SD card or print progress from Ender 3 (SOLVED)

Yes it is an Ender 3 Pro. I just got it Tuesday. I was making sure this script was changing any instance of SD to TF, since that’s what my printer shows.

Actually it does the opposite, it changes TF to SD. OctoPrint is expecting the printer response to be SD card ok but the printer is returning TF card ok. With this plugin script installed, it looks at the printer responses before OctoPrint sees them and "fixes" them so that OctoPrint is happy.

Can we get one post with the full corrected code in it? Unfortunately it only allows one post to be marked as solution.

That's basically post #6, i.e. OctoPi not reading SD card or print progress from printer (SOLVED) where @b-morgan edited the code snippet to contain the code that's confirmed to solve the issue. So go ahead and mark that post as the solution :smiley:

@Scott_Westberg Can you change the title of this thread to include Ender 3 (i.e. identify that this is a printer specific solution)? If not, maybe we can ask @foosel to change it for us.

Took the liberty to quickly change it

1 Like

For me in an Ender 3 the sd card of the printer became visible by activating "Always assume SD card is present- Repetier" in Octroprint Settings / Firmware & Protocol. No other change was necessary. Now I can print from the printer Sd, send files, and view the files previously loaded without problems. Sorry for not sharing the solution when I found it. It was a few days before this post. I hope it works for you.


Hi there, I've had my Ender 3 pro for about 2 weeks now and I configured Octoprint for it last night...I've now run into the same issue. I can;'t seem to find the solution on the plugin repository, could anyone help me in this matter? I'm new to this whole thing and i'm struggling a bit...
Thanks in advance!:grin:

Unmark "Enable automatic firmware detection" and mark "Always assume SD card is present- Repetier" in Octroprint Settings / Firmware & Protocol.


Please re-read this entire thread and then let us know what part of "Solved by b-morgan in post #6" you don't understand.

1 Like

First of all, thanks for your effort and to be kind inenough to find a solution
I read the thread, and I'm confused
Do you have the plugin in the repositories or I have to write the file myself and put it in the plugin folder?
I have the same issue


This is apparently an IQ test for Ender 3 owners and I don't know how the make it any easier for the owners without a large amount of work on my part and I don't own an Ender 3.

Reply #6 is marked as the solution to the problem. The first "grey" area is the code and this must be cut and pasted into a file created by the Ender 3 owner in the ~/.octoprint/plugins directory with the name Convert_TF_SD.py.

I don't know what else to do if these instructions are still too confusing for you.


I am new to octoprint and i am having the same problem that other people are having, with my Ender 3, and i have a few questions. Firstly, where is the ~/.octoprint/plugins directory and how do i get to it. Second, do i use something like Notepad++ to create the .py file? Any help is welcome.
Thanks in advance!

The directory is on the RPi. Since you asked about Notepad++ I'm going to assume you have a Windows host. You will need Notepad++ (or Notepad on an up-to-date Windows 10), Putty, and (optionally) WinSCP. Different tools if you have a MacOS or a Linux host.

You can create the .py file with Notepad++ by cut and pasting the code I posted above or download this .zip file convert_TF_SD.zip (407 Bytes). If you create the file yourself, make sure to set the line endings to Unix (Edit, EOL Conversion). Use WinSCP to transfer the file to the listed directory on the RPi. Use the username "pi" and your password. The default for hidden files should be to show them but if not, https://winscp.net/eng/docs/ui_pref_panels to change it. Navigate to the local directory and the remote directory and upload.

You can also use Putty to make an SSH terminal connection to the RPi using the username "pi" and the password (which should have been changed from the default). You can now "cd .octoprint/plugins" and use "nano Convert_TF_SD.py" to create the file (nano is a very simple text editor with its commands listed at the bottom of the screen).

I guess a third method would be to shutdown the RPi, remove the SD card and insert it in your Windows system, and copy the file you created with Notepad++ to the card. Re-insert the card in the RPi and boot it, login with Putty, and "mv /boot/Convert_TF_SD.py ~/.octoprint/plugins".

Thank you @b-morgan ! I used the SSH method and it worked.

I tried the plugin and it successfully enabled Octoprint to see the files on the SD since the M20 command's result became "SD card ok". But when sending M27 in terminal it returns "TF printing byte/byte". What gives?

The plugin will not change what is received from the serial line (which is what the log shows) but how it is being read and thus interpreted by OctoPrint.

You will still see the broken responses but they should be understood correctly.

Oh, I see. So, this plugin cannot enable Octoprint to know which layer is being printed etc when printing manually from SD?

No. And that is also information that won't be pushed by firmware in general which is why there's always information missing with SD prints compared to streaming.

The plugin fixes the broken responses by the firmware, it doesn't add features, it makes existing features work after the printer vendor decided to break them.

I see.. Thanks again for the explanation. BTW, just wanted to let you know that I really enjoy Octoprint and I admire the work you've done! Again, Kudos!

1 Like