Jump to content
Ultimaker Community of 3D Printing Experts
savak001

Firmware upgrade for use with E3D v6

Recommended Posts

Hi all

I know this has probably been covered else where, if so please direct me to it.

I have upgraded my UM2 to use the E3D v6 hotend using a mount I located from YouImangine and printed in ABSplus on a Dimension printer.

My problem is exactly what and how to I upgrade the firmware to take into account any issue raised with the upgrade eg maximun X height or other axis change, maximum temperature of the hotend etc.

I am not a programmer so am asking the experts for precise instructions.

Your help is greatly welcome.

Graeme Craig

Share this post


Link to post
Share on other sites

Start reading from here on how to compile firmware;

https://ultimaker.com/en/community/7436-more-information-during-print?page=6

In your case I assume you use the PT100 temp sensor, so no need for a firmware change there.

Changing the maximum temperature:

Change in "Configuration.h", look for  "#define HEATER_1_MAXTEMP"

You need to change the PID settings to get a stable temperature, use auto tune PID, read f.e. here, or rearch the forum.

https://ultimaker.com/en/community/7624-regarding-pid-auto-tune-with-um2

http://reprap.org/wiki/PID_Tuning

I got good results doing the autotune at +- 250c, not sure but I used a higher temperature.

fill in the 3 values in configuration.h

   #define  DEFAULT_Kp

   #define  DEFAULT_Ki

   #define  DEFAULT_Kd

I can share my E3Dv6 values on UM2, but not now as I'm not at home....

I personally like the @tinkergnome firmware, I took this as a base;

https://ultimaker.com/en/community/7436-more-information-during-print?page=11#reply-125341

Regarding the max X height, I assume you mean the changed gantry height of the machine, which can cause you to knock over parts in one-at-a-time mode, you change this in the machine setting of Cura (old cura) or in the .json file of the machine, in the installation folder of New Cura (=beta).

Edited by Guest

Share this post


Link to post
Share on other sites

Thanks for the reply.

I've downloaded and installed the Tinkergnome firmware and reduced the max print size and leveled the table.

so far so good but....

I can't figure out how too adjust the settings you have mentioned above.

Do I neet to run the 'PID' settings if so how? From with in TInkergnome?

I just don't want to 'fry' anything.

Graeme

Share this post


Link to post
Share on other sites

I can't figure out how too adjust the settings you have mentioned above.

Do I neet to run the 'PID' settings if so how? From with in TInkergnome?

 

Hi @savak001,

to "tune" the PID settings a recompile of the firmware is not neccessary. You get some basic instructions if you follow the links above (from Arjan).

In short:

 

  • connect the printer with USB

  • open pronterface and connect to the printer

  • manually send the described gcode commands to the printer

  • the recommended values for the p, i and d coefficents are printed on the serial console after the autotune cycles are completed

  • store the new values in the printers EEPROM - (using the described gcode commands)

  • you have to repeat these steps only after a factory reset

 

The PID autotune is not (yet) executable from within the firmware, but it's already on the wishlist. This would probably make such things a bit easier.

Anyway - you've managed to change the complete hotend - those banal things should be a piece of cake for you.. :)

Edit: the maximum allowed hotend temperature is increased to 300°C for the recent "tinker" version, don't try this with a stock hotend... and if you need to go even higher.. just ask...

Edited by Guest

Share this post


Link to post
Share on other sites

You won't fry anything.  If you have bad PID values the temperature will either take a long time to heat up or it will oscillate like crazy - like if you set it to 250C it may oscillate between 230C and 270C every minute.  Nothing serious.

I would just leave them alone and heat up your nozzle and see how much it overshoots and does it settle in within a few minutes or does it oscillate forever.  You may be fine with existing PID values.

You can autocalibrate your PID values.  If you decide to do this read the 2 links above about autotuning.  To execute gcodes it's easy but you need pronterface.  Download and run it here - you will need a USB cable connected to your printer from your computer to use pronterface:

http://koti.kapsi.fi/~kliment/printrun/

No installation necessary - just download the files and double click it to run it.

Edited by Guest

Share this post


Link to post
Share on other sites

Using Pronterface I've run the PID autotune and entered the last set of P I D values (P44.33, I8.4 and D58.45) using M301 followed by M500 to store them.

Other vaules shown earlier in the Autotune were P16.16, I1.36, D47.85 followed by P26.48, I1.39, and D125.84. Is it usual for the three sets of values to be displayed?

I then switched the printer off and on again and sent M503 to verify the PID values. These returned as P10, I12.50 and D100.00

Is this normal as they are exactly the same figures as stated before I sent the M303 command?

Just to remind you I have an Ultimaker2.

Regards

Graeme

Share this post


Link to post
Share on other sites

PID: no idea if your method should work, I changed the values in the (tinkergnome) firmware and recompiled it.

Cooling fan: are you sure you use a correct voltage fan? Think the original UM2 fan is 5volt, I use a 24Volts fan from E3D so I had to take power elsewhere on the board (there's 24v output close to the power connector on the board).

Share this post


Link to post
Share on other sites

After you do the autotune and then after you set the PID values you have to do a M500 to save the values permanently. Otherwise you lose the PID values when you power cycle.

Regarding "third fan". On "newer" UM2 printers (roughly 2015 and newer) the rear fan doesn't come on until the nozzle gets above about 40C. On older printers the fan is on as soon as you power up.

Share this post


Link to post
Share on other sites

I forget how long it takes to save with M500 but I think it's under a second. If it was more than 5 seconds I would have remembered.

You probably never set the PID values in the first place.

Maybe read this:

http://reprap.org/wiki/PID_Tuning

in summary - M303 is for running the autotune. M301 is used to set the PID values - this is critical step I believe.

Then read up on gcodes here:

http://reprap.org/wiki/G-code

M503 reads back your current PID settings to make sure you set them up right. Then you can test them and/or save them with M500. After M500 you can either power cycle or simply do a M501 to read the parameters back in from eeprom and display them with M503.

Share this post


Link to post
Share on other sites

I've redone the AutoTune with Pronterface and the results are the same, ie when I reconnect after a power cycle the PIDs report the same as before I changed them.

There MUST be something else !

A jumper needing set to permit m500?

I don't know how where to get the hex code from for recompiling or even how to recompile, it's an area I'd rather not get invovled in.

I'm using the latest version of Tinkergnome firmware as linked to above.

Share this post


Link to post
Share on other sites

For your imformation here is the list of commands I've used from pronterface.

Please note after M500 the printer was switched off and back on.

>>> m303

SENDING:M303

PID Autotune start

bias: 130 d: 124 min: 145.47 max: 153.91

bias: 127 d: 127 min: 146.09 max: 154.53

bias: 127 d: 127 min: 145.94 max: 154.22

Ku: 39.05 Tu: 33.19

Clasic PID

Kp: 23.43

Ki: 1.41

Kd: 97.22

bias: 126 d: 126 min: 145.78 max: 154.06

Ku: 38.74 Tu: 32.74

Clasic PID

Kp: 23.25

Ki: 1.42

Kd: 95.13

bias: 126 d: 126 min: 146.25 max: 153.91

Ku: 41.91 Tu: 31.33

Clasic PID

Kp: 25.14

Ki: 1.61

Kd: 98.46

PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h

>>> m301 p25.14 i1.61 d98.46

SENDING:M301 P25.14 I1.61 D98.46

>>> m500

SENDING:M500

Disconnected.

Connecting...

start

Printer is now online.

echo:Marlin 1.0.0

echo: Last Updated: Sep 19 2015 22:25:59 | Author: Tinker_15.09

Compiled: Sep 19 2015

echo: Free Memory: 2455 PlannerBufferBytes: 1232

echo:Stored settings retrieved

echo:Steps per unit:

echo: M92 X80.00 Y80.00 Z200.00 E282.00

echo:Maximum feedrates (mm/s):

echo: M203 X300.00 Y300.00 Z40.00 E45.00

echo:Maximum Acceleration (mm/s2):

echo: M201 X9000 Y9000 Z100 E10000

echo:Acceleration: S=acceleration, T=retract acceleration

echo: M204 S3000.00 T3000.00

echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)

echo: M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00

echo:Home offset (mm):

echo: M206 X0.00 Y0.00 Z-6.80

echo:PID settings:

echo: M301 P10.00 I2.50 D100.00

echo:SD card ok

Regards

Graeme

Share this post


Link to post
Share on other sites

I've redone the AutoTune with Pronterface and the results are the same, ie when I reconnect after a power cycle the PIDs report the same as before I changed them.

There MUST be something else !

 

I don't remember exactly, but i guess that you should get a response from the printer after the M500. Something like "Settings stored" or a similar message.

If not, try the following:

- make a note of your new PID parameters

- disconnect and connect again (there should be a button in pronterface)

- (re)send the M301 command

- you should get an "ok." and your new parameters as response message

- (re)send the M500 command

- wait for message "Settings stored" (it takes less then 2 seconds)

- Done.

If you don't get the response messages then there is something wrong with the serial connection.

Restarting the printer is not neccessary.

Share this post


Link to post
Share on other sites

Following on from the suggestions.

Whenever I send a command such as m301 px ix dx or M500 there is no message received back from the printer.

I would have thought there should have been.

I can only connect at a baud rate of 250000 everything else reports something like this

Connecting...

Attempted to write invalid text to console, which could be due to an invalid baudrate

Graeme

Share this post


Link to post
Share on other sites

I can only connect at a baud rate of 250000 everything else reports something like this

 

A baud rate of 250000 is the correct value for an Utlimaker2.

Are you using the printrun/pronterface from www.pronterface.com, or something different?

Another approach:

Copy the two commands (M301 and M500) into a (plain) textfile, put a M501 in front of it (better safe than sorry) - rename the file with an extension of *.gcode and just "print" it.

Share this post


Link to post
Share on other sites

tinkergone - is m301 case sensitive? Can he read back the current parameters before he does the m500 to see if it's the m500 or the m301 that is failing? And finally, maybe he should to a factory reset to get his eeprom settings in the correct position for tinkergone? Or is that silly?

Share this post


Link to post
Share on other sites

tinkergone - is m301 case sensitive?  Can he read back the current parameters before he does the m500 to see if it's the m500 or the m301 that is failing?  And finally, maybe he should to a factory reset to get his eeprom settings in the correct position for tinkergone?  Or is that silly?

 

AFAIK all commands are case sensitive, but - looking at the script - i think that pronterface is converting it to uppercase before sending. But it's a good point and worth a try!

A M503 between each change doesn't hurt - but there should really be a response message with the new values on the serial console after sending the M301...

Factory reset is not silly, but will probably not help in this case. These settings are from the standard "ConfigurationStore" - i've not tinkered with it... i promise :)

Share this post


Link to post
Share on other sites

So tinkergnome it sounds like you are saying the m301 failed because it never responded with the updated values.

 

Yep. I made a short test just now, it should look like this:

...

>>>m301 p25.14 i1.61 d98.46

SENDING:M301 P25.14 I1.61 D98.46

ok p:25.14 i:1.61 d:98.46

>>>m500

SENDING:M500

Settings Stored

...

Share this post


Link to post
Share on other sites

Hi Folks

Back again after the holidays.

Thanks TInkergnome for the firmware upgrade for the PID Autotune. Worked and stored a treat.

However I'm getting the dreaded 'Heater Error - Contact Ultimaker' now!

In an earlier post it was suggested setting the maximum temperature.

Could that be my problem? There doesn't seem to a Gcode for setting this.

The printer uses a new PT100 sensor and the E3Dv6 and printing with ColorFabb PLA.

Regards

Graeme

Edited by Guest

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

[[Template core/front/global/_customFooter does not exist. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!