You do, but there are heatsinks glued to the top of the chips and I don’t recommend removing them.
It seems that Creality did some customization of the Marlin code, so you need to find the changes/alterations. I read a post that someone straight out compiled the latest Marlin for the SE and it didn’t work.
So no easy way to tell then.
I’m guessing @TomasekJ downloaded the Creality/Marlin source, made changes in the config & recompiled - combining Creality’s work with his improvements.
I’m thinking if one wants to compile for the latest Marlin, we need to do diff of the config files (comparing TomasekJ+Creality to Marlin 2.1.2.4) , make the changes, compile & test …
Does that sound right?
I’m guessing Creality code contains some way to query the mobo and determine the stepper driver and deploy the appropriate code … yes?
Yup, that’s about right.
Easy in theory, just seems to never work out that way…Murphy always shows up uninvited
There should be, only makes sense. Unless the two chips are identical enough that they didn’t care and any extra bits are never used.
@TechieZebra Murphy is a b@stard.
Hi, Yes when I use TomasekJ 1.0.7 I see that:
Octoprint isn’t complaining that the printer doesn’t support them now.
And it is a bit strange bacause in source code are commands still commented.
from configuration_adv.h:
- Some features add reason codes to extend these commands.
- Host Prompt Support enables Marlin to use the host for user prompts so
- filament runout and other processes can be managed from the host side.
*/
//#define HOST_ACTION_COMMANDS
#if ENABLED(HOST_ACTION_COMMANDS)
//#define HOST_PROMPT_SUPPORT
//#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start
#endif
When I compare it with Creality source code 1.0.6 there are no changes but behavior is different, Did I missed something or does anybody understand it?
You may have looked at the wrong file. Look at the configuration files in the Marlin directory for both repositories. TomasekJ has configuration files in the main directory also, for some odd reason.
You may have looked at the wrong file. Look at the configuration files in the Marlin directory for both repositories. TomasekJ has configuration files in the main directory also, for some odd reason.
I’m looking at the Source code
In Ender-3V3-SE-1.0.7\Marlin\Configuration_adv.h line 3764, the HOST_ACTION_COMMANDS definition is disabled (commented out). But there is no other definition. Which file do you mean? Thank you.
Hi @Tomas.
This page may help:
In particular this diff:
As @TechieZebra indicated there’s a Configuration_adv.h at the ‘root’ level, and one in /Marlin. It’s the second you’ll want to study …
I hope this helps.
I see now. First I tried to download the source code from Release V1.0.7 · TomasekJ/Ender-3V3-SE · GitHub … see below is the download link in the assets section … but this zip is different than directly in the git branch Ender-3V3-SE/Marlin/Configuration_adv.h at main · TomasekJ/Ender-3V3-SE · GitHub. It will be better to download directly from git than to rely on attached ZIP archives. Difference is tag 1.0.7 and ‘main’ Thank you!
Download the release as that’s the prebuilt firmware
If you want to modify and build your own firmware then download main branch
While I have wise heads with experience:
- Ender3v3SE
- Just added Creality runout sensor
- It does not communicate with Octoprint - even with modified Marlin.
Will I need to go back to an SD card (like an animal) to get my huge ($AU30) investment to work, or do I have to drop Marlin (after this good fight!) & go to Klipper?
Will it work if I use Klipper on a spare miniPC (as I has no money or RPi’s available), as it does with Creality’s Sonic Pad?
Thanks in advance!
I’ve been attempting to understand all the Marlin firmware to hopefully, eventually, role my own with the latest.
In regards to the runout sensor and Octoprint, the FILAMENT_RUNOUT_SCRIPT in Configuration.h may need to be changed to “M412 H”, but I’m still looking into it.
For the moment, did you define any scripts in Octoprint for how to pause and resume?
Does sending the M115 command show that the runout sensor is detected? (RUNOUT: 1)
Before doing a print, try to set the runout sensor with the commands:
M412 H1 ; enable host handling of a filament runout
M412 S1 ; enable Filament Runout Detection
Thanks @TechieZebra !
I’ve been time poor (grandson, daughter’s wedding, various medical tests - you know - life!), so have yet to roll my own - just used @TomassekJ’s 1.0.7. ans so far so good.
Will compile tonight with suggested mods and let you know.
If it works will do a fork on github!
Mikey!
I just placed an order for the Creality filament runout sensor for my SE. Once it arrives I can do some tests with it.
I received my filament sensor and installed it on my SE (what an ordeal that was!)
Tested a print from the LCD control and it works! Filament runs out and the print is paused. And starting a print like this also had Octoprint recognizing a printer message on the filament status. But, this isn’t how I usually print, so…
I then tested a print from Octoprint… and it never received any information from the sensor when the filament ran out.
So, using the 1.07 firmware as a base, I compiled my own firmware. I changed the Configuration.h by uncommenting #define FILAMENT_RUNOUT_SENSOR and setting FILAMENT_RUNOUT_SCRIPT to “M412 H”
I also added to Octoprint in the GCODE scripts settings “before print job starts”:
; enable host handling of a filament runout
M412 H1
; enable Filament Runout Detection
M412 S1 ; enable Filament Runout Detection
Updated the firmware on the SE and ran more tests.
Printing form the LCD screen still works with the filament sensor. Good.
Printing from Octoprint sort of works with the filament sensor; it works in reverse; with a filament loaded it states non is present; remove the filament from the sensor and it thinks it is loaded.
Now to figure out why, and how to fix this. Hopefully I’ll have some time this weekend to play with this some more.
Hey @TechieZebra!
I am planning to do similar this weekend, using advice from here :
Hi Mikey. have you set “Host_Action_Cammands” in configuration_adv.h.
This will pass fault and runout sensor info to octoprint.
/**
- Host Action Commands
- Define host streamer action commands in compliance with the standard.
- See G-code - RepRap
- Common commands … poweroff, pause, paused, resume, resumed, cancel
- G29_RETRY_AND_RECOVER … probe_rewipe, probe_failed
- Some features add reason codes to extend these commands.
- Host Prompt Support enables Marlin to use the host for user prompts so
- filament runout and other processes can be managed from the host side.
*/
#define HOST_ACTION_COMMANDS
#if ENABLED(HOST_ACTION_COMMANDS)
#define HOST_PAUSE_M76 // Tell the host to pause in response to M76
#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback
#if ENABLED(HOST_PROMPT_SUPPORT)
//#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications
#endif
//#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start
//#define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down
#endifBill
This may be the secret sauce!
If that works, then roll both sets of changes into the latest Marlin …
Update on using the Creality filament sensor for the SE.
After trial and error of changing the firmware I may have solved the problem of Octoprint detecting the correct state of the sensor. Still need more testing, but so far with filament present it does not complain of none present. I still need to do tests to see what happens with filament running out, and with starting a print from the LCD display.
I modified the Configuration.h file:
/**
* Filament Runout Sensors
* Mechanical or opto endstops are used to check for the presence of filament.
*
* IMPORTANT: Runout will only trigger if Marlin is aware that a print job is running.
* Marlin knows a print job is running when:
* 1. Running a print job from media started with M24.
* 2. The Print Job Timer has been started with M75.
* 3. The heaters were turned on and PRINTJOB_TIMER_AUTOSTART is enabled.
*
* RAMPS-based boards use SERVO3_PIN for the first runout sensor.
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
*/
#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_STATE HIGH // Pin state indicating that filament is NOT present.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
//#define FIL_RUNOUT_PULLDOWN // (V3SE default) Use internal pulldown for filament runout pins.
//#define WATCH_ALL_RUNOUT_SENSORS
and for Configuration_adv.h:
/**
* Host Action Commands
*
* Define host streamer action commands in compliance with the standard.
*
* See https://reprap.org/wiki/G-code#Action_commands
* Common commands ........ poweroff, pause, paused, resume, resumed, cancel
* G29_RETRY_AND_RECOVER .. probe_rewipe, probe_failed
*
* Some features add reason codes to extend these commands.
*
* Host Prompt Support enables Marlin to use the host for user prompts so
* filament runout and other processes can be managed from the host side.
*/
#define HOST_ACTION_COMMANDS
#if ENABLED(HOST_ACTION_COMMANDS)
#define HOST_PROMPT_SUPPORT
//#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start
#endif
Also, for Octoprint settings->Printer->GCODE:
->Before print job starts:
; enable host handling of a filament runout H1, off with H0
M412 H1
; enable Filament Runout Detection S1, disable with S0
M412 S1
If everything works out I’ll have to fork TomasekJ repo and do a pull request.
Then it’s time to tackle an upgrade to the latest Marlin…