1

Topic: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Decided to start a regular thread about this in case someone else decides they want to remove the auto bed level and because the original problem ended up not being with OctoPi itself.

I removed the auto bed level 'system' and placed the endstop on the z axis as seen here: http://www.thingiverse.com/thing:852608
I removed the auto bed level commands from the start g-code and reset the z offset in slic3r to 0.

When I home all the axes and they all home correctly, which means it homes X and Y, moves to the middle of the bed and homes Z. So I started a print. So it homes all the axes. Then returns to the origin. Then goes back to the middle of the bed and homes Z again and moves into/past the z endstop by several mm. It does this in OctoPi and in RH. It's doing this because this is the behavior the Workbench uses to 'push' the bed level arm into a neutral position above the nozzles.

My start G-code:
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle

I've tried removing the G1 Z5 F5000 command from the g-code, I've tried to add a z offset to slic3r, and that hasn't worked. I think it's just assuming that the endstop is still on the bed level arm and trying to push it into its neutral position. I've adjusted Marlin firmware on my i3 at home, but not on a Solidoodle. Anyone done this specifically? Or could give me the right direction to look? I know this isn't the most popular printer out there, but someone has at least done this, because the person who posted the thingiverse(http://www.thingiverse.com/thing:852608) model has a modified firmware, but I'm not sure if it's for the cyclops mount or the endstop relocation.

FuseBox 1.5 CoreXY - e3dv6 - Graphic Smart Display
Solidoodle 2 - e3dv6 - Hobb Goblin - e3d Titan - lawsy carriages - Direct Drive Y Axis - T8 Z axis - OctoPi

2

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

@jagowilson I'll post the printer code soon, just busy with our other 3d printer and our middle school student's "Shark Tank" projects.

FuseBox 1.5 CoreXY - e3dv6 - Graphic Smart Display
Solidoodle 2 - e3dv6 - Hobb Goblin - e3d Titan - lawsy carriages - Direct Drive Y Axis - T8 Z axis - OctoPi

3 (edited by jagowilson 2015-11-13 20:14:43)

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

try this start GCode:

G21; Set units to milimeters
G90; Set absolute coordinates
G92 E0; Reset extruder
G28 X0 Y0; Home x and y axis
G1 X100 Y100 F4000; Center extruder above bed
G28 Z0; Home Z axis

Place this in Repetier's start code, not Slic3r's, as it will be the same for all slicers that you use. The centering coordinates for "G1 X100 Y100" will of course be different. It's okay if it isn't actually centered--the goal is to get the nozzle (both nozzles) above the bed before homing Z.

4 (edited by widespreaddeadhead 2015-11-16 15:56:19)

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

jagowilson wrote:

try this start GCode:

G21; Set units to milimeters
G90; Set absolute coordinates
G92 E0; Reset extruder
G28 X0 Y0; Home x and y axis
G1 X100 Y100 F4000; Center extruder above bed
G28 Z0; Home Z axis

Place this in Repetier's start code, not Slic3r's, as it will be the same for all slicers that you use. The centering coordinates for "G1 X100 Y100" will of course be different. It's okay if it isn't actually centered--the goal is to get the nozzle (both nozzles) above the bed before homing Z.

Didn't work sad
Although I only put it in the start G-code for slic3r, couldn't find a Repetier start code option.
Everything ran fine, until right when the printer starts printing, it still applies an offset and smashes the bed into the nozzles and carriage. I'll get the code from RH that runs and post it shortly.

[EDIT]

From start to finish:

Connected to the printer
Home All Axes
Turned on heat bed and extruder
sliced .stl
Started print when temps were reached


Printer code:
  9:48:56 AM: Attempting to connect to printer
  9:48:56 AM: Connection opened
> 9:48:56 AM: N1 M110 *2
> 9:48:56 AM: N2 M115 *4
> 9:48:56 AM: N4 M111 S6 *67
< 9:48:56 AM: FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup MACHINE_TYPE:Solidoodle_Workbench EXTRUDER_COUNT:2 FIRMWARE_VERSION:Dec  1 201412:40:43 FIRMWARE_URL:http://support.solidoodle.com/hc/en-us/articles/202678280-Solidoodle-Motherboard-Gerbers-and-Firmware-Source-Files
> 9:48:56 AM: N5 M111 S6 *66
> 9:49:15 AM: N13 G28 X0.00 Y0.00 Z0.00 *100
> 9:49:43 AM: N18 M140 S60 *74
> 9:49:43 AM: N19 M104 S180 *116
  9:50:20 AM: <Slic3r> => Processing triangulated mesh
  9:50:20 AM: <Slic3r> => Generating perimeters
  9:50:21 AM: <Slic3r> => Preparing infill
  9:50:21 AM: <Slic3r> => Infilling layers
  9:50:21 AM: <Slic3r> => Generating skirt
  9:50:21 AM: <Slic3r> => Exporting G-code to /Users/3dp/Library/Repetier/tempobj.gcode
  9:50:21 AM: <Slic3r> Done. Process took 0 minutes and 0.371 seconds
  9:50:21 AM: <Slic3r> Filament required: 458.0mm (1.1cm3)
> 9:54:11 AM: N108 G21 *51
> 9:54:11 AM: N109 G90 *56
> 9:54:11 AM: N110 G92 E0.0000 *73
> 9:54:11 AM: N111 G28 X0.00 Y0.00 *51
> 9:54:20 AM: N113 G1 X100.00 Y100.00 F4000.00 *70
> 9:54:20 AM: N114 G28 Z0.00 *83
> 9:54:20 AM: N115 M190 S60 *123
> 9:54:20 AM: N116 M104 S180 *74
> 9:54:34 AM: N118 G21 *50
> 9:54:34 AM: N119 G90 *57
> 9:54:34 AM: N120 G92 E0.0000 *74
> 9:54:34 AM: N121 G28 X0.00 Y0.00 *48
> 9:54:44 AM: N123 G1 X152.00 Y152.00 F4000.00 *69
> 9:54:44 AM: N124 G28 Z0.00 *80
> 9:54:44 AM: N125 M109 S180 *71
> 9:54:44 AM: N126 G21 *63
> 9:54:57 AM: N128 G90 *59
> 9:55:07 AM: N130 M82 *59
> 9:55:07 AM: N131 G92 E0.0000 *74
> 9:55:07 AM: N132 G1 E-1.0000 F1800.00 *30
> 9:55:07 AM: N133 G92 E0.0000 *72
> 9:55:07 AM: N134 G1 Z0.20 F6000.00 *38
> 9:55:07 AM: N135 G1 X65.54 Y79.83 F6000.00 *71
> 9:55:07 AM: N136 G1 E1.0000 F1800.00 *55
> 9:55:07 AM: N137 G1 X67.82 Y78.63 E1.0924 F1620.00 *53
  9:55:07 AM: Printing layer 1 of 1
> 9:55:07 AM: N138 G1 X70.50 Y78.19 E1.1902 *118
> 9:55:07 AM: N139 G1 X233.50 Y78.19 E7.0500 *75
> 9:55:07 AM: N140 G1 X236.04 Y78.58 E7.1424 *66
> 9:55:07 AM: N141 G1 X238.34 Y79.74 E7.2348 F1620.00 *2
> 9:55:07 AM: N142 G1 X240.17 Y81.54 E7.3273 *79
> 9:55:07 AM: N143 G1 X241.37 Y83.82 E7.4197 *74
> 9:55:07 AM: N144 G1 X241.81 Y86.50 E7.5175 *71
> 9:55:07 AM: N145 G1 X241.81 Y217.50 E12.2268 *64
> 9:55:07 AM: N146 G1 X241.41 Y220.04 E12.3193 *76
> 9:55:07 AM: N147 G1 X240.26 Y222.34 E12.4117 *71
> 9:55:07 AM: N148 G1 X238.46 Y224.17 E12.5041 *69
> 9:55:07 AM: N149 G1 X236.18 Y225.37 E12.5966 *78
> 9:55:07 AM: N150 G1 X233.50 Y225.81 E12.6943 *70
> 9:55:07 AM: N151 G1 X70.50 Y225.81 E18.5541 *117
> 9:55:07 AM: N152 G1 X67.96 Y225.41 E18.6465 *114
> 9:55:09 AM: N154 G1 X65.66 Y224.26 E18.7390 *117
> 9:55:10 AM: N155 G1 X63.83 Y222.46 E18.8314 *122
> 9:55:10 AM: N156 G1 X62.63 Y220.18 E18.9238 *113
> 9:55:10 AM: N157 G1 X62.19 Y217.50 E19.0216 *113
> 9:55:10 AM: N158 G1 X62.19 Y86.50 E23.7310 *77
  9:55:11 AM: Send emergency stop to printer. You may need to reset the printer for a restart!




Here are the first bunch of lines from the generated G-code:
; generated by Slic3r 1.2.9 on 2015-11-16 at 09:50:21

; external perimeters extrusion width = 0.48mm
; perimeters extrusion width = 0.48mm
; infill extrusion width = 0.48mm
; solid infill extrusion width = 0.48mm
; top infill extrusion width = 0.48mm

M190 S60 ; set bed temperature
M104 S180 ; set temperature
G21; set units to mm
G90; set absolute cordinates
G92 E0; reset extruder
G28 X0 Y0; home x and y axis
G1 X152 Y152 F4000; center extruder above bed
G28 Z0; home z axis

M109 S180 ; wait for temperature to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
G1 E-1.00000 F1800.00000
G92 E0
G1 Z0.198 F6000.000
G1 X65.541 Y79.828 F6000.000
G1 E1.00000 F1800.00000
G1 X67.817 Y78.632 E1.09243 F1620.000
G1 X70.500 Y78.187 E1.19020
G1 X233.500 Y78.187 E7.04997
G1 X236.040 Y78.585 E7.14240
G1 X238.337 Y79.740 E7.23483 F1620.000
G1 X240.172 Y81.541 E7.32726
G1 X241.368 Y83.817 E7.41968
G1 X241.813 Y86.500 E7.51746
G1 X241.813 Y217.500 E12.22685
G1 X241.415 Y220.040 E12.31927
G1 X240.260 Y222.337 E12.41170
G1 X238.459 Y224.172 E12.50413
G1 X236.183 Y225.368 E12.59656
G1 X233.500 Y225.813 E12.69433
G1 X70.500 Y225.813 E18.55410
G1 X67.960 Y225.415 E18.64653
G1 X65.663 Y224.260 E18.73896
G1 X63.828 Y222.459 E18.83139
G1 X62.632 Y220.183 E18.92381
G1 X62.187 Y217.500 E19.02159
G1 X62.187 Y86.500 E23.73098
G1 X62.585 Y83.960 E23.82340
G1 X63.740 Y81.663 E23.91583

FuseBox 1.5 CoreXY - e3dv6 - Graphic Smart Display
Solidoodle 2 - e3dv6 - Hobb Goblin - e3d Titan - lawsy carriages - Direct Drive Y Axis - T8 Z axis - OctoPi

5 (edited by jagowilson 2015-11-16 21:46:04)

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

have you flashed your firmware to remove auto level support yet? it is either a failed endstop as Grob said or you haven't flashed away auto leveling. If auto leveling is enabled G28 Z0 appears to be interpreted much differently than usual. Not sure why they chose to modify G28 behavior instead of sticking to spec and inventing a new code (trivial), but I'm sure there is a reason.

6 (edited by grob 2015-11-16 23:01:55)

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Implementing auto-levelling in G28 would have probably been done for "ease of use".

I'm thinking if this only happens when you start a print, might be a Z-offset in firmware, and the bed is moving down beyond the sensor when you call the first Z movement:

> 9:55:07 AM: N134 G1 Z0.20 F6000.00 *38

Try this manually for us:

G28 X Y
G28 Z
M114
G1 Z0 F6000

I have a feeling you'll see the bed home normally for the G28 commands, the M114 command will print a non-zero z-coordinate (z-probe nozzle offset of the original printer), and when you run the G1 it will crash into the bed by that z distance.

If not then SD has done something even more complicated - there's no extra command in there, so I don't know how.

As jago says, solution is reflashing the firmware.
The original WB firmware is available from the solidoodle website, you could start with this and edit the z-offset / autolevelling out yourself (probably the most minimally-disruptive way to go about it...) before reflashing.

SD3. Mk2b + glass, heated enclosure, GT2 belts, direct drive y shaft, linear bearings, bowden-feed E3D v5 w/ 0.9° stepper
Smoothieboard via Octoprint on RPi

7 (edited by jagowilson 2015-11-17 00:00:54)

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

There's a constant you have to remove to disable bed leveling. It is ENABLE_AUTO_BED_LEVELING in Configuration.h. Look for a line with the text:

#define ENABLE_AUTO_BED_LEVELING

and remove it entirely, or comment it out like so:

//#define ENABLE_AUTO_BED_LEVELING

The firmware for your printer can be found here:
http://blog.solidoodle.com/wp-content/u … 012014.zip

In the zip file, edit the file SolidoodleWorkbench_12012014/Configuration.h and remove line 377.

8

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Wow, first, thanks for all the help!

Is this the guide I want to follow to flash the firmware? http://wiki.solidoodle.com/update-firmware#toc1

I'll probably have a lot more questions as I progress, but I have to make sure I do everything carefully and correctly, since this is our schools printer and not my own.

FuseBox 1.5 CoreXY - e3dv6 - Graphic Smart Display
Solidoodle 2 - e3dv6 - Hobb Goblin - e3d Titan - lawsy carriages - Direct Drive Y Axis - T8 Z axis - OctoPi

9

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Yes that's correct. The Workbench still uses the Rev E board but it has an additional daughterboard attached (Extrudrboard) for the second extruder.

10

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

New here, but I saw this and wanted to try to save you hours of fiddling around fixing this. 

I've already done this fix on the workbench I have.   It's really quite simple.

If you already have your endstop setup as it sounds like you do, you only need to know 3 Gcode commands to fix this:

M851 Z* - Change the preset offset for the Z height in the eeprom where the * represents the distance it comes up in mm
M500 - save the values to the eeprom
M501 - see the stored value in the eeprom

What you have to do is:
1)type M851 Z0 to set the offset at 0 and send it to the printer
2)type M500 to save to the eeprom and send it to the printer
3)set your start code to:

G28
G1 X145 Y145 F3000 ; move to back right corner

4)Start a print so that it will home the z, and then stop the print. 
5)Dial in your print bed level to match the new fixed bed height.
6)Repeat steps 5 & 6 until you get a consistent first layer.

You can use M501 to me sure that the offset saved to the eeperom

The command that starts the auto leveling process is actually M29.  Without the M29 code, you are not running the auto leveling code.  There is no need to eliminate the option from the firmware if you are not using the command.   Eliminating it from the firmware will not fix the problem either.

M28 is the auto homing code which will bring the extruders out, run the bed up to the stop, and then include the z offset.  This is where you are having the problem.  By eliminating the offset, you will eliminate the raise of the platform.  It took a lot of research and fussing with mine to figure this out.  Once I set the offset to 0, it all became a matter of manually leveling the bed, which is fussy but achievable.

11

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Thanks for taking the time to read my thread and comment. Also a big thanks for not only telling me what to do, but why I need to do it also, helps me to learn the g-code commands a bit better. Will try this tomorrow and let everyone know how it works!

FuseBox 1.5 CoreXY - e3dv6 - Graphic Smart Display
Solidoodle 2 - e3dv6 - Hobb Goblin - e3d Titan - lawsy carriages - Direct Drive Y Axis - T8 Z axis - OctoPi

12

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

IT WORKED! Thank you Someprinterguy!

FuseBox 1.5 CoreXY - e3dv6 - Graphic Smart Display
Solidoodle 2 - e3dv6 - Hobb Goblin - e3d Titan - lawsy carriages - Direct Drive Y Axis - T8 Z axis - OctoPi

13 (edited by hostinggeek 2016-02-23 21:01:18)

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

+1 for awesome info Someprinterguy!

Of course I know what I'm doing.  I googled it.

14

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Do any of you have a copy of this firmware?  I lost it on my laptop, and forgot to dump it to my server.  Feeling very noob right now.

Thanks in advance.


jagowilson wrote:

There's a constant you have to remove to disable bed leveling. It is ENABLE_AUTO_BED_LEVELING in Configuration.h. Look for a line with the text:

#define ENABLE_AUTO_BED_LEVELING

and remove it entirely, or comment it out like so:

//#define ENABLE_AUTO_BED_LEVELING

The firmware for your printer can be found here:
http://blog.solidoodle.com/wp-content/u … 012014.zip

In the zip file, edit the file SolidoodleWorkbench_12012014/Configuration.h and remove line 377.

Of course I know what I'm doing.  I googled it.

15

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

After fighting with the auto level paperweight for a year, I finally deleted it.  I give up.  It's just pure garbage.  It only took ten minutes to make it go away, including getting the bed level and dialed in.  If I never sit through G29 again it will be too soon.

Of course I know what I'm doing.  I googled it.

16

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

I know how you feel. 

I never had one on my Solidoodle, but did on my PrintrBot Simple, and after messing around with it for a few weeks, which included changing the sensors to higher quality ones, I installed a adjustable Z limit switch and never looked back.

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

17

Re: Relocating the Auto-Bed Level endstop to a traditional Z axis endstop.

Thanks for the input from everyone. Anyone have an .stl for the press to relocate the probe?