Unfortunately no, the printer screen is independent from Octoprint, but if you look at Octoprint’s printer notification window, you will see a log such as “Bed Heating”, “Bed Cooling”, “Printing”, “Media Removed”, etc…
So I had some free time today, so I decided to check out the Linear/Pressure advance that was backported by queeup (https://github.com/queeup-Forks/Ender-3V3-SE)
I merged my changes along with TomasekJ’s additions and compiled a new firmware.
I’m going to be testing out the pressure advance features and see how it works. So far I ran a line calibration test only, and it looks promising!
Hi @TechieZebra
Thank you for your responses. I do greatly appreciate, along with other no doubt on what you are doing.
I did notice the extra info on the Octoprint screen.
Sort of new at this printing but am loving it. Can I respectfully ask is it easy to setup Linear/Pressure advance on a printer.
That was my experience as well.
TBH, while it would be nice to have the display reflect the job, I mainly initiate prints & go off Octoprint anyway …
When I get time, my next goal is to roll @TechieZebra & @TomasekJ’s changes into the latest Marlin ( 2.1.2.4
or 2.0.9.7
) and see if it works with the latest changes and feature updates.
BTW: Been offline for a while preparing for my daughter’s wedding in November … freaking out with my geek out may have to wait until after then!
– Mikey!
Keep us in the loop how you get on.
I wish I could contribute more, I am a pc tech but man have I struggled to try and compile my own firmware even when I had the old E3V2. Sadly I am getting a bit ong in the tooth to get my head around it all.
I hope all goes well with the wedding and you enjoy yourself at this special event.
Hats off to both of you @Mikey_Mike_Mik and @TechieZebra !!
8 months passed and you did an awesome work, I’ll look forward for the next release of your firmware @TechieZebra including the linear advance…
This thread is inspiring me to try to understand and edit a “fix” for the M600 command not raising enough the Z axis, instead of that I use the Macro in octoprint with the M25 in the slicer, but i want to see colors in my slicer
Anyway thanks a lot for both of you for the efforts.
Someone added a 7x7 grid:
https://www.reddit.com/r/Ender3V3SE/s/6njBQTAIpW
This is growing fast with many branches.
I’ve started to look at the latest Marlin firmware, and there seems to be LOTS of differences, this isn’t going to be an easy task from the looks of it.
Anyways, I hope you and your family enjoy the upcoming wedding!
I’ve been testing out the Linear/Pressure advance from queeup and It seems to be working. Here are my calibration prints using Creality PLA:
It subtle the changes, but there still are differences, which should help in getting better prints,
In my test prints, I’ve also turned on ADVANCED_PAUSE_FEATURE in my firmware to allow the usage of Simple Filament Change button from Octoprint.
I’ll try to update my github repository with all current changes I’ve made and using as soon as I can.
Cool! Will have to check this out also
So I cloned and merged all of your versions guys:
aschmitt1909 repo wich contains the Linear Advance and 7x7 grid
rtorchia repo(I guess yours) with the Hosts commands.
But 7x7 grid for me was a litte insane (too much xD), so I edited it to be 5x5 and I’m happy with the result although the GUI is a little bit messed.
Now, may I ask you if for the pressure advance test are you using the ones that came on the slicer or one custom to give it a try?
On a side note I couldn’t compile it on Linux (Linux fedora 6.10.12-200.fc40.x86_64), but in Windows no issues at all.
I use OrcaSlicer, and used the pressure advance calibration tests it provides. Very convenient.
I use Windows/VSCode to compile Marlin.
BTW I just updated my repository with the code from queeup for pressure advance.
Manage to compile on Linux, and also added the feature that I wanted from months ago: Raising the Z axis to a decent height so changing the filament its easier.
It worked good, and since you guys enable the Hosts commands now my Octoprint shows commands to resume, purge more or just continue.
If you want to add it to your firmware and give it a try modify this lines in file Marlin/src/gcode/feature/pause/M600.cpp at line 115-116:
#define Custom_NOZZLE_PARK_POINT { (0), (0), 35 }
xyz_pos_t park_point Custom_NOZZLE_PARK_POINT;
Again thx for the effort and the guideline to do it.
@Iroh3d & @TechieZebra: So impressed with your work right now - if I get some time off, I’ll download & compile.
BTW: Compiling on macOS 15 with no issues.
Any tests you want done?
Mikey!
Hi guys!
I had some time this weekend and back to the original topic of the thread, I managed to implement the M117 Gcode to show in the LCD incoming messages from Octoprint Terminal(Here you can check the code or download the binary).
I made a code restriction to not show strings bigger than 30chars and it will return a warning into Octoprint Terminal(or whatever Serial terminal is connected).
Marlin/src/gcode/lcd/M117.cpp
#include "../../inc/MarlinConfig.h"
#if HAS_STATUS_MESSAGE
#include "../gcode.h"
#include "../../lcd/marlinui.h"
#include "../parser.h"
#if ENABLED(DWIN_CREALITY_LCD)
#include "../../lcd/dwin/e3v2/dwin.h"
#endif
/**
* M117: Set LCD Status Message
*/
void GcodeSuite::M117()
{
#if ENABLED(HOST_ACTION_COMMANDS)
if (parser.string_arg && parser.string_arg[0] != '\0')
{
char *my_string = parser.string_arg;
SERIAL_ECHOLN("Got M117 Command from Serial Terminal");
SERIAL_ECHOLNPAIR("String received: ", my_string);
delay(200);
if (strlen(my_string) > 30)
{
SERIAL_ECHOLN("Warning: String too long");
SERIAL_ECHOLN("Not sending to LCD");
}
else
{
TERN_(DWIN_CREALITY_LCD, DWIN_Show_M117(my_string));
}
}
else
{
SERIAL_ECHOLN("Warning: No string provided with M117");
}
#endif
if (parser.string_arg && parser.string_arg[0])
{
ui.set_status(parser.string_arg);
}
else
{
ui.reset_status();
}
}
#endif // HAS_STATUS_MESSAGE
Added a new function in Marlin/src/lcd/dwin/e3v2/dwin.cpp
void DWIN_Show_M117(char* str)
{
Clear_Main_Window();
HMI_flag.Refresh_bottom_flag = true; // Flag not to refresh bottom parameters
DWIN_ICON_Show(HMI_flag.language, LANGUAGE_Info, TITLE_X, TITLE_Y);
DWIN_ICON_Show(HMI_flag.language, LANGUAGE_Back, 42, 26);
DWIN_ICON_Show(ICON, ICON_PrintSize + 1, 115, 72);
DWIN_Draw_String(true,true,font8x16,Color_White,Color_Bg_Black,(DWIN_WIDTH - strlen(str) * MENU_CHR_W) / 2 , 150,F(str));
Draw_Back_First();
//Goto_MainMenu();
DWIN_UpdateLCD();
}
So s you can see there are aready some useful routines that can be used to use the DWIN Serial LCD From creality.
What I would like to see while printing is the “Printing Page” that we see when printing from SD, but looking at Octoprint Terminal Output it doesn’t send the info of it nor the PNG thumbnail. I think is possible to write another addon for Octoprint that send the print details to the printer and from there write another custom command inside the GCODEsuite to render the “Printing page” in the LCD with all the info, thumbnail and controls as it defaults do when printing from SD(I will need to research a lot for this).
Below a video on how the messages are displayed from Octoprint terminal, and using the Plugin “DisplayLayerProgress” when print is started.
Best Regards.
Love this!! Very impressive!
Hi all,
I have a work in progress for the Modified Firmware to Render the Octoprint Job in the LCD and for the plugin needed by Octoprint to send the commands.
Basically I created a new Custom Command ‘O9000’ to send and parse strings with the values of the PrintJob from Octoprint. I’m not sure if this is the best approach but is the way that my head made it work.
So far the updated firmware supports:
- Tune settings.
- Pause(and send Updates to Octoprint UI).
- Stop(from Printer or Octoprint UI).
- Update Values on Z change.
Need to be Fixed:
-
The Layer Count so far super unrealible and I’m thinking on how to get a good source of layer progress.
-
The Progress is based on Time, the time that provides Octoprint-PrintTimeGenius plugin so is necessary to have it, but still is like ±3% the progress offset and get closer to match the OctoGUI progress over the time.
-
Files from other slicers, right now just OrcaSlicer which is the one I use.
-
The Preview of the STL is going to be tricky, we need to push into SRAM of the LCD the image, so I’m looking into it (Probably the size will be limited ±2kb, b64 conversion, push to specific memaddr and then pull it back) to understand that LCD instructions. So for now default Image loaded as stock firmware.
There is a lot of ‘echoing’ from Printer and Octoprint log, not sure if affects print jobs.
It would be nice if someone can test it and report bugs,
Preview:
EDIT 2024-10-23:
Now listen to events I can see some M117 commands that set layer, so takinf from there seems to work better. If someone can share gcode files to test it would be great.
I haven’t looked closely at to code yet, and I want to try out your firmware.
Did you merge changes from my last github update into yours also?
Specifically I’m looking at these additions/changes being incorporated:
- Max nozzle temp from 260°C to 300°C
- Max bed temp from 100°C to 110°C
- Increased Z homing speed
- Increased max speeds and accelerations
- Enabled Host Action Commands (OctoPrint)
- Enabled PARK_HEAD_ON_PAUSE (OctoPrint)
- Enabled FILAMENT_LOAD_UNLOAD_GCODE (Octoprint)
Thanks!
It would be nice if we could focus our effects into one repository, and I vote for yours since you have done the most so far IMHO.
Hi
I tried your solution, but I still have problems. When the sensor detects runout, printing is interrupted, that’s OK, but:
-
How to load the filament again? If I do it on the printer’s LCD panel, it first performs “Auto Home”, which means it hits an already printed part. I don’t see the possibility to do it from octoprint.
-
Octoprint will display the message “Purge More”, “Disable Runout”. There is no “Resume” here.
The 2nd problem could perhaps be fixed with a solution according to Ender 3 V3 SE filament sensor in octoprint - #7 by jneilliii - Get Help - OctoPrint Community Forum but I still don’t see the possibility of re-loading the filament
- I can’t find your panel
How to enable it?
You can’t use the LCD screen if you are doing everything from Octoprint, since the LCD isn’t aware of prints/commands issued from Octoprint. So yeah, it will mess up your prints.
So, you can send, via the Octoprint termnal an M600 command for a filament change.
I’ve used this plugin and works well:
And that top panel is this plugin: