Closed Bob-the-Kuhn closed 7 years ago
All i heard here is ' IMPOSSIBLE , not possible , or total silence '
It is not impossible. But it is very very difficult. Also, issues would need to be worked through and figured out. For example. When the printer starts, it assumes the bed is clear. We raise the nozzle a little bit to have clearance and home all 3 axis with no worries of the nozzle hitting a part.
Recovery would require a different strategy. We could raise the nozzle a little bit, and home X & Y. And then maybe move the nozzle to same (X,Y) where it was when the printer crashed. But I think the user would have to manually lower the nozzle to the right height to continue the print because it isn't clear to me how we are going to be able to home Z with a print on the bed.
That does simplify things...
Wow - quite a list.
The short answer is that it's a lot easier to implement most of this if you have control over the hardware & the software. Things get really complicated really fast when trying to implement a feature that has to work with lots of different systems.
A PUSH UP NOTIFICATION ON MY PHONE
Take a look at Repetier Server. It can do this for: Print finished Print started Print paused Print stopped Severe error
You can connect 4 printers on Raspberry Pi. with Repetier Server or octoprint it's a good idea use the ZMAX switch
repetier need a computer always connected Please be serious , i don't want to have a permanent computer near the machine , and imagine i have 3 printers , i need 3 laptops
Used laptops are $50 (including shipping) on eBay. If a laptop is required to make this idea work... That isn't a "Show Stopper". But right now... We don't have something that requires a laptop.
we have chinese MKS BASE , ' smoothieboard/reprap ' imitations , and , you want i use three ' 250 w ' power supply just for ' one notification per days ' Not ecological loll
My knee jerk answer would be "Yes!" The reason is this: Something needs to remember exactly where the printer left off in the GCode file. Probably, the current printers can't do that because there is no non-volatile storage on the printer's controller board that doesn't wear out. We want this new feature to work on existing printers and not force a redesign of the controller boards.
So... Where does this information get stored and saved across power cycles? A laptop might be an easy solution to that problem.
I think i will go on reprap forum and use ' decent ' 32bits boards , with configuration before starting , and ethernet plug. I will ask every day , someone to code a push notification system , or a polling simple application for phone
I'm tired of marlin , all the essentials have been forgotten and today this software is good for the trash
Wow! We start working through the issues it takes to do this 'Must Have' feature... And you say "Marlin should be thrown in the trash."
I guess we are done here.
@studiodyne You have worn out your welcome here. Please enlighten other 3D-Printer organizations with your presence. You can't say our firmware deserves to be in the trash bin and think we will care about your opinion any more.
It is funny when someone with little or no embedded software programing skills says that implementing some feature is easy or obvious feasible.
Roxy brought up just one of many issues to implement such feature - not to mention that ones related to programing or the arduino being running today completely out of resources (RAM, flash, cpu, etc).
Just one more issue: how to prevent the print to pop off of the bed when it cools?
Cheers.
Alex.
Just one more issue: how to prevent the print to pop off of the bed when it cools?
Yes! But this one might be OK in many cases. When I have a print finish, most times I need to put the glass in the freezer to get it to release. If the part has already broken free from the build plate.... It may be a recovery isn't possible.
Yes! But this one might be OK in many cases. When I have a print finish, most times I need to put the glass in the freezer to get it to release.
It is fine for PLA. I rarely print with PLA, just ABS, so not an option.
Understood!!!!
You have to make a firmware , and make progress , you can not stay in the past
You are more than welcome to start coding and submitting push requests to Marlin. I look forward to see your contribution!
Not the best way to win friends and influence people in a good way, certainly. To implement a recovery routine like - "proposed" - the method might hinge around porting just the current layer number and position of of the nozzle to an SD card as Marlin processes it. To recover, the printer would have Z maxed out manually for safety, then Marlin could be set in a virtual printing state, processing the data without actually moving the steppers, from start, to a point just PAST the last point actually printed, then powering up the steppers "backing up" to the last extruded point in actuality - then resuming normal printing from that point onward. Perhaps something like this would work in most cases?
One day the need for the feature an idea for the implementation the needed hardware the ability to program the code the ability to make a pull request will come together. That will be the day you get the feature.
Up to now I see no need for the feature have no idea for a universal implementation haven't the needed hardware
I guess, for the current developers the power net is good enough. Tips: Ether learn programming (and git) or motivate a developer (what you did now was counter-productive)
How to motivate: ask politely make suggestions offer hardware offer money blast some power plants :-)
If i'd have problems with unreliable power i'd connect my printers to an UPS, like i do with my servers.
Z-Max is not an option, because that only works if materials does not change shape on temperatures etc. The price this tool is build and places we run them, this firmware does more than your hardware is capable of.
And when you start having hardware that is capable for more, you probably don't use cheap chips to calculate, as they do rounding...and a lot...
So, contribute features if you need them. Whining as an jackass, does not make yours or other contributors life any different.
So, close this issue and let's call it a day? 💃
To implement a recovery routine like - "proposed" - the method might hinge around porting just the current layer number and position of of the nozzle to an SD card as Marlin processes it.
Two comments. First, with an SD-Memory card, the issue I raised about wearing out non-volatile storage on the controller board might be easy to mitigate. That is a very good idea! We could start with the bulk of the SD-Memory card erased to 0x00's. And just keep writing the current progress information to a new block. And if we ran out of blocks (because there are a lot of GCode lines in a print!!!) we can start writing over previously used blocks because the recovery process would know we want to start from the furthest we have gotten. (We would know to ignore the early progress reports.)
then Marlin could be set in a virtual printing state, processing the data without actually moving the steppers, from start, to a point just PAST the last point actually printed, then powering up the steppers "backing up" to the last extruded point in actuality - then resuming normal printing from that point onward.
This would be a tricky set of code to get right... But it is very 'doable'. This is sort of an extension of the "Dry Run" capability that is already getting fleshed out in Marlin. Besides suppressing stepper motor movement, what about things like servo movement that controls tool changes and such? On one hand you would want to suppress that. But I'm not sure that can be done and still get the machine back to the same 'state' it was in prior to the failure. It might be that is a limitation to what types of machines can 'Recover'. (And servos would just be a good example for the higher level problem. It maybe servo controlled tools are an example of hardware that changes it state based on the sequence of more primitive state information (different angles of deflection in the case of servos.)
I had two cats and a wife watching Basketball as a distraction when I tried to convey my little beanie brain's output last night, so sorry for being about as clear as mud!
I figure the position of the last XYZ actually printed can be stashed in the SD card every time Marlin gets ready to move to the next position - that way if the next point is interrupted when power is lost, you don't have an incomplete extruded point assumed to be finished.
This XYZ is unique for that print job - it shall never come by again. Could Marlin just be told to ignore all the G-Code moves it is reading/receiving when the print job is re-started, UNTIL that point is referenced again?
This would assume that the user CAN actually re-position the nozzle at that XYZ before restarting the print job. If we have an absolute Z max position with an endstop, and know any difference between that and where we call Z0, then we should be able to re-position the nozzle to that last saved XYZ point, right?
Marlin can zip along through the layers in "Virtual" mode until it gets to that XYZ then pull the nozzle up, heat it, and then drop back down and continue.
SD is not fast enough to store and read next steps to keep planner fast. So this will print slowly and SD wear is still issue in long run... also, this affects Serial usage... So even this has problems...
And in the end, saving just the plotter position is not enough. Whole state is needed, to continue reliably. And then you still hit shrinkage and pop out issues. 😏
"you understand that the marlin team must work on this and make a fully functionnal solution , we can not live without this"
I am sorry to disappoint you, but telling the Marlin team we "must" do it is not going to take you far. The team is small, there is a list of issues that came before this one in the queue, and in particular if solving this is going to be as complex as it seems, I doubt anyone is going to stop working on whatever their focus is at the moment to give you priority.
If you want it that hard, maybe get yourself trained in programming and do it yourself instead of coming here demanding the team to do it for you. You might get it done faster than the Marlin team.
After all, that is how Marlin grows and evolves.
On 16 Mar 2017, at 05:19, studiodyne notifications@github.com wrote:
it's not important the autoresume mode , we just need to never restart from zero , it's not a problem if the print take more time , we just want to NEVER restart from zero The new generation of printer is BIG SIZE LOW COST , and 400x400x400 IN 0.2mm , take one week to be printed , you understand that the marlin team must work on this and make a fully functionnal solution , we can not live without this How many suicides marlin will make if makers see their big size print crashed at half time
So i will ask the communauty to make the code , to make this by myself , i have to be a good programmer and this can take 6 months or 12 .... it's the reason i ask the communauty , i need it now LOLLLLLLLLLL
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
@studiodyne Either learn to code, or grow up and learn how to speak to people. Can you tell me of any 2d commercial printer that can do what you have so childishly, insultingly and insolently demanded of this all volunteer team that is Marlin? I do not know of any, and I've been coding off and on for over 40 years. Grow up.
Please don't feed the trolls (especially the megalomaniac sexist varietals)
I can see the use of a powerloss restore function will have some limitations with some materials, but it does sound like and interesting project to implement.
I have been looking for something to contribute to the Marlin project and i might just try to get something working here. (No guaranties:)
To simplify the task to something achiveable I was thinking about setting an UPS or battery backup with a line fault output that can keep the printer fully operational until a shutdown routine has completed as a hardware requirement.
Then my thought of an implementation is:
Resume:
These are my initial thoughts, but might change when I start coding/testing.
@tohara
2 - Zmax sensor , the idea is to make a homing with zmax and zmin before the print , the offset between the 2 sensors will be stored in eeprom or ' start gcode file ' , in a case of resuming , to make homing with an already printed object , you use only the Zmax sensor and you calculate with the stored value
3- Create an integer to increment after each GCODE read of the sd , incrementation take only one cycle of processing and will not slow down the printing
The free pin detect power loss
If ups don't stop , the mode pause stop and the printing continue after deleting the file on the sdcard If ups dye , a manual intervention will be needed
Because of the problem of the print pop off the bed , retart a print can be dangerous , so I hope , the restart must be absolutely in manual mode to make an evaluation . It's not a problem the time of the printing , the only problem is to restart from zero !!! so , the stored file and the zmax homing , will avoir this dramatic situation
I don't have enough skill in coding , to be good it will takes 6 or 12 months , so , i'm only here to help with idea , but not in coding
CREATBOT 'all printers ' have Marlin ' see the LCD ' , and have battery integrated , and the power outage resurection , i have asked them to give me the source file , i have explained that i need the code of the power loss If i have this source , we will quickly create a mod for RC8
Hope it will help you
Steeve
And to be informed in real time , just with 10$ of hardware , use an ESP8266 ' wifi' Firm it , and use a free pin of the board to send the pause state on your phone by email Configure your mail with ' push settings ' and no polling mode
Link 👍 http://www.instructables.com/id/ESP8266-GMail-Sender/
The power gets off suddenly 1, There should be a capacitor to save the power when the power get off suddenly; 2, The capacitor will provide the power to record the line number of the Gcode in SD card when it is printing; 3, When the machine get restarted, choose the same Gcode to resume to print, and it will start to print from the same line number of the Gcode, which was recorded in the sudden of power off.
If you get the power off yourself: the printer will continuing printing until next layer (then the next layer line number of the gcode will be recorded), and get the power off, you can continue printing whenever you want next time with the power on.
I know the way of how it works, but I don't know how to make the code. Can you guys help with this and share the code? Thanks! @Bob-the-Kuhn @tohara
Hi everyone, my team has a good way to solve the problem, we have developed a module call Resumer 3D, it can help you resume interrupted 3D prints from any printed layer automatically. It is very easy to use, and you do not need to edit any G-code, or firmware. Here is the link where you can check this project: https://hackaday.io/project/28672-magical-box-for-resuming-3d-prints-automatically Hope those can help you :) @all
we have developed a module call Resumer 3D,
May I ask what your 'module' is written in? Is it mostly C code (or C++) ??? Because if it is... on the 32-bit platforms we could run it as its own task (with a RTOS under the Marlin firmware) and we could support it with no extra hardware.
This 'module' is written in C code on 32bit MCU. and integrate some hardware components to detect the power off and save power like capacitor
Best Regards Resumer3D Team
An interesting concept. It looks like it watches the host data stream and keeps track of how many lines have been sent to the printer. Then I assume on resume you're supposed to restart the whole print job, and it just filters out all the movement commands —only passing through codes that update temperatures and so on— up until the point where the print was interrupted, and then starts to pass lines through after doing a little M110
trickery, maybe a G28 XY
for good measure…
Is that basically how it works?
It doesn't seem like it would be able to resume SD card printing, since the firmware would need to support that, and it can't see the SD card data stream.
I think that the piece can be detached from the heated bed if the power cut is prolonged and the bed gets cold.
I think that the piece can be detached from the heated bed if the power cut is prolonged and the bed gets cold.
Yes, that is one well-known caveat of power-loss recovery systems. There may only be a limited time when resuming is possible.
Easy fix for this, use UPS ✌🏻
Remo Kallio
From: Scott Lahteine notifications@github.com Sent: Tuesday, May 8, 2018 4:43:56 PM To: MarlinFirmware/Marlin Cc: Remo Kallio; Comment Subject: Re: [MarlinFirmware/Marlin] Marlin with power loss and resume (#6028)
I think that the piece can be detached from the heated bed if the power cut is prolonged and the bed gets cold.
Yes, that is one well-known caveat of power-loss recovery systems. There may only be a limited time when resuming is possible.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MarlinFirmware/Marlin/issues/6028#issuecomment-387426838, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEze7siHiQEsRI4o163OTUy61jAcvNp5ks5twa8sgaJpZM4MdOQ0.
A UPS is expensive for a lot of people, and depending on the length of the job, you will still be stuck in the same place when the UPS battery runs out.
Now days having an long time without power, is rare case. Hickups, variances... yes, more than 30min off grid... rare... And UPS for this costs around 150 bucks. If it runs PC 20min, it runs printer with SD/RPi the same or even longer... so cant say expensive.
Remo Kallio
From: Grogyan notifications@github.com Sent: Tuesday, May 8, 2018 10:06:08 PM To: MarlinFirmware/Marlin Cc: Remo Kallio; Comment Subject: Re: [MarlinFirmware/Marlin] Marlin with power loss and resume (#6028)
A UPS is expensive for a lot of people, and depending on the length of the job, you will still be stuck in the same place when the UPS battery runs out.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MarlinFirmware/Marlin/issues/6028#issuecomment-387525856, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEze7goAenf_cDkYhVkOmI49ReFspEDpks5twfqwgaJpZM4MdOQ0.
Easy fix for this, use UPS
And we welcome any UPS-Marlin integration that comes along. A UPS that provides a digital signal on a low-voltage (5V) line would be ideal.
I had self build car battery based 5v output ups. But, find that commercial UPS that has quality 5 amps transformer, makes this much cleaner installation. And cheapest solutin I had was laptop with large super capacitor and voltage regulator that keeps steady 5v... worked also hours 👍🏻
Remo Kallio
From: Scott Lahteine notifications@github.com Sent: Wednesday, May 9, 2018 7:06:53 AM To: MarlinFirmware/Marlin Cc: Remo Kallio; Comment Subject: Re: [MarlinFirmware/Marlin] Marlin with power loss and resume (#6028)
Easy fix for this, use UPS
And we welcome any UPS-Marlin integration that comes along. A UPS that provides a digital signal on a low-voltage (5V) line would be ideal.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/MarlinFirmware/Marlin/issues/6028#issuecomment-387621228, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEze7k9RcL-7lGhFZ3v96O4N7i7ogNp-ks5twnltgaJpZM4MdOQ0.
@shacal I've had power cuts ranging from 4 hours to 3 days this year on average I have one or two a month like this. The 3 day outage happened at hour 48 of a 52 hour print. Machine had a UPS on made no difference, Constantly running on generators kill's UPS circuitry so they seem to work but then drop as soon as the power cuts.
I'm rather proficient at editing G-code to resume prints. A way to resume prints easily would always be welcome.
if we have an option says resume print we can make it. how? ı will explain... Firstly home all axis (z-axis to maximum) secondly get the hotend to the last location manually and then get inside of the resume section and then choose the g-code (that means last print) while you choose it printer will look the "where is the hotend now?" and the software says it's at (ex.) x-12 y-34 z-12,6 and software try to find x-12 y-34 z-12,6 location in the g-code and when software find, it will continue at this line that's it 😃 👍
And ı have extra 2 ways look at this video -->https://www.youtube.com/watch?v=PVtLCwXjEXE it does not explains good but the idea is awesome
@ardlc-1212 many people, including myself, do not have Z-MAX enstops Homing the Z axis is not even required, as the Z height is already known from when the printer lost power
The firmware can capture the last Z height at the same time it captures it's current position.
However as the power probably will go out during a move, capturing the exact moment in that move is difficult, and may mean changing the planner to accommodate this extra measure.
A counter? That counts every step of the X, Y and Z steppers, or all 3 steppers in a delta (which would need a home to max operation).
@ardlc-1212 — Did you know that Marlin already has this feature? It's based on the Creality3D implementation. It's not perfect and needs some work to reduce memory usage. We're patching it up as time allows.
@thinkyhead i am not speaking prusa's or creality3d's auto resume look at this link: https://www.youtube.com/watch?v=zTU0YttNAFg And @Grogyan why you dont use max endstop it is much more better because at the min endstop head can crash the bed that is a risk and an endstop is under 0.50$ at the aliexpress you can buy it and add it that is not hard we need z auto levelling and we added a probe and now we need resume print and why dont we add a z-max switch
Thanks for the video link. That looks tedious. I’m sure we can do better.
Not sure if related but yesterday I searched for pictures of the Ender3 after I heard that it is using almost if not the same controller board like the CR-10. This is not definitve since I do not have such a board and all the pictures I could find where of rather low quality, But it looks like the Ender3 is using the same V1.1.2 board that can be found in later CR-10 models. And it looks like there is a modification to it that may helps it with its power loss recovery feature.
There is a capacitor soldered to the board where normally the EXT-A2 header can be found. On this header we have the only free pin on that board, 5V and GND. This cap and the additional ms that it allows the controller to run longer may make the difference between successful powerloss-recovery and making a mess.
Or maybe they were just trying to smoothen the 5V on their oddly designed board instead of getting it right with a new board revision.
This cap and the additional ms that it allows the controller to run longer may make the difference between successful powerloss-recovery and making a mess.
Unless it's paired with an actual power-loss detection circuit, there's no point in the capacitor, since the point is to use the residual power to write to SD at the moment of the power cut.
I have no idea how the powerloss recovery function in the Ender3 actual works and seeing that it uses the exact same controller board than the CR-10 I have no idea how that board actually could detect a power loss in the first place.
I have not found a connection from the controller that could be used to detect the 12V dropping. There could be a 5V pullup derived from the 12V somewhere but I find that unlikely. Well, it could connect the 12V thru a voltage divider to that one free pin but it does not look like they did that.
I merely point out that this capacitor should allow the controller to run a few ms longer than the steppers and that might be something to keep in mind when going thru the changes Creality added for that functionality to work.
And regarding the writing to SD card, I do not believe that this is a vital option anyways since the SD-card is powered by the 3.3V regulator of the FT232RL on the Melzi boards and that already is a technically to weak to properly support reading from SD-card since it is rated for only 50mA. So this also should be something to look out for when implementing this, there should be at least a warning generated when compiling such a feature for certain printer models.
I have no idea how the powerloss recovery function in the Ender3 actual works and seeing that it uses the exact same controller board than the CR-10 I have no idea how that board actually could detect a power loss in the first place.
The best method is to connect a signal line to a digital pin on the board, from a circuit that detects power drop at the AC mains input.
I merely point out that this capacitor should allow the controller to run a few ms longer than the steppers and that might be something to keep in mind when going thru the changes Creality added for that functionality to work.
So far the only code we've seen from Creality uses the method of writing to SD on every Z change, and has no direct power-loss detection. We're doing some work to improve on that, including adding support for direct power-loss detection using a signal on a digital pin.
The best method is to connect a signal line to a digital pin on the board, from a circuit that detects power drop at the AC mains input.
I agree but I was more thinking along what we already have in place that could be used. And messing with mains is something completely different, I would not recommend that to anyone as in I would not take any resposibilty for whatever happens. And that starts with not putting guides out on how to mess with mains.
So far the only code we've seen from Creality uses the method of writing to SD on every Z change, and has no direct power-loss detection.
Ouch. I rather risk to lose half a print instead of deliberately grilling the FT232RL on the board. As I wrote, a warning for the Melzi-Style boards and also for the CR-10S boards would be appropriate.
@thinkyhead I saw you saying that this feature is already being implemented in Marlin. Could I ask which firmware version has this and how can I activate the feature so I can test it?
which firmware version has this
bugfix-1.1.x
and bugfix-2.0.x
how can I activate the feature so I can test it?
/**
* Continue after Power-Loss (Creality3D)
*
* Store the current state to the SD Card at the start of each layer
* during SD printing. If the recovery file is found at boot time, present
* an option on the LCD screen to continue the print from the last-known
* point in the file.
*/
//#define POWER_LOSS_RECOVERY
This is a continuation of a question by @studiodyne asked in issue #5705
I have a question for experimented user @Bob-the-Kuhn @Roxy-3D @thinkyhead Why MARLIN RC8 , doesn't have the powerloss recovery ? and why ' CREATBOT PRINTER D600 have marlin with power loss and resuming included ' ? I'm talking just about the firmware , and not for the extra hardware ' battery + little circuit to inform the motherboard about loss power ' I'm very disappointed , i need this option , add a battery for a few secondes , put the system in pause mode , save data on sdcard , and give possibilité to resume when power on or manually Do i have to hack the firmware of these companies , or , it exists somewhere Why nobody want to give it to marlin communauty Or to make an ' ABORT ' function with saving option for resuming , or anything Ultimaker tinker mods have it , creatbot , and many others have it The problem is now we have low cost BIG SIZE printer and we need to have crash solutions or power loss solutions , an ' abort function + resuming ' , manually or not , but just the function Is there someone to use the tinker source to make it on marlin rc Just the firmware and the pin to active , i'm electronician i will make the hardware by myself , but the saving mode is not a little job on marlin and i don't have the brain and the knowledge for this Thanks