Quantcast
Channel: Reprap Forum - Firmware - Marlin
Viewing all 12089 articles
Browse latest View live

Re: Auto Bed Leveling issues

$
0
0
Hi Roberts,

Thank you for your patience. Here are the results, as you suggested:

08:57:41.265 : N20 M502*22
08:57:41.265 : echo:Hardcoded Default Settings Loaded
08:57:58.046 : N21 M851 Z-22.13*103
08:58:01.304 : N22 M500*22
08:58:01.854 : echo:Settings Stored (667 bytes; crc 11866)
08:58:22.030 : N23 M501*22
08:58:22.050 : echo:V55 stored settings retrieved (667 bytes; crc 11866)
08:58:22.060 : echo:  G21    ; (mm)
08:58:22.060 : echo:Filament settings: Disabled
08:58:22.060 : echo:  M200 D1.75
08:58:22.060 : echo:  M200 T1 D1.75
08:58:22.060 : echo:  M200 D0
08:58:22.060 : echo:Steps per unit:
08:58:22.070 : echo:  M92 X80.00 Y80.00 Z400.00 E120.00
08:58:22.070 : echo:Maximum feedrates (units/s):
08:58:22.070 : echo:  M203 X80.00 Y80.00 Z100.00 E100.00
08:58:22.080 : echo:Maximum Acceleration (units/s2):
08:58:22.080 : echo:  M201 X200 Y200 Z100 E10000
08:58:22.090 : echo:Acceleration (units/s2): P R T
08:58:22.090 : echo:  M204 P200.00 R3000.00 T200.00
08:58:22.100 : echo:Advanced: B S T X Y Z E
08:58:22.110 : echo:  M205 B20000 S0.00 T0.00 X2.50 Y2.50 Z0.30 E5.00
08:58:22.110 : echo:Home offset:
08:58:22.110 : echo:  M206 X0.00 Y0.00 Z0.00
08:58:22.110 : echo:Hotend offsets:
08:58:22.110 : echo:  M218 T1 X0.00 Y0.00
08:58:22.120 : echo:Auto Bed Leveling:
08:58:22.120 : echo:  M420 S0
08:58:22.120 : echo:PID settings:
08:58:22.120 : echo:  M301 P31.73 I2.21 D113.72
08:58:22.130 : echo:  M304 P129.46 I10.33 D405.67
08:58:22.130 : echo:Z-Probe Offset (mm):
08:58:22.130 : echo:  M851 Z-22.13
08:58:26.279 : N24 M503*19
08:58:26.279 : echo:  G21    ; (mm)
08:58:26.279 : echo:Filament settings: Disabled
08:58:26.279 : echo:  M200 D1.75
08:58:26.289 : echo:  M200 T1 D1.75
08:58:26.289 : echo:  M200 D0
08:58:26.289 : echo:Steps per unit:
08:58:26.289 : echo:  M92 X80.00 Y80.00 Z400.00 E120.00
08:58:26.299 : echo:Maximum feedrates (units/s):
08:58:26.299 : echo:  M203 X80.00 Y80.00 Z100.00 E100.00
08:58:26.309 : echo:Maximum Acceleration (units/s2):
08:58:26.309 : echo:  M201 X200 Y200 Z100 E10000
08:58:26.309 : echo:Acceleration (units/s2): P R T
08:58:26.319 : echo:  M204 P200.00 R3000.00 T200.00
08:58:26.329 : echo:Advanced: B S T X Y Z E
08:58:26.329 : echo:  M205 B20000 S0.00 T0.00 X2.50 Y2.50 Z0.30 E5.00
08:58:26.329 : echo:Home offset:
08:58:26.339 : echo:  M206 X0.00 Y0.00 Z0.00
08:58:26.339 : echo:Hotend offsets:
08:58:26.339 : echo:  M218 T1 X0.00 Y0.00
08:58:26.339 : echo:Auto Bed Leveling:
08:58:26.339 : echo:  M420 S0
08:58:26.349 : echo:PID settings:
08:58:26.349 : echo:  M301 P31.73 I2.21 D113.72
08:58:26.349 : echo:  M304 P129.46 I10.33 D405.67
08:58:26.349 : echo:Z-Probe Offset (mm):
08:58:26.349 : echo:  M851 Z-22.13

With these settings, everytime I send a G29 I get a Fail Probe!!. See below:
09:43:06.583 : N35 G29*36
09:43:06.583 : current_position=(100.00, 100.00, 25.00) : >>> G29
09:43:06.594 : Machine Type: Cartesian
09:43:06.594 : Probe: FIX_MOUNTED_PROBE
09:43:06.594 : Probe Offset X:73 Y:-44 Z:-22.13 (Right-Front & Below Nozzle)
09:43:06.604 : Auto Bed Leveling: BILINEAR (disabled)
09:43:06.604 : current_position=(100.00, 100.00, 25.00) : set_probe_deployed
09:43:06.604 : deploy: 1
09:43:06.614 : do_probe_raise(20.00)
09:43:06.614 : >>> do_blocking_move_to(100.00, 100.00, 42.13)
09:43:09.622 : <<< do_blocking_move_to
09:43:09.632 : >>> do_blocking_move_to(100.00, 100.00, 42.13)
09:43:09.632 : <<< do_blocking_move_to
09:43:09.642 : current_position=(100.00, 100.00, 42.13) : setup_for_endstop_or_probe_move
09:43:09.642 : >>> probe_pt(180.00, 10.00, raise, 0, probe_relative)
09:43:09.642 : current_position=(100.00, 100.00, 42.13) :
09:43:09.652 : >>> do_blocking_move_to(107.00, 54.00, 42.13)
09:43:10.662 : <<< do_blocking_move_to
09:43:10.671 : current_position=(107.00, 54.00, 42.13) : set_probe_deployed
09:43:10.671 : deploy: 1
09:43:10.681 : current_position=(107.00, 54.00, 42.13) : >>> run_z_probe
09:43:10.681 : current_position=(107.00, 54.00, 42.13) : >>> do_probe_move
09:43:10.681 : >>> do_blocking_move_to(107.00, 54.00, 22.13)
09:43:14.201 : <<< do_blocking_move_to
09:43:14.201 : current_position=(107.00, 54.00, 22.13) : sync_plan_position
09:43:14.211 : current_position=(107.00, 54.00, 22.13) : <<< do_probe_move
09:43:14.211 : FAST Probe fail!
09:43:14.211 : current_position=(107.00, 54.00, 22.13) : <<< run_z_probe
09:43:14.221 : >>> do_blocking_move_to(107.00, 54.00, 42.13)
09:43:17.719 : <<< do_blocking_move_to
09:43:17.719 : Error:Probing failed
09:43:17.719 : <<< probe_pt
09:43:17.719 : current_position=(107.00, 54.00, 42.13) : set_probe_deployed
09:43:17.729 : deploy: 0
09:43:17.729 : >>> do_blocking_move_to(107.00, 54.00, 42.13)
09:43:17.729 : <<< do_blocking_move_to
09:43:17.739 : current_position=(107.00, 54.00, 42.13) : > probing complete
09:43:17.739 : current_position=(107.00, 54.00, 42.13) : clean_up_after_endstop_or_probe_move
09:43:17.739 : <<< G29
09:43:17.749 : X:107.00 Y:54.00 Z:42.13 E:0.00 Count X:8560 Y:4320 Z:16852

Does it make any sense to you guys?

Thanks,

Marcus

Set Z=5mm after homing G28

$
0
0
How to set , in Marlin, X=0 Y=0 and Z=5mm after G28 homing?

The raison is :to protecting my flex magnetique printbed by warming up , preventing the nozzle
touching or to close the bed .

Prusa i3 Stuck on E1 Heating...

$
0
0
Hi,

I just finished assembling a RepRap Guru Prusa i3 printer and am using Repetier-Host Mac 1.1.0 along with RepRapGuru_Marlin_v4 on Arduino 1.8.7. When I tried running it the first time, the LCD display showed "E1 Heating..." even after the extruder and heat bed had reached the target temperatures. I thought it might be that the temperature couldn't stabilize, so I ran a PID autotune. The temperature stays very stable now, but I still can't get past "E1 Heating...". From Repetier-Host I can get the extruder motor to retract the filament, but the printer won't accept a command to extrude, presumably because it doesn't register as heated. My thought would be that somewhere in the firmware the temperature readings are not triggering a successful condition. I know it is able to communicate with the thermistors because the PID tuning made a difference, so perhaps somewhere it expects a second extruder to heat up?

Attached my configuration file if that helps. Any help or insight into what might be going on would be appreciated, thanks!

-Leif

Re: Set Z=5mm after homing G28

$
0
0
I set the "#define Z_CLEARANCE_DEPLOY_PROBE 10" even though I do not deploy the probe
And "#define Z_CLEARANCE_BETWEEN_PROBES 5"

Though you send a G28 Z5 ;move Z to 5mm from end-stops from Pronterface or similar 3D Printer program.

Re: Auto Bed Leveling issues

$
0
0
What is your current offsets for

// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -50
#define Z_PROBE_OFFSET_RANGE_MAX 50

Re: Auto Bed Leveling issues

$
0
0
Hi Roberts,

The values you posted are my actual values.

Any suggestion?

Regards,

Marcus

Re: Auto Bed Leveling issues

$
0
0
Ok Guys,

Found the culprit. It was this line
 #define Z_PROBE_LOW_POINT          -10 // Farthest distance below the trigger-point to go before stopping.
When the errors were occurring I had the value set to zero (0). I changed to -10mm and now I can calibrate all points.

Doing my first test now and the bed went correctly to 0.33mm, which was my first layer height.

Thank you all for the help you provided.

Regards,

Marcus

Re: Prusa i3 Stuck on E1 Heating...

$
0
0
maybe you need to comment these out if you only have 1 extruder/heater

// #define TEMP_SENSOR_1 0
// #define TEMP_SENSOR_2 0

Re: Extruder direction voltage question

$
0
0
I think I found a solid solution. In planner.cpp I changed line 789(ish) from

if (de < 0) SBI(dm, E_AXIS);

to

if (de <= 0) SBI(dm, E_AXIS);

With this change, Idle direction for the extruder appears to be in the retract direction rather than the extrude direction. I do need to confirm more thoroughly that I haven't catastrophically damaged some other section of code. Logically direction shouldn't matter for the extruder when it isn't extruding or retracting, but I guess we will see.

Re: Set Z=5mm after homing G28

$
0
0
Hi

My settings are the same "#define Z_CLEARANCE_DEPLOY_PROBE 10" and "#define Z_CLEARANCE_BETWEEN_PROBES 5"

But by Auto homing , my Z hight is at min. 0.1 mm and still to close to the bed , my magnetique flex printbed temp. will stand for max. 150 degrees C , but the extruder go's 215 degrees C.

Therefore I will the head at min. 5mm from the bed when Auto homing or homing with G28 .

I have set already the 5mm Z hight in my print endscript , but when I home from my LCD display the head go's to 0.1mm min. hight .

Where must I made the settings in Marlin for it ?

Re: Set Z=5mm after homing G28

$
0
0
I Have a thumb nut on my Z-Axis end stop sensor mount.
This allows me to adjust the nozzle to within microns of the height needed for perfect adhesion and 1st layer print.

One of the hardest things that we learned during the 1st few days of owning a 3D Printer, is getting that first layer at the correct height.
It is also necessary to learn that when using a glass surface glue sticks make it much easier for filament adhesion.

My first prints were average in size and printed on the paper tape method. ("Blue Painters Tape") as this is the easiest to learn for beginners.

I first home the printer then lower the nozzle to it's lowest point, making sure a thin piece if paper will slide under the nozzle only when nozzle is raised to 0.2mm.
This is about the thickness of the paper and the first suggested layer height.

Having have a thumb screw on my Z-Axis sensor allows this adjustment to be made very quickly.

You can use use Z-Offset to change the Z Height using M851.
or
Marlin has access to the Z-Offset from the LCD allowing quick setting of the desired offset height.

The image below shows you my Whole bed is covered in 1 strip of Paper Tape.

[attachment 108632 TL-W3M.jpg]


Though in all fairness today I print on a many Bed surfaces...


[attachment 108633 Gutter.jpg]


Example "A change of bed surfaces from PEI Bed surface to ("image Below")


[attachment 108635 FloorTile.jpg]


Vinyl Floor Tile on the Bed surface the leftover piece cut from bed PEI installation on the floor tile. In just a couple minutes.
Why this strange test, to see how fast I could setup a temporary print surface for that special Print when the occasion arrives.

Re: Set Z=5mm after homing G28

$
0
0
Hi

For you is this a verry good solution , I see.

I have no trouble with the first layer on my bed , I use Mesh leveling ( 9 points) and is always , after a fiew testprints OK.

My problem is the distance from the bed when the printhead is at Home position X=0 Y=0 (rest position afther home command) , I wand this Z at least 5mm high.

Re: Set Z=5mm after homing G28

$
0
0
Not sure if this line affects homing but maybe worth trying

in configuration.h disabled by default

//#define Z_AFTER_PROBING 5 // Z position after probing is done

Re: Fan etc on external i2c-controller

$
0
0
v0.5 (first steps)

adds virtual ports 100-115 (maps to i2c ports 0-15) to m42 gcode

eg m42 p100 s255

new file pca9685.h add to main marlin directory
/**
 * Driver for the Philips PCA9685 LED driver.
 * Written by Peter Ellens Dec 2018
   Based on PCA9632 Driver by Robert Mendon Feb 2017.
 */

#ifndef __PCA9685_H__
#define __PCA9685_H__

/* Register addresses */
#define PCA9685_MODE1_REG           (byte)0x00
#define PCA9685_MODE2_REG           (byte)0x01
#define PCA9685_SUBADR1_REG         (byte)0x02
#define PCA9685_SUBADR2_REG         (byte)0x03
#define PCA9685_SUBADR3_REG         (byte)0x04
#define PCA9685_ALLCALL_REG         (byte)0x05
#define PCA9685_LED0_REG            (byte)0x06 // Start of LEDx regs, 4B per reg, 2B on phase, 2B off phase, little-endian
#define PCA9685_PRESCALE_REG        (byte)0xFE
#define PCA9685_ALLLED_REG          (byte)0xFA

// Mode1 register pin layout
#define PCA9685_MODE_RESTART        (byte)0x80
#define PCA9685_MODE_EXTCLK         (byte)0x40
#define PCA9685_MODE_AUTOINC        (byte)0x20
#define PCA9685_MODE_SLEEP          (byte)0x10
#define PCA9685_MODE_SUBADR1        (byte)0x08
#define PCA9685_MODE_SUBADR2        (byte)0x04
#define PCA9685_MODE_SUBADR3        (byte)0x02
#define PCA9685_MODE_ALLCALL        (byte)0x01

// Mode2 register pin layout
#define PCA9685_MODE_INVRT          (byte)0x10
#define PCA9685_MODE_OCH            (byte)0x08
#define PCA9685_MODE_TOTEM_POLE     (byte)0x04
#define PCA9685_MODE_OUTNE1         (byte)0x02
#define PCA9685_MODE_OUTNE0         (byte)0x01

#define PCA9685_PWM_FULL            (uint16_t)0x01000 // Special value for full on/full off LEDx modes

void pca9685_set_port_PWM8(const uint8_t port, uint16_t pwm);
void pca9685_set_port_PWM16(const uint8_t port, uint16_t pwm);

#endif // __PCA9685_H__

new file pca9685.cpp add to main marlin directory
/**
 * Driver for the Philips PCA9685 LED driver.
 * Written by Peter Ellens Dec 2018
   Based on PCA9632 Driver by Robert Mendon Feb 2017.
 */

#include "MarlinConfig.h"

#ifdef PCA9685

#include "pca9685.h"
#include 

#define PCA9685_MODE1_VALUE   PCA9685_MODE_ALLCALL|PCA9685_MODE_AUTOINC
#define PCA9685_MODE2_VALUE   PCA9685_MODE_TOTEM_POLE


#define PCA9685_ADDRESS             (byte)0x40

byte PCA9685_init = 0;

static void PCA9685_WriteRegister(const byte addr, const byte regadd, const byte value) {
  Wire.beginTransmission(addr);
  Wire.write(regadd);
  Wire.write(value);
  Wire.endTransmission();
}

static void PCA9685_WriteAllRegisters(const byte addr, const byte regadd, const byte value1, const byte value2, const byte value3, const byte value4) {
  Wire.beginTransmission(addr);
  Wire.write(regadd);
  Wire.write(value1);
  Wire.write(value2);
  Wire.write(value3);
  Wire.write(value3);
  Wire.endTransmission();
}
void pca9685_set_port_PWM16(const uint8_t port, uint16_t pwm) {
  byte on_l=0;
  byte on_h=0;
  byte off_l=0;
  byte off_h=0;


  Wire.begin();
  if (!PCA9685_init) {

    PCA9685_init = 1;
    PCA9685_WriteRegister(PCA9685_ADDRESS,PCA9685_MODE1_REG, PCA9685_MODE1_VALUE);
    PCA9685_WriteRegister(PCA9685_ADDRESS,PCA9685_MODE2_REG, PCA9685_MODE2_VALUE);
  }

  if (pwm > PCA9685_PWM_FULL ) pwm = PCA9685_PWM_FULL;

  if (pwm == PCA9685_PWM_FULL ) on_h = (PCA9685_PWM_FULL&0x1F00)>>8;
  else if (pwm == 0) off_h = (PCA9685_PWM_FULL&0x1F00)>>8;
  else {
    off_h = (pwm&0xF00)>>8;
    off_l = pwm&0xFF;
  }

  PCA9685_WriteAllRegisters(PCA9685_ADDRESS,PCA9685_LED0_REG+(4*port), on_h, on_l, off_h, off_l);
}

void pca9685_set_port_PWM8(const uint8_t port, uint16_t pwm) {
  if (pwm >= 255 ) pwm = 256;
  pca9685_set_port_PWM16(port, pwm<<4);
}

#endif // PCA9685

add this to Configuration.h
// Support for PCA9685 PWM driver
#define PCA9685

add this near the top of Marlin_main.cpp after #include "parser.h"
#ifdef PCA9685
#include "pca9685.h"
#endif

Next find the M42 section of code in Marlin_main.cpp
inline void gcode_M42() {
  if (!parser.seenval('S')) return;
  const byte pin_status = parser.value_byte();

  const pin_t pin_number = parser.byteval('P', LED_PIN);
  if (pin_number < 0) return;

  if (!parser.boolval('I') && pin_is_protected(pin_number)) return protected_pin_err();

  pinMode(pin_number, OUTPUT);
  digitalWrite(pin_number, pin_status);
  analogWrite(pin_number, pin_status);


and change it to
inline void gcode_M42() {
  if (!parser.seenval('S')) return;
  const byte pin_status = parser.value_byte();

  const pin_t pin_number = parser.byteval('P', LED_PIN);
  if (pin_number < 0) return;

  if (!parser.boolval('I') && pin_is_protected(pin_number)) return protected_pin_err();

  #ifdef PCA9685
  if (pin_number < 100) {
  #endif

  pinMode(pin_number, OUTPUT);
  digitalWrite(pin_number, pin_status);
  analogWrite(pin_number, pin_status);

  #ifdef PCA9685
  }
  else {
    pca9685_set_port_PWM8(pin_number-100, pin_status);
  }
  #endif


no idea how controller does the auto fan yet.... but this makes it somewhat useful.

Gcode help needed

$
0
0
Hello All!
I have an Anycubic i3 Mega and to make the bed cool faster I installed a fan to cool that when printing finished. It's the "end" gcode:

M117 Printjob done!
M104 S0 ; turn off hotend
G1 X0 Y200 F2000 ; move bed to front
M82 ; relative positioning for extruder only
G92 E0 ; zero the extruded length
G1 F200 E-5 ; retract 5mm
M84 ; disable motors
; BED COOLER
M42 P57 S255 ; start fan
M190 R30 ; wait until bed temp 30°C
M42 P57 S0 ; stop fan
M140 S0 ; turn off bed
;
M106 S0 ; turn off fan

My only problem is that the M190 resets the printjob timer.
Can you help me, how to modify the above gcode to keep the waiting for temp, but not resetting the timer?
Thank you in advance!

Re: Gcode help needed

$
0
0
Try
[marlinfw.org]


M84 ; disable motors
; BED COOLER
M42 P57 S255 ; start fan
G1 X0 Y200 F2000 ; move bed to front
M190 R30 ; wait until the bed reaches 30 degrees before continuing
M42 P57 S0 ; stop fan
M140 S0 ; turn off bed
;
M106 S0 ; turn off fan

Filament purge speed

$
0
0
Ultimaker2 has a autofeeder to load filament tru the tube ad fast speed, slows down before entering the nozzle. Now can this be done by Marlin for my bowden setup? I have bondtech extruder and when I select filament change from the menu I need to purge 10times before the filament reach the nozzle..

Trouble configuring 3d touch z probe

$
0
0
G'day everyone,
first of all great forums, lots of good information around here. Plenty of which has come in handy in the past.

Im having some trouble trying to setup my new z probe.
I have purchased a 3d touch z probe and have plugged the 2 pin connector into the zmin, and the 3 pin connector into the zmax.
The trouble i have is when i try and configure marlin.

under z probe options in configuration.h i have
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

then if i enable either bltouch or both of
//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector.
//#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles

when i try to verify i recieve the same error:
"servo0_pin must be defined for your servo or bltouch"

however i cannot find where to define the pin for servo 0.
cannot find anything to do with servo in pins.h or pins_minirambo.h.

i have enabled num_servos 1 in configuration.h but this is the only servo related line i can find.
when i go onto the 3d touch wiki page, i still cannot find the specific lines they are after anywhere in my marlin config.

I am fairly new with marlin but hoping someone could lend a hand,

Thanks.

Jim.

Re: Trouble configuring 3d touch z probe

Re: Trouble configuring 3d touch z probe

Viewing all 12089 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>