1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Partially Solved Now I can't print at all - Time to throw in the towel.

Discussion in 'Troubleshooting' started by hippy1970, Jun 8, 2017.

  1. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    Are you suggesting I alter the firmware source and recompile? Seems a tad drastic.


    Sent from my iPhone using Tapatalk
     
  2. Geof

    Geof Volunteer Moderator
    Staff Member

    Joined:
    Nov 9, 2015
    Messages:
    6,757
    Likes Received:
    2,339
    Thats what I hate about EEPROM:D Think of it like memory, what gets saved to EEPROM typically over writes what you have saved in the firmware (the main program for the machine) the issue I have with EEPROM is you have to rely on the fact that it never gets changed and what changed got saved. I find it more "fool proof" (I'm the fool not you just to be clear lol) to change the firmware and never store anything in EEPROM unless I must :D
     
  3. Geof

    Geof Volunteer Moderator
    Staff Member

    Joined:
    Nov 9, 2015
    Messages:
    6,757
    Likes Received:
    2,339
    Yes. It is drastic, but if you have the correct measurements of filament once its changed its in there and you cant adjust it without reflashing. I'm not telling you you have to do it that way, just suggesting how I go about doing it and why I dont use EEPROM. :D You can do it either way you'd like but EEPROM causes headaches for alot of people.

    In either way you need to get your numbers for the formula by conducting the test multiple times (10?) average the number and thats what you use in the equation for calculating your E STEPS. Once you have that number you can certainly upload to EEPROM and test. Just never clear or send the command to upload esteps to eeprom again otherwise you'll pull out all your hair :D
     
  4. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    In addition to the firmware (which is 'permanent') the printer has something called flash EPROM (EEPROM) memory that is used to hold data between reboots/power cycles. It is an easy way to change settings that would normally require a firmware reload and not having to reload the firmware. However... it is NOT permanent. It is more semi-permanent :)
     
    Geof likes this.
  5. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    I don't have a great deal of hair left anyway, three kids...



    Sent from my iPhone using Tapatalk
     
    Geof likes this.
  6. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    If you do use the flash EPROM to do your data then if something ever wipes it out you are up the proverbial creek...
     
    Geof likes this.
  7. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    I'm familiar with EPROMs. I used to flash them with a BBC Micro back in the day...
    I just wasn't sure why you were altering the firmware. I get it now.

    I'm not fussed on averaging out numbers as they seem wildly different each time.

    I began using the default of 760 or whatever it was. It was way over extruding, about 130mm.

    I reduced it but it was still way over. I eventually went to 600 as 620 was over. It then only extruded about 50mm.
    Once I save the EPROM it should be set, correct? I mean I don't have to do anything else like M codes or power cycle the Arduino?


    Sent from my iPhone using Tapatalk
     
  8. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    In fact. I just power cycled the Arduino and the Robo. The EPROM settings are back to defaults...
    So I guess it's not saving when the power goes off. A useless EPROM really.
    I'll mark 140mm and extrude 100. See what happens.


    Sent from my iPhone using Tapatalk
     
  9. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    EEPROM use is a bit odd. The way Marlin works is that if you have EEPROM enabled and you have an actual value in it (not null values) it uses this priority for execution.

    1. Firmware settings are moved from Flash memory to user memory at boot time.
    2. If there is an EEPROM value it is read and overwrites the user memory value, no if's and's or but's.
    3. If there is a null value the Firmware setting is retained in the user memory

    Here is what happens when you flash a new version with all new settings.

    1. Firmware is burned to Flash memory
    2. EEPROM is NOT cleared or initialized in any way, so existing information is still there from flash to flash.
    3. It then behaves like the sequence mentioned previously.

    Marlin doesn't even care if the values in EEPROM are correct, it just treats it as data that needs to be moved to user memory.

    EEPROM can only store values in user memory, It cares nothing for Firmware settings. If you change user settings using G or M codes and do not explicitly save those to EEPROM your modifications are only used until the Arduino is power cycled.
     
    #69 WheresWaldo, Jul 18, 2017
    Last edited: Jul 18, 2017
    Geof likes this.
  10. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    I actually marked 150mm. Good job as it extruded 145mm


    Sent from my iPhone using Tapatalk
     
  11. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    Yep. The EEEPROM will survive power off, but it is easy for a host program to overwrite it or for a glitch in the machine to reset values (or the reset button getting pressed on the Arduino for example... not a normal thing, but that will also reset it).

    This is why I said it is not 'permanent'. It will survive a power cycle, but unlike the EPROM it is not really permanent.
     
    Geof likes this.
  12. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    Ok I follow what you're saying. My EPROM values are not saving then. It all at factory defaults (firmware defaults) when power cycled.
    So once I have it right I'll alter the firmware.


    Sent from my iPhone using Tapatalk
     
  13. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    So. Old steps are 723.38
    The math says 723.38x(100/145mm)
    That gives me 498.88 steps / mm
    I tried 600 earlier and it was way too low.
    I'll try it now anyway.
    Back in a min with the results.


    Sent from my iPhone using Tapatalk
     
  14. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    That figure extruded just 57mm.
    These numbers are crazy. I must have something else wrong.

    Any clues?


    Sent from my iPhone using Tapatalk
     
  15. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    Good idea :)
     
  16. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    Reset the flash eprom after every real eprom update.
    That way you are certain there is no stale/corrupt data in the flash eprom
     
  17. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I am shocked yours is so low. In general every Robo R1 I have seen under-extrudes at 723.38 steps. In my experience the EStep value should be somewhere near 800.

    Every time you flash a new firmware and you want to make sure your firmware settings are used, you must do the following before any printing whatsoever.
    Code:
    M502
    M500
    The M502 will restore all firmware settings to user memory, the M500 will save all the user memory to EEPROM. Why EEPROM works the way it does in Marlin is anybody's guess. But one good reason to use it is there are a few settings that are not defined in Configuration.h that can be set with M-codes and stored for future use.
     
    mark tomlinson likes this.
  18. daniel871

    daniel871 Well-Known Member

    Joined:
    Apr 18, 2015
    Messages:
    1,322
    Likes Received:
    510
    He may not be able to do this with the stock firmware, since it has EEPROM saving disabled.

    There's always the good old Starting Gcode method though.
     
  19. hippy1970

    hippy1970 Member

    Joined:
    Jan 4, 2017
    Messages:
    59
    Likes Received:
    10
    I just ran M502 and M500. My EEPROM settings are now set to default, 723.38.
    I'm getting fed up now. Is there somewhere else I should be setting the steps?


    Sent from my iPhone using Tapatalk
     
  20. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    How are you setting the steps?
    Exact workflow please...
     

Share This Page