Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bugfix-2.0.x] Error:EEPROM datasize error when enabled 2 servos (dondolo + bltouch) #12015

Closed
alexxy opened this issue Oct 5, 2018 · 24 comments

Comments

@alexxy
Copy link
Contributor

alexxy commented Oct 5, 2018

Hi!

I get this error with recent bugfix-2.0.x branch. Configs attached
config.zip

Compiled: Oct  5 2018
Free Memory: 2724  PlannerBufferBytes: 1488
Error:EEPROM datasize error.
ttyUSB0 PC> Error:EEPROM datasize error.

Index: 607 Size: 615
Hardcoded Default Settings Loaded

@gloomyandy
Copy link
Contributor

Have you tried doing an m502 followed by m500 to reset the default values and store them in eeprom. You will often usually to do this when installing a new version of the firmware.

@alexxy
Copy link
Contributor Author

alexxy commented Oct 5, 2018

yes. doesnt work for me. actualy it wasfirst thing that i tryed.

@blairq
Copy link

blairq commented Oct 5, 2018

im getting it too. also the machine started skipping steps and so... already did a m502 and m500. changed z_offset (i use a touch sensor) , saved the changes but they didnt go to the eeprom.
flashed 2 times. same error.

@GMagician
Copy link
Contributor

@alexxy @blairq have you tried with DEBUG_EEPROM_READWRITE and check log

@blairq
Copy link

blairq commented Oct 5, 2018

no, its related to c40ea1f

i changed back #define EEPROM_OFFSET 0 to the original #define EEPROM_OFFSET 100 and everything works fine again.

had to do a m502 - m500 again

@mrambossek
Copy link

mrambossek commented Oct 6, 2018

i can confirm that there seems to be some kind of issue. after upgrading last night, i keep getting

Error:EEPROM CRC mismatch - (stored) XXXXX != YYYYY (calculated)!
echo:Hardcoded Default Settings Loaded

EDIT: i did M502/M500 .. many times. i am aware of what it does. i still kept getting the crc errors.

i changed EEPROM_OFFSET back to 100 as suggested by #12015 (comment) and now it seems to work again. so appearently those 100 bytes ARE somehow used? :)

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

I tryed with DEBUG_EEPROM_READWRITE

SENDING:M500
Error:Field lcd_preheat_hotend_temp mismatch.
Error:Field lcd_preheat_hotend_temp mismatch.

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

Actualy error is the same as for #11883 and #11757

@GMagician
Copy link
Contributor

GMagician commented Oct 6, 2018

@thinkyhead in servo.h there is something not correct I think extern uint16_t servo_angles[NUM_SERVOS][2];. Not related with this but may lead to memory corruption since I think it should use NUM_SERVO_PLUGS

Edit: Maybe not corruption since NUM_SERVOS should always be bigger but I think not correct anyway
Also in servo.ccp there is uint16_t servo_angles[NUM_SERVOS][2];

Edit2: Ok I don't understand... in eeprom data struct is used NUM_SERVO_PLUGS hence this should be used all over the code but this is not true... is it not too weird all this?

@GMagician
Copy link
Contributor

@thinkyhead sorry to bother but shouldn't I see eeprom_index changed every read/write? I see it is incremented only in EEPROM_SKIP

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

I have NUM_SERVOS = 2 in Configuration.h
But may be problem is that i use BLTOUCH? and enabled editable servo angles?

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

Disableing EDITABLE_SERVO_ANGLES solves issue (so seems like its a root of problem)

@GMagician
Copy link
Contributor

@alexxy not sure about problem but I think that this mixing of NUM_SERVOS and NUM_SERVO_PLUGS on servo_angles may lead to some problem...

@GMagician
Copy link
Contributor

@alexxy that confirm me that such mix is the issue...

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

NUM_SERVO_PLUGS not defined in Marlin/src/module/servo.h

@GMagician
Copy link
Contributor

@alexxy try replacing NUM_SERVOS with NUM_SERVO_PLUGS in servo.cpp and servo.h where servo_angles are referred

@GMagician
Copy link
Contributor

If it will fix I'll post a PR

@GMagician
Copy link
Contributor

GMagician commented Oct 6, 2018

OT @alexxy your dondolo works fine? I decided to remove it because of too much problem with not in use filament retraction

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

@GMagician it works. but its hard to calibrate offsets

@GMagician
Copy link
Contributor

GMagician commented Oct 6, 2018

@GMagician it works. but its hard to calibrate offsets

Dondolo? or fix? If dondolo is no a problem of offsets. The problem is that the unused filament is not kept in position when head moves. When you come back to such filament you miss material (you have to create a tower but then no benefit from having two nozzles)

@alexxy
Copy link
Contributor Author

alexxy commented Oct 6, 2018

Dondolo works.

@cjsoong
Copy link

cjsoong commented Oct 6, 2018

@alexxy
If your problem has not been resolved, you can try my modified version.
No EEprom data size error & M281 can set the servo angle.
https://drive.google.com/file/d/1dixj-e1lBUvuxazjgOgqVz0tbXnl2zKI/view?usp=sharing

@monterman
Copy link

@alexxy could you help me with my issue. see here please teemuatlut#27

thank you.

@github-actions
Copy link

github-actions bot commented Aug 6, 2020

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Aug 6, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants