Skip to content

Add Orca Slicer SD upload and print compatibility - #1149

Closed
polaco1782 wants to merge 1 commit into
luc-github:3.1from
polaco1782:3.1
Closed

polaco1782 wants to merge 1 commit into
luc-github:3.1from
polaco1782:3.1

Conversation

@polaco1782

Copy link
Copy Markdown

Adds support for OrcaSlicer’s ESP3D upload and print workflow. Orca can upload G-code through POST /upload_serial, test the connection with M105, then select and start the uploaded file with M23 and M24. ESP3D stores the file on its SD card and streams it to the printer when printing starts. The change validates filenames and upload state, and is enabled when SD and G-code hosting features are configured.

@luc-github

luc-github commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Sorry I do not understand this PR :

Why do you need to create a new handle to upload to SD ? -A SD Card upload handle already exists.

Also Why ESP3D Should handle M23/M24 commands? and like this ? This part is already handled by [ESP700] command.

Finally the GCODE streaming host in ESP3D is not yet functionnal, and neither reliable for full print job, it is slow and currently it can only manage macros that do not include temperatures control for streaming #243

@polaco1782

Copy link
Copy Markdown
Author

I should have explained the OrcaSlicer compatibility problem more clearly.

OrcaSlicer’s ESP3D host implementation hardcodes three parts of this flow:

  • Its connection test sends GET /command?plain=M105. ESP3D’s existing /command handler expects cmd=, so Orca’s test fails.
  • Its upload sends POST /upload_serial. ESP3D already uploads SD files through /sdfiles, but Orca does not call that endpoint.
  • Only when Upload & Print is selected, Orca sends M23 followed by M24.
    The new upload route was intended as an adapter for Orca’s fixed URL; it calls the existing SD upload code. Adding a separate handler around that code is more than the compatibility gap requires.

I intercepted M23 and M24 because the PR stores the upload on ESP3D’s SD card, while those commands normally select and start a file on the printer firmware’s SD card. Forwarding them to Marlin would therefore not start the uploaded file.

I wasn't aware of [ESP700], streaming issue #243 says is not ready for complete print jobs.

@luc-github

luc-github commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Yes dropping PR without context always bring questions
I did some research on this implementation and it it is for the ESP3D 2.1 not for the 3.0 and so lack of several 3.0 feature like the MKS sd transfert protocol, the shared SD, the ESP32 printers boards

Documentation is here: https://esp3d.io/esp3d/version-3x/documentation/

I think it would be better to have a new version in orcaslicer that cover all features (2.x/3.x) instead of patching ESP3D V3 to mimic 2.1 - I will work on it next week , I use orca but never compiled from sources- I keep PR as reminder - and will update if you want to test - I will not prevent the streaming but be aware it may failed at this moment, on esp8266 it is pretty sure (99.99%)

@polaco1782 polaco1782 closed this Oct 26, 2026
@luc-github

Copy link
Copy Markdown
Owner

I finally was able to build a version for windows with new code , setup and compilation process is pretty long ...- I will do some tests this week end as I need to setup some system tests - my bench is currently busy with my 2 cnc upgrade and I am using my 3d printers for printing parts for them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants