Doodle3D / doodle3d-client

The Doodle3D web interface that people can access on computers or tablets to draw doodles and control the Doodle3D WiFi box.
www.doodle3d.com
GNU General Public License v2.0
3 stars 8 forks source link

Improve Makerbot start movements #241

Closed peteruithoven closed 10 years ago

peteruithoven commented 10 years ago

Currently the nozzle head can bumb into the bed on the start movements. It should create a mm of distance before moving over the bed. This should still make sure that residual material is left at the edge.

peteruithoven commented 10 years ago

As this can be damaging to the printer I'm giving this a higher priority.

Our current Makerbot Start gcode:

;@printer {printerType}
M136 (enable build)
M73 P0
G162 X Y F2000(home XY axes maximum)
G161 Z F900(home Z axis minimum)
G92 X0 Y0 Z-5 A0 B0 (set Z to -5)
G1 Z0.0 F900(move Z to '0')
G161 Z F100(home Z axis minimum)
M132 X Y Z A B (Recall stored home offsets for XYZAB axis)
G92 X152 Y72 Z0 A0 B0
G1 X-112 Y-73 Z0.5 F3300.0 (move to front left 'zero' position)
G92 X0 Y0 Z0.5 A0 B0
G1 X0 Y0 Z0.5 F3300.0 (move to waiting position)
G130 X20 Y20 A20 B20 (Lower stepper Vrefs while heating)
{if heatedBed};M109 S{printingBedTemp} T0
{if heatedBed}M140 S{printingBedTemp} T0
M104 S{printingTemp} T0
;M134 T0
M135 T0
M104 S{printingTemp} T0
M133 T0
G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults)
G1 F100 A10 ;extrude 10mm
G92 A0 ;reset again
G0 Z20

Makerware's start gcode:

M136 (enable build)
M73 P0
G162 X Y F2000(home XY axes maximum)
G161 Z F900(home Z axis minimum)
G92 X0 Y0 Z-5 A0 B0 (set Z to -5)
G1 Z0.0 F900(move Z to '0')
G161 Z F100(home Z axis minimum)
M132 X Y Z A B (Recall stored home offsets for XYZAB axis)
G92 X152 Y72 Z0 A0 B0
G1 X-112 Y-73 Z150 F3300.0 (move to waiting position)
G130 X20 Y20 A20 B20 (Lower stepper Vrefs while heating)
M109 S110 T0
M134 T0
M135 T0
M104 S230 T0
M133 T0
G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults)
;
; Makerbot Industries
; Miracle-Grue 2.4.1
; This file contains digital fabrication directives in gcode format
; For your 3D printer
; http://www.makerbot.com/support/makerware/documentation/slicer/
;
; Active extruders in print: 0
; Chunk 0
; Position  0
; Thickness 0.1
; Width 0.4
G1 X105.400 Y-74.000 Z0.270 F9000.000 (Extruder Prime Dry Move)
G1 X-112 Y-73 Z0.270 F1800.000 E25.000 (Extruder Prime Start)
G92 A0 B0 (Reset after prime)
G1 Z0.000000 F1000
G1 X-112.0 Y-73.0 Z0.0 F1000 E0.0
G92 E0
G1 X-112.000 Y-73.000 Z0.000 F9000; Move to start position
G1 X-112.000 Y-73.000 Z0.000 F3600; Set speed for tool change
M135 T0; Extruder change
M104 T0 S230; Temperature Change
G1 X-112.000 Y-73.000 Z0.000 F1500 A-1.30000; Retract
G1 X-112.000 Y-73.000 Z0.100 F1380; Travel move
M73 P0;

Makerbot gcode info: https://github.com/makerbot/s3g/blob/master/doc/GCodeProtocol.md https://github.com/makerbot/s3g/blob/master/doc/GCodeChanges.md

peteruithoven commented 10 years ago

Changed start of start gcode (most importantly the homing and going to start position) to:

M136 (enable build)
M73 P0 (Set build percentage to 0)
G162 X Y F2000 (home XY axes to maximum)
G161 Z F900 (home Z axis to minimum quick)
G92 X0 Y0 Z0 A0 B0 (set axis positions to 0)
G1 Z5.0 F900 (move Z axis down)
G161 Z F100 (home Z axis to minimum more precise)
G92 X0 Y0 Z0 A0 B0 (set axis positions to 0)
G1 Z1.0 F900 (move Z axis to savety height)
G1 X-264 Y-145 F3300.0 (move XY to start position)

I don't really understand the need for the M132. Because we move it manually to a start position we might want to use parameters there.

I think there is something wrong in the following bed temperature documentation. https://github.com/makerbot/s3g/blob/master/doc/GCodeProtocol.md M109 should set the bed temperature, it's also generated by the Makerware software. But we've commented it out and when I use it sets the extruder temperature... The printer doesn't seem to respond to M140. I'm not quite sure how to heat the bed... This might be a issue with GPX (gcode to S3G convertor) or our Wanhao printer.

peteruithoven commented 10 years ago

My new gcode didn't heat the bed, so I worked back from our original, the M140 was the part that starts the bed heating, but apparently this only works when you set the printer type to r2x (instead of r2) for example. This means a Wanhao printer should be added using r2x as printer type. (Using r2x, M109 still heats the right extruder.)

New start gcode:

;@printer {printerType}
M136 (enable build)
M73 P0 (Set build percentage to 0)
G162 X Y F2000 (home XY axes to maximum)
G161 Z F900 (home Z axis to minimum quick)
G92 X0 Y0 Z0 A0 B0 (set axis positions to 0)
G1 Z5.0 F900 (move Z axis down)
G161 Z F100 (home Z axis to minimum more precise)
G92 X0 Y0 Z0 A0 B0 (set axis positions to 0)
G1 Z2.0 F900 (move Z axis to safety height)
G1 X-264 Y-145 Z0 F3300.0 (move XY to start position)
G92 X0 Y0 Z0 A0 B0 (set axis position to 0)
G130 X20 Y20 A20 B20 (Lower stepper Vrefs while heating)
{if heatedBed}M140 S{printingBedTemp} T0 (Set bed temp)
M135 T0 (use first extruder)
M104 S{printingTemp} T0 (set extruder temp)
M133 T0 (Wait for extruder)
G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults)
G1 F100 A10 (extrude 10mm)
G92 A0 (reset extruder)
G0 Z20 (move up, to lose filament)
peteruithoven commented 10 years ago

https://github.com/Doodle3D/doodle3d-firmware/commit/27e5b89b2c6f80dde91c099bfdec845a8275b5d9

I also updated our wiki: http://doodle3d.com/help/makerbot-gcode