Help!!!! Dual extruder problem

The official subforum for discussion of the installation and use of the official M2 Dual Extruder upgrade.
Josh
Site Admin
Posts: 91
Joined: Thu Apr 10, 2014 3:32 pm

Re: Help!!!! Dual extruder problem

Post by Josh » Tue Aug 12, 2014 9:20 pm

One possibly useful test - could either of you try using the same firmware as a single, with "#define EXTRUDERS" set to 1 in Configuration.h (line 65)?

Q*bert
Posts: 42
Joined: Sat Apr 12, 2014 7:45 pm
Location: Waukesha, WI

Re: Help!!!! Dual extruder problem

Post by Q*bert » Tue Aug 12, 2014 10:30 pm

Josh wrote:Q*bert and brett - what specific RAMBo revisions do you two have? And did you change the firmware at all before uploading (the steps/mm for instance)? And/or, have you changed anything in EEPROM on your old firmware?
I upgraded my Rambo to v1.2g (if I remember right - I'll check tonight.) I didn't change the dual code at all. And I had used EEPROM to store settings using the old firmware, but have erased EEPROM using M502, and I tried disabling EEPROM access in the dual code.
Josh wrote:One possibly useful test - could either of you try using the same firmware as a single, with "#define EXTRUDERS" set to 1 in Configuration.h (line 65)?
I believe i tried that already Josh and it didn't work, but I will confirm again this evening.

I think the issue of 1/16th vs 1/8th stepping is a red herring. brettb has a 1.2d which fully implements 1/16th stepping instead of 1/8th, and I had previously upgraded my Rambo to 1.2g.

It's really weird that enabling microstepping causes an error in reading thermistors - makes no sense at all. I'll poke around more tonight and see what else I can figure out.

brettb
Posts: 13
Joined: Sat Jun 21, 2014 7:45 pm

Re: Help!!!! Dual extruder problem

Post by brettb » Tue Aug 12, 2014 11:28 pm

Josh wrote:One possibly useful test - could either of you try using the same firmware as a single, with "#define EXTRUDERS" set to 1 in Configuration.h (line 65)?

Josh,

I just ran that test for you, there was unfortunately no improvement. Let me know if you'd like me to run any other tests, I'll be available this evening.



Attempting connection at /dev/cu.usbmodemfd141...
RECEIVED: start
Connected to machine!
SENT: G21
RECEIVED: echo: External Reset
RECEIVED: Marlin 1.0.0
RECEIVED: echo: Last Updated: Aug 12 2014 15:16:56 | Author: (none, default config)
Last Updated: Aug 12 2014 15:16:56 | Author: (none, default config)
RECEIVED: Compiled: Aug 12 2014
SENT: T0
RECEIVED: echo: Free Memory: 4224 PlannerBufferBytes: 1232
Free Memory: 4224 PlannerBufferBytes: 1232
RECEIVED: echo:Hardcoded Default Settings Loaded
Hardcoded Default Settings Loaded
RECEIVED: echo:Steps per unit:
Steps per unit:
RECEIVED: echo: M92 X88.88 Y88.88 Z400.00 E471.50
M92 X88.88 Y88.88 Z400.00 E471.50
RECEIVED: echo:Maximum feedrates (mm/s):
Maximum feedrates (mm/s):
RECEIVED: echo: M203 X500.00 Y500.00 Z25.00 E25.00
M203 X500.00 Y500.00 Z25.00 E25.00
RECEIVED: echo:Maximum Acceleration (mm/s2):
Maximum Acceleration (mm/s2):
RECEIVED: echo: M201 X4000 Y4000 Z100 E10000
M201 X4000 Y4000 Z100 E10000
RECEIVED: echo:Acceleration: S=acceleration, T=retract acceleration
Acceleration: S=acceleration, T=retract acceleration
RECEIVED: echo: M204 S2000.00 T3000.00
M204 S2000.00 T3000.00
RECEIVED: 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)
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)
RECEIVED: echo: M205 S0.00 T0.00 B20000 X8.00 Z0.40 E5.00
M205 S0.00 T0.00 B20000 X8.00 Z0.40 E5.00
RECEIVED: echo:Home offset (mm):
Home offset (mm):
RECEIVED: echo: M206 X0.00 Y0.00 Z0.00
M206 X0.00 Y0.00 Z0.00
RECEIVED: echo:PID settings:
PID settings:
RECEIVED: echo: M301 P25.89 I1.94 D86.53
M301 P25.89 I1.94 D86.53
Disconnected.
Attempting connection at /dev/cu.usbmodemfd141...
RECEIVED: ×start
RECEIVED: echo: External Reset
RECEIVED: Marlin 1.0.0
RECEIVED: echo: Last Updated: Aug 12 2014 15:16:56 | Author: (none, default config)
Last Updated: Aug 12 2014 15:16:56 | Author: (none, default config)
RECEIVED: Compiled: Aug 12 2014
RECEIVED: echo: Free Memory: 4224 PlannerBufferBytes: 1232
Free Memory: 4224 PlannerBufferBytes: 1232
RECEIVED: echo:Hardcoded Default Settings Loaded
Hardcoded Default Settings Loaded
RECEIVED: echo:Steps per unit:
Steps per unit:
RECEIVED: echo: M92 X88.88 Y88.88 Z400.00 E471.50
M92 X88.88 Y88.88 Z400.00 E471.50
RECEIVED: echo:Maximum feedrates (mm/s):
Maximum feedrates (mm/s):
RECEIVED: echo: M203 X500.00 Y500.00 Z25.00 E25.00
M203 X500.00 Y500.00 Z25.00 E25.00
RECEIVED: echo:Maximum Acceleration (mm/s2):
Maximum Acceleration (mm/s2):
RECEIVED: echo: M201 X4000 Y4000 Z100 E10000
M201 X4000 Y4000 Z100 E10000
RECEIVED: echo:Acceleration: S=acceleration, T=retract acceleration
Acceleration: S=acceleration, T=retract acceleration
RECEIVED: echo: M204 S2000.00 T3000.00
M204 S2000.00 T3000.00
RECEIVED: 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)
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)
RECEIVED: echo: M205 S0.00 T0.00 B20000 X8.00 Z0.40 E5.00
M205 S0.00 T0.00 B20000 X8.00 Z0.40 E5.00
RECEIVED: echo:Home offset (mm):
Home offset (mm):
RECEIVED: echo: M206 X0.00 Y0.00 Z0.00
M206 X0.00 Y0.00 Z0.00
RECEIVED: echo:PID settings:
PID settings:
RECEIVED: echo: M301 P25.89 I1.94 D86.53
M301 P25.89 I1.94 D86.53
Testing plaintext communication protocol...
RECEIVED: echo:SD init fail
SD init fail
RECEIVED: ok
Connected to machine!
SENT: G21
SENT: T0
RECEIVED: ok
RECEIVED: echo:Active Extruder: 0
Active Extruder: 0
RECEIVED: ok
RECEIVED: Error:0
RECEIVED: : Extruder switched off. MINTEMP triggered !
RECEIVED: Error:Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)
SENT: M105
RECEIVED: ok T:0.0 /0.0 B:5.0 /0.0 T0:0.0 /0.0 @:0 B@:0
SENT: M105
RECEIVED: ok T:0.0 /0.0 B:5.0 /0.0 T0:0.0 /0.0 @:0 B@:0
SENT: M105
RECEIVED: ok T:0.0 /0.0 B:5.0 /0.0 T0:0.0 /0.0 @:0 B@:0
SENT: M105
RECEIVED: ok T:0.0 /0.0 B:5.0 /0.0 T0:0.0 /0.0 @:0 B@:0
Disconnected.

Q*bert
Posts: 42
Joined: Sat Apr 12, 2014 7:45 pm
Location: Waukesha, WI

Re: Help!!!! Dual extruder problem

Post by Q*bert » Tue Aug 12, 2014 11:53 pm

Josh wrote:One possibly useful test - could either of you try using the same firmware as a single, with "#define EXTRUDERS" set to 1 in Configuration.h (line 65)?
I can confirm, as Brett did, that changing EXTRUDERS to 1 did not change the behavior. I also confirmed that I am running with a v1.2g Rambo board.

Q*bert
Posts: 42
Joined: Sat Apr 12, 2014 7:45 pm
Location: Waukesha, WI

Re: Help!!!! Dual extruder problem

Post by Q*bert » Wed Aug 13, 2014 12:27 am

OK, a little more testing shows that, using the unmodified dual code, you can issue "M350 S1" which sets microstepping to 1 and all the thermistors read properly. "M350 S2" also works. But any microstepping higher than 2 causes reading the thermistors to fail.

brettb
Posts: 13
Joined: Sat Jun 21, 2014 7:45 pm

Re: Help!!!! Dual extruder problem

Post by brettb » Wed Aug 13, 2014 12:54 am

I was able to set mine higher then M350 S2 & am still getting good readings from my thermistors. I'm assuming that 'M350 S16' would be the normal setting for a Rambo 1.2d board, correct?

Looks like I'm still having issues, I'm still not able to print. Let me know if I should run any additional tests.


SENT: M350 S16
RECEIVED: MS1,MS2 Pins
RECEIVED: X: 11
RECEIVED: Y: 11
RECEIVED: Z: 11
RECEIVED: E0: 11
RECEIVED: E1: 00
RECEIVED: ok
SENT: M105
RECEIVED: ok T:188.1 /190.0 B:28.6 /0.0 T0:188.1 /190.0 T1:189.6 /190.0 @:48 B@:0
SENT: M105
RECEIVED: ok T:188.8 /190.0 B:28.6 /0.0 T0:188.8 /190.0 T1:189.5 /190.0 @:38 B@:0
SENT: M105
RECEIVED: ok T:189.7 /190.0 B:28.4 /0.0 T0:189.7 /190.0 T1:189.3 /190.0 @:25 B@:0
SENT: M105
RECEIVED: ok T:190.5 /190.0 B:28.2 /0.0 T0:190.5 /190.0 T1:189.3 /190.0 @:15 B@:0
SENT: M104 S0 T0
RECEIVED: ok
SENT: M104 S190 T0
RECEIVED: ok
SENT: M105
RECEIVED: ok T:191.3 /190.0 B:28.2 /0.0 T0:191.3 /190.0 T1:189.5 /190.0 @:0 B@:0
SENT: T1
RECEIVED: echo:Active Extruder: 1
Active Extruder: 1
RECEIVED: ok
SENT: M104 S0 T1
RECEIVED: ok
SENT: M105
RECEIVED: ok T:189.6 /0.0 B:28.2 /0.0 T0:191.4 /190.0 T1:189.6 /0.0 @:0 B@:0
SENT: M104 S190 T1
RECEIVED: ok
SENT: M105
RECEIVED: ok T:189.7 /190.0 B:28.2 /0.0 T0:191.8 /190.0 T1:189.7 /190.0 @:3 B@:0
SENT: M105
RECEIVED: ok T:190.0 /190.0 B:28.2 /0.0 T0:191.4 /190.0 T1:190.0 /190.0 @:0 B@:0
Disconnected.

Josh
Site Admin
Posts: 91
Joined: Thu Apr 10, 2014 3:32 pm

Re: Help!!!! Dual extruder problem

Post by Josh » Wed Aug 13, 2014 7:10 pm

Q, I agree that the microstepping is probably not the issue - that's sorta what I was trying to point out earlier about how the control of the stepper motor drivers works.

What version of the Arduino IDE are you two using? And what, if any, extra libraries do you have?

Q*bert
Posts: 42
Joined: Sat Apr 12, 2014 7:45 pm
Location: Waukesha, WI

Re: Help!!!! Dual extruder problem

Post by Q*bert » Wed Aug 13, 2014 8:26 pm

Josh wrote:What version of the Arduino IDE are you two using? And what, if any, extra libraries do you have?
I've been using Arduino IDE v1.0.5 but I also tried v1.0.4 but it made no difference. Not using any extra libraries.

I've tried debugging further but with no success. The lack of debugging tools and the convoluted Marlin code make things difficult. Given that the stepping and thermistor routines have no logical connection, could it be that there's some sort of stack or memory corruption at the root of this?

brettb and I have one obvious thing in common - both our machines are from early 2013, though I've upgraded(?) my Rambo to v1.2g. Could it be a shielding or wiring harness issue? Has anyone else reported this type of problem?

User avatar
Levi8than
Posts: 82
Joined: Mon Apr 14, 2014 8:17 pm

Re: Help!!!! Dual extruder problem

Post by Levi8than » Wed Aug 13, 2014 8:38 pm

Q*bert wrote:The lack of debugging tools and the convoluted Marlin code make things difficult.
I haven't tried, but why is this different than any other Arduino project? You should be able to print debug messages and have them show up in your console while connected via usb.
You may even be able to set up the in circuit debugger and step through the code, but I would avoid that if you can and just try text prints where possible.

Josh
Site Admin
Posts: 91
Joined: Thu Apr 10, 2014 3:32 pm

Re: Help!!!! Dual extruder problem

Post by Josh » Wed Aug 13, 2014 9:15 pm

Looking through the newer Marlin's Configuration_adv.h, I found the microstep pin table:
(format is [microstep mode],[MS1 pin write status], [MS2 pin write status])
#define MICROSTEP1 LOW,LOW
#define MICROSTEP2 HIGH,LOW
#define MICROSTEP4 LOW,HIGH
#define MICROSTEP8 HIGH,HIGH
#define MICROSTEP16 HIGH,HIGH
That shows that x1 and x2 microstepping are the only modes with MS2 LOW; since one of the changes that has occurred here is using the E1 stepper motor driver for the first time, it may be that the E1 driver's MS2 pin is behaving strangely (I actually noted in the "M350" echoes from before, that the E1 MS2 pin was weird). I don't know how to test this externally, but an internal test may be to change the E1 MS2 pin in pins.h to something else, so when the Atmega2560 writes it HIGH, it's not actually the physical MS2 pin on the driver. "#define E1_MS2_PIN 64" is the default; perhaps "#define E1_MS2_PIN 4" may work (it's the PS_ON pin as defined in pins.h below, which shouldn't have anything connected to it; make sure you change the #define PS_ON to -1 though).

What exactly was going on when you had it set to x2 microstepping, but you said you couldn't print?

Post Reply