Comments (14)
Bearing in mind I didn't write this, to my understanding it is just saving a log of what it receives from an M501 command. Looks like that might have been lost in yours.
Mine looks a bit like this (when I tried it out):
Send: M504
Recv: echo:EEPROM OK
Recv: ok,Send: M501
Recv: echo:V76 stored settings retrieved (640 bytes; crc 43039)
Recv: echo: G21 ; Units in mm (mm)
Recv: echo: M149 C ; Units in Celsius
Recv:
Recv: echo:; Filament settings: Disabled
Recv: echo: M200 D1.75
Recv: echo: M200 D0
Recv: echo:; Steps per unit:
Recv: echo: M92 X100.00 Y100.00 Z400.00 E90.00
Recv: echo:; Maximum feedrates (units/s):
Recv: echo: M203 X400.00 Y400.00 Z4.00 E50.00
Recv: echo:; Maximum Acceleration (units/s2):
Recv: echo: M201 X1000.00 Y1000.00 Z1000.00 E1000.00
Recv: echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
and it does look like it has cut off the acceleration from my backup too.
Maybe you could try and see what the full output of M501 is?
I will try and look into it at some point, but I don't particularly like the way it is backing up anyway....
from octoprint-eeprom-marlin.
Full output from M501:
Send: M501
Recv: ==onLoadSettings==
Recv: echo:V81 stored settings retrieved (710 bytes; crc 47994)
Recv: Unified Bed Leveling System v1.01 active
Recv:
Recv: Unified Bed Leveling initialized.
Recv:
Recv: Mesh loaded from slot 0
Recv: Mesh 0 loaded from storage.
Recv: echo: G21 ; Units in mm (mm)
Recv:
Recv: echo:; Filament settings: Disabled
Recv: echo: M200 S0 D1.75
Recv: echo:; Steps per unit:
Recv: echo: M92 X80.00 Y80.00 Z800.00 E136.84
Recv: echo:; Maximum feedrates (units/s):
Recv: echo: M203 X750.00 Y750.00 Z10.00 E75.00
Recv: echo:; Maximum Acceleration (units/s2):
Recv: echo: M201 X2000.00 Y2000.00 Z100.00 E75.00
Recv: echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
Recv: echo: M204 P750.00 R1000.00 T300.00
Recv: echo:; Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>
Recv: echo: M205 B20000.00 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00
Recv: echo:; Home offset:
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:; Unified Bed Leveling:
Recv: echo: M420 S1 Z0.00
Recv:
Recv: Unified Bed Leveling System v1.01 active
Recv:
Recv: echo:; Active Mesh Slot: 0
Recv: echo:; EEPROM can hold 12 meshes.
Recv:
Recv: echo:; PID settings:
Recv: echo: M301 P27.08 I2.51 D73.09
Recv: echo: M304 P131.06 I11.79 D971.23
Recv: echo:; Retract: S<length> F<units/m> Z<lift>
Recv: echo: M207 S3.00 W13.00 F2700.00 Z0.00
Recv: echo:; Recover: S<length> F<units/m>
Recv: echo: M208 S0.00 W0.00 F480.00
Recv: echo:; Auto-Retract: S=0 to disable, 1 to interpret E-only moves as retract/recover
Recv: echo: M209 S0
Recv: echo:; Z-Probe Offset (mm):
Recv: echo: M851 X-45.00 Y-5.00 Z-4.44
Recv: echo:; Stepper driver current:
Recv: echo: M906 X550 Y550 Z550
Recv: echo: M906 I1 Z550
Recv: echo: M906 T0 E660
Recv:
Recv: echo:; Hybrid Threshold:
Recv: echo: M913 X152 Y152 Z10
Recv: echo: M913 I1 Z10
Recv: echo: M913 T0 E48
Recv:
Recv: echo:; Driver stepping mode:
Recv: echo: M569 S1 X Y Z
Recv: echo: M569 S1 I1 Z
Recv: echo:; Linear Advance:
Recv: echo: M900 K0.01
Recv: echo:; Filament load/unload lengths:
Recv: echo: M603 L100.00 U75.00
Recv: echo:; Backlash compensation:
Recv: echo: M425 F0.00 X0.00 Y0.00 Z0.00
Recv: ==onConfigurationStoreRead==
Recv:
Recv: init zprobe_zoffset = -4.44
Recv: ok P63 B31
from octoprint-eeprom-marlin.
Something's broken with it capturing the settings. 🤔 will take a look, and see what I can do. Thank you for the detailed report!
from octoprint-eeprom-marlin.
same here
this is the backup file.... not more not less
Send: M504
Recv: echo:EEPROM OK
Recv: ok,Send: M501
from octoprint-eeprom-marlin.
@cp2004 I am going to take a look at fixing this one. A few random thoughts/questions:
I don't think we should be using M501 by default. M501 reloads the saved eeprom settings, potentially overwriting any tweaks to the running settings. M503 prints active (not necessarily stored) settings, and also prints out a usable gcode script, whereas M501 adds extra stuff at the top which needs to be parsed out. I would propose that we use M503, and give the user an option e.g.
What to backup:
- Running settings.
- Stored eeprom settings. Warning, any changes made since eeprom was last saved (e.g. via M500 or "upload") will be lost.
If they select running settings, display a Checkbox (checked by default) that says "overwrite stored eeprom settings" which triggers M500, then M503. If they select stored eeprom settings, we run M501 then M503.
As to the method of taking the backup, I do not see much of an option other than generating a gcode script. Marlin to my knowledge doesn't provide any other means of setting eeprom configuration (e.g. no way to upload a settings file).
from octoprint-eeprom-marlin.
Sounds right to me 🙂
I was thinking of making it an option in the settings page (I'll get rid of the clutter out of there) to use M501 or M503 to load settings, since Marlin can have M503 disabled in config.h. Thank you in advance for the contribution!
from octoprint-eeprom-marlin.
@dchauran - Just a heads up if you are still yet to look into this, you might want to pull the latest changes on the devel
branch. I've run OctoPrint's pre-commit suite against this plugin, including black and prettier formatting, so merges will be easier if you pull first. If you've already started a fix I'm sure we can make a merge work just fine.
See the changes here: 7f84dfa
from octoprint-eeprom-marlin.
from octoprint-eeprom-marlin.
No worries, I haven't had a chance to look either!
Trying to balance working evenly across this other OctoPrint projects, all in my spare time. I can wait as long as it takes.... 🙂
from octoprint-eeprom-marlin.
@dchauran If you are still looking in to this, don't worry about it. I am in progress of re-writing this plugin from the ground up, and it will be really simple to create backups the way I have implemented the data structures, so it will work very well. Targeting before end of 2020 for release, this will be a much improved plugin.
from octoprint-eeprom-marlin.
The backup feature is ready and implemented for 3.0.0. Summary of features:
- Create a backup on the server as a JSON file from the internal data of the plugin
- Restore these backups at any time, right from the UI
- Upload a backup
- Download a backup
- Custom backup names
- Timestamps in the backups
from octoprint-eeprom-marlin.
@DodgeDeBoulet @dreiduke @dchauran
Please test the release candidate of V3 of this plugin, it is available and this feature/fix is implemented.
Details can be found in the feedback ticket of how to install, update and report issues: #16
from octoprint-eeprom-marlin.
from octoprint-eeprom-marlin.
3.0.0 has been released 🎉
from octoprint-eeprom-marlin.
Related Issues (20)
- CR-10 Smart printer isn't recognized as Marlin firmware HOT 5
- IMPORTANT: The next release of this plugin will not support Python 2
- Upgrade pre-commit and add pyupgrade HOT 1
- [Request]: Automatic scheduled EEPROM backups HOT 3
- Retrieve and Set Stealthchop for TMC Drivers[Request]: HOT 4
- [Bug]: PluginManager typo -> link to gihtub HOT 4
- [Request]: Only FIRMWARE INFO in the left column HOT 14
- [Bug]: Doesn't work with Snapmaker 2.0 A350 HOT 3
- [Request]: When enabled in Firmware, Add M306 data to Temperature tab HOT 7
- [Bug]: E0 stepper current not saved HOT 3
- Please add MPC to the menu HOT 2
- [Request]: Add LONG_FILENAME_WRITE_SUPPORT HOT 2
- [Bug]: After Marlin Update, ignore crc mismatch, restoring a config M112 ERROR when no bed mesh is stored HOT 2
- [Request]: Add M914 TMC Bump Sensitivity HOT 1
- [Request]: Add M423 support HOT 1
- [Request]: Using eprom locked on iPad HOT 6
- [Request]: Separate X and Y values for Input Shaping HOT 1
- Support- Willing to pay for your time HOT 1
- [Request]: Unkown Command M207 x8/x20 HOT 1
- [Bug]: Cannot install on Python 3.12 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from octoprint-eeprom-marlin.