Bed Temp Change after uploading firmware on Taz5

In installed the Flexi-Dualie tonight. And per instructions I downloaded a copy of the firmware. Ever since then, the bed is reading about a degree off of its set temp. For example if I set it to 90 in S3D, it sits there forever waiting on the bed to warm up reading 89.3

I am hoping there is an easy fix for this.

Frankly, I am surprised that the firmware in the Taz 5 wasn’t already set up for the dual extruder.

Maybe wait for someone more experienced than myself to answer, but I believe you may need to tune your pid settings in marlin for your heated bed.

PID tuning refers to a proportional-integral-derivative control algorithm used in some repraps for hot ends and heated beds.

PID needs to have a [Proportional § constant Kp], [integral (I) constant Ki] and [derivative (D) constant Kd] value defined to control the nozzle temperature. If the temperature ramps up quickly and slows as it approaches the target temperature, or if it swings by a few degrees either side of the target temperature, then the values are incorrect.

Here is the AO article:
https://www.lulzbot.com/support/fine-tune-your-marlin-pid-settings

For more detailed information about it:
http://reprap.org/wiki/PID_Tuning

Well, tried both:
M303 E-1 S60
and
M303 E-1 S60 C8

Bed refuses to heat up and sits there reading at 26c.


Sigh. I just realized NOTHING is heating :frowning:


Cripes, do I have to redownload the firmware when I swich back to the single extruder hex head? Geez, thats fuzzy right there.

Man, thats a fail. Yea, I had to re-flash the firmware when switching back to the single extruder. Now its heating up and runnig the test.

Aleph Objects has done such a good job with the TAZ that it is easy to think that the firmware going forward would just work with all of their previous extruders. I certainly had that stuck in my head. In the end they are still using Marlin and are at the mercy of how it works. I started going through the code to fully understand its limits, but it is all written in C so a bit hard to follow (ok, technically C++, but rather than using encapsulation and inheritance they use #ifdef’s everywhere. Maybe makes sense considering the limits of the platform, but makes it harder to follow than if they used a true object oriented design).

In the end I think we should plan to swap the firmware any time we switch number of extruders or when switching between Budaschnozzle and Hexagon hot ends.

That was my presumption as well. I expected to be able to drop the head in place, attach the wire harness and get on with it. I was surprised at the fact it wasn’t recognized right away since Taz5 is their newest build.

I was also dumbfounded that it simply shut down when I returned to a single extruder. Its really completely counter-intuitive. Ok, maybe get it that 2 isn’t the default. But the current build should be smart enough to figure out that extruder 2 isn’t there and revert to single extruder function. Seems pretty simple logic if you ask me.

I returned to the hex head as the flexi-dualie was producing sub-par results. The primary extruder on it seemed ok but wasn’t quite as good as the hex (maybe I got spoiled). And the secondary head was, well, totally unacceptable and I am still debating on its actual functional status.

I shot an email to support to see what they say.

Take a look at the image.


If you look, the sub-plate on which the two extruders are mounted is really bowed badly. This is causing the flexistruder to sit at an oblique angle to the bed and to the other extruder. I think the plate is warped to be honest but not having ever seen another one I have no other point of reference to base that assumption on other than my gut telling me it looks wrong. I screwed the height adjustment screw well down as if you look closely the plate is not even touching the screw head.

Maybe its normal. Maybe its just the new filament I bought and am feeding the flexistruder with (ABS white from MatterHackers). I am finishing a print job making some LED brackets to put strip lighting on the TAZ frame. Once thats done I am going to feed the white into the HEX and do some test prints to see if it stacks up or the filament is crap.

Classic error. Changing two things at once (head and new filament). Can’t tell which is at fault for poor results. So, I am returning to a known good condition (black ABS from MakerGeeks and my Hex head). Then change to the new filament and print the same things and see if there is a quality difference. If there is, its the filament, if there isn’t then its the flexistruder.

Honestly, I think I am getting pretty solid results with the Hex and Taz 5. I have only had it what, a bit over 2 weeks now?


Honestly, I had hopes that the same or at least remotely similar results would happen with the Flexi-Dualie. Not so much.

Did you run through the calibration on the flexy dually (the thing that prints squares with each extruder inside each other)? I haven’t tried printing the objects you did, but it looks like the two extruders are not calibrated to each other.

By the way, I would not expect as good of results with the current flexy dually. First of all, the hexagon hot end has excellent results. It rocks. Second, the hexagon uses a 3.5mm nozzle and the flexy dually uses .5mm nozzles. Even once it is properly calibrated you will find that you won’t get quite the same resolution. It looks like they are working on a hexagon-based flexy dually (and standard dual extruder and single flexystruder too), but it isn’t quite ready yet.

Regarding any warping on the extruder, my guess is that it shouldn’t affect anything. When you calibrate the flexy dually, it takes a bit of playing around to get the two extruders Z level in sync. When doing the calibration, you spin the thumb screw and the extruder body must flex.

If you re-flash your firmware you have to do the PID calibrations because the code has default values it used, thus is not actually tuned to your bed and extruder.

As for the dual to single change, the dual firmware is looking for a thermistor reading for each extruder and if you have the single extruder on there it will give a ‘min/max temp’ error for the missing thermistor and not heat up anything as you found out.

I fool the dual extruder firmware out by attaching just another thermistor on the second extruder cable, and thus it gets a reading it is looking for on the second extruder thermistor that is not really there for the single head extruder body.

This way I do not have to change firmware when going from one to two heads and back on the TAZ.

Thats a great idea. How are you connecting the thermistor? Did you put it in its own four pin connector?

Alignment
Yes, I ran through the alignment process. I did the square test. I plugged in values to slicr. I got it to print the squares all fine and dandy. Centered as best as you can mesaure it on the print plate.

Then I printed the large cone via Simplify3D. I used the same figures as from slicr. And it came out looking like that, offset by a considerable amount. So I shrank the cone down (to use less materials) and proceeded to re-align it. In virtually every print, the white (flexi) would print ever so slightly larger than the orange (budda). As you can see I downloaded a ring test object and started using it (even less material).

Thinking I got it aligned I printed the dice. The white dots looked like they were in the right position. I tried playing with the settings to get results like I did with the hex. I never did get it close. I gave up started the octopus and went to bed. That was my surprise for the morning. A God awful mess. After work, I played again for another couple hours and finally gave up and put the hex back on.

That was the realization that the firmware needs changing…and the bed calibration, etc.

Nozzles
My Flexi-Dualie came with one .35mm and one .50mm nozzle on the buddas. The .35 is on the primary and the .50 is on the flexistruder.

Warping
Ya, I realize its got to flex to adjust the Z which I agree is a pita to get right. But also read what I said. Its bent like that with NO PRESSURE from the Z adjustment screw. Look close, I backed it all the way down, thee is a air gap there. Its bowed like that with no contact with the screw.

\

And yes, before you ask, I did do extruder calibrations too. I even made my own helper web page to make it easier.
http://www.wolfiesden.com/TAZ/ExtruderCal.asp


Yea, the thermister idea is a good one but only bandaids the problem of stupid software. It should be able to comprehend that its only got a single extruder on it and revert to using only single extruder settings. If its not that smart, then a setting in the LCD should be easy enough to set number of extruders (1->2).

I have been programming in BASIC for decades. Yes, plural. Cobol and Fortran are also in my tooklit as are Pascal and Fourth. And daily in Javascript and not as often Java. I only briefly worked in C++ but in the last couple years I have had to bone up on C# and .NET as we are converting all my ASP eCommerce and CMS code to C# (and re-writing it for new trends/technologies/standards). Javascript and C# are really similar syntactially to C++ which is what I think Marlin is written in. I might have to take a look at the code when I have time to pursue it. I would have to see how much room there is in the EPROM and flash ROM for new features or additional code, not up on the specs on this chip as I only have an Arduino Uno, much smaller memory I think than whats in the Taz.

I would also like to add menu controls for home individual axis as well as seek the corners for bed leveling to the menu functions on the TAZ. And to be able to control all 3 axis as well as extruder. I would also like to add multiple Esteps storage and recall for different filaments. Right now its got 1 and I am using Gcode presets in FFF files in S3D. I would also like multiple profiles which would store/retrieve different banks of settings with the M92 code. When changing heads, I could switch banks using the LCD. Whether thats possible with the memory available, I don’t know yet.

For comparison, here is a picture of the one I have… Also, on this one both nozzles are .5.


I’m sorry, but I’m definitely not an expert with this thing so I can’t offer much else in the way of help.

Yes, I set it up to plug on to the second extruder pins, and when I change back to the dual I just unplug it and plug in the other head/carriage.

Any reason a standard 100k resistor can’t be used in the same way? Cheap and I got boxes of 1/8th watt resistors laying around. If the software isn’t smart enough to realize its unplugged, I can’t imagine its smart enough to tell that its exactly 100k and not changing :slight_smile:



On another note…

The grand experiment begins. I want to see if I can build a better dualie.

I just ordered a Taz head (Hex) and two half height NEMA motors. I am about to start frankensteining this dualie. First out is going to be the primary extuder and the bowed sub-plate. I am going to replace the primary with a Hex and print a new sub-plate that will take the Hex and a budda secondary. I will use the old primary as the secondary for dual rigid filaments.

If that goes well, then I will get another Hex hot end and swap out the Budda for a hex and have a dualie with a pair of hex’s.

Once I have that working, I think I am going to re-evaluate the flexi and its budda. I may opt for leaving it alone and just accpting the poor quality from flexible filament. I may also opt for a different hot end. Either Hex or maybe E3D to see if I can get better quality prints from the flexi.

This, of course, will turn into another thread though. This one barely has one wheel left on the tracks.

It is more of having something there that pulls the sense pin down off the 5V rail. So around 100k will work, it would just think the read temp was about 25C, but being unused does not really matter?

Well, I won’t have time to fire it up tonight (gotta get the granddaughters in bed) but I think this is WRONG :slight_smile:

As you can see, its warped in both the X and Y planes. No wonder I had a hell of a time getting it aligned. I am also wondering if it was warping during use and constantly changing. That, at least, would account for the extreme variation in positioning.

Here is the flexi-dualie rebuilt with a plate I printed:

I think that looks more like it should :slight_smile:

Say, anyone got a low quantity source for those imbedded nuts that are in the old plate? I would like to put them in my plate, even if they aren’t used right now.

Are there any tips for alignment while I have it dismounted? I mean is there anything mechanical I need to do after assembly?

I have a bag full of the small heatset inserts. Send me your address and I’ll drop them in the mail for you.

How do you do the PID calibration?

Ps In simplify 3d, the Y axis is reversed from Slic3r. So the Gcode offsets you enter for tool 1 (the second extruder) have to have the same value for x, but for y, you need to put in the absolute (positive) value of the y value you entered in Slic3r

THAT explains a lot! You would have thought the guys from S3D would have mentioned that in at least one of their emails I got on this matter. Anyway, I have resorted to putting the offsets in the firmware, that way the gcode doesn’t have to contain it. Think it will be easier in the long run. First print off the bed and I am within 1mm in the Y and looks like right on in the X. Printing test 2 right now.

As for the PID cal…

Send
M303 S230

Wait. It will ramp up to 230 deg (change the 230 if you got pla in the head). It will cycle several times. Finally it will cool. Be patient, this takes a few minutes. You will get a “complete” statement back. Wait until you see the complete because it reports P,I and D several times during the process, ignore those. The ones at the complete statmentwill spit out the 3 data points you need, Kp, Ki and Kd.

Send:
M301 Ppp.pp Ii.ii Dddd.dd

Repace pp.pp, i.ii, ddd.dd with readings from the test.

Send:
M500

This will store the setting.

Send:
M303 E-1 S100

This will heat the bed up and run the same test. Again, wait. Takes longer than the head.

Send:
M304 Ppp.pp Ii.ii Dddd.dd

Again, replace pp.pp, i.ii, ddd.dd with values returned.

Send:
M500

That stores the values in EPROM.

Now, I also edited my firmware copies and placed the lines in the firmware. Its in Configuration.h

I am working with the dualie which has budda hot ends so my firmware looks like this now:
// Buda 2.0 on 24V
#define DEFAULT_Kp 14.09
#define DEFAULT_Ki 0.75
#define DEFAULT_Kd 66.00

And for the bed:
//24V 360W silicone heater from NPH on 3mm borosilicate (TAZ 2.2+)
#define DEFAULT_bedKp 164.79
#define DEFAULT_bedKi 19.37
#define DEFAULT_bedKd 350.54


The bed will not change from dual extruder to single hex. The hot end settings WILL change. You will have to run the M303 command for each head. Also, there are no settings for the 2nd extruder, they are shared so you only need to run it once with the dualie.

To send the commands, you can use pronterface or the tools in S3D. All commands must be caps M303 not m303. S3D doesn’t cap them for you, pronterface does. In S3D, turn off the “Verbose” check at the top to stop the temp monitor clutter when doing these tests.

For doing extruder calibrations, I made a handy tool with everything you need:
http://www.wolfiesden.com/TAZ/ExtruderCal.asp

I think in S3D there is a check box yo flip the Y-axis… Its under one of the tabs in the general area of defining the bed size.

Well, I would have to say that the rebuild with the new plate was a success. Green is ABS coming out of the flexistruder, black abs from main extruder.


I still gotta get retraction right as well as feed rates but as far as alignment goes, I think I got it darn close. Maybe 0.01mm off.