Retroplayer
Posts: 21
Joined: Thu Nov 13, 2014 5:31 am

Inaccurate dimensions on Makerbot (mightyboard) printers

I have a CTC Creator which is a clone of the Flashforge Creator. This uses a mightyboard and makerbot firmware. In Simplify3D support for this firmware is done through the GPX plugin.

After printing a part that 50mm wide and then measuring it at 44mm, I figured I needed to calibrate my steps/mm. Simple right? Just go into the tools/Firmware configuration and change the steps/mm on the X3G tab. Except this seems to do absolutely nothing for your print. It does however, affect the jog settings in the control panel.

So, if your print dimensions are off you are out of luck... I was about to give up on S3D and ask for a refund!

But, I decided to dedicate the better part of the day today trying to figure this out and I have success to report. Some of this information is in bits and pieces around this forum, but not so simple to find. So, if you are using a mightyboard based printer and looking to tune in your prints to the best accuracy, here you go:

First, gpx.exe in the Simplify3D folder is used to build the X3G code that is used by the mightyboard firmware. It is a command line tool that takes a few parameters. S3D passes these parameters to the gpx.exe tool. The problem is that S3D doesn't appear to pass the steps/mm settings and instead relies on MACHINETYPE based on the gcode flavor you pick in the firmware configuration dialog. Everything else you enter in that dialog is essentially ignored for your prints!

GPX does however take a custom *.ini file

1. Create a proper gpx.ini file and place it in the simplify3D main directory. I have attached the one that I have generated for my printer. This was based off the replicator dual xml file from ReplicatorG and then tweaked.
gpx.ini
(2.37 KiB) Downloaded 1253 times
2. In S3D click on the Edit Process Settings button and move to the Scripts tab. There, you will:
a. Uncheck the "Create X3G file..." box to stop S3D from talking to the GPX plugin
b. In the Additional terminal commands section, enter this: gpx -c gpx.ini "[output_filepath]"
c. (this may have only been needed for my printer) In the starting G-Code script, comment out this line: ;G1 Z0.4 ; position nozzle near the end of the script. I needed this because for some reason the bed stayed in that position when it went to print instead of going to zero. No idea why that stopped working with this hack when I didn't have this problem before. If somebody knows a better solution, please let me know.
CTC Creator.fff
(10.14 KiB) Downloaded 897 times
3. I am not positive this was absolutely necessary, but I also did an export on the Makerbot firmware configuration as creator.frm. Then I opened this in a text editor and removed one line that reads "gpxconfig,r2h." This is the string that gets passed to gpx for MACHINETYPE. If that parameter is passed, it will ignore the custom ini file. I removed it just to be on the safe side, but since we turned off X3G generation, it most likely isn't necessary.
(Wouldn't allow me to attach this file.)

I printed a 10x10x10mm cube and used this tool to dial in my steps/mm: http://mendelmax.com/RepRapCalculator.html

Before: X 9.5mm, Y 9.2mm, Z 10.2mm
After: X 10mm, Y 9.9mm, Z 10mm
(Measurements taken after allowing part to cool and shrink)

I have attached all the files I have created, mentioned above (assuming this forum will allow me to attach things with only a few posts so far.)

Hopefully this will be solved in future releases. All it would take is to get rid of the -m machinetype and pass the parameters entered into the firmware configuration dialog. Or at least generate an ini file from it and then call it.
Attachments
10mm_cube.stl
(2.89 KiB) Downloaded 1001 times
Last edited by Retroplayer on Sat Nov 15, 2014 9:07 pm, edited 3 times in total.
Retroplayer
Posts: 21
Joined: Thu Nov 13, 2014 5:31 am

Re: Inaccurate dimensions on Makerbot (mightyboard) printers

Code: Select all

;GPX.ini
;************ MACHINE ************
[machine]
; specifies the nominal filament diameter (either 1.75 or 3.0)
nominal_filament_diameter=1.75
; specifies the number of extruders on this machine
extruder_count=2
; sets the timeout for homing in seconds
timeout=20

;************ X AXIS ************
[x]
; sets the maximum feedrate for this axis in mm/s
max_feedrate=18000
; sets the home feedrate for this axis in mm/s
home_feedrate=2500
; sets the number of steps per mm of movement for this axis
; Pulley dia: 10.82mm / 1/8 step = 1/(10.82 * pi / 1600)
steps_per_mm=93.23493263157894
; sets the homing direction for this axis
; maximum = 1
; minimum = 0
endstop=1

;************ Y AXIS ************
[y]
; sets the maximum feedrate for this axis in mm/s
max_feedrate=18000
; sets the home feedrate for this axis in mm/s
home_feedrate=2500
; sets the number of steps per mm of movement for this axis
; Pulley dia: 10.82mm / 1/8 step = 1/(10.82 * pi / 1600)
steps_per_mm=95.70895884457498
; sets the homing direction for this axis
; maximum = 1
; minimum = 0
endstop=1

;************ Z AXIS ************
[z]
; sets the maximum feedrate for this axis in mm/s
max_feedrate=100000
; sets the home feedrate for this axis in mm/s
home_feedrate=1600
; sets the number of steps per mm of movement for this axis
; TR-8x8 Z axis = 1/(8/1600)
steps_per_mm=400
; sets the homing direction for this axis
; maximum = 0
; minimum = 1
endstop=1

;************ RIGHT EXTUDER (A AXIS) ************
[a]
; sets the maximum feedrate for this axis in mm/s
max_feedrate=1600
; sets the number of steps per mm of extrusion
; Steps/mm is calculated by dividing the 'drive gear steps per revolution'
; (in this case, equal to motor_steps) by the 'drive gear circumference'
; (drive gear diameter = 10.14) So we get: 1600/(PI * 0.14) = 50.235....
steps_per_mm=96.275201870333662468889989185642
; sets the number of steps per revolution
motor_steps=1600
; signals if this tool has a heated build platform
has_heated_build_platform=1

;************ LEFT EXTUDER (B AXIS) ************
[b]
; sets the maximum feedrate for this axis in mm/s
max_feedrate=1600
; sets the number of steps per mm of extrusion
steps_per_mm=96.275201870333662468889989185642
; sets the number of steps per revolution
motor_steps=1600
; signals if this tool has a heated build platform
has_heated_build_platform=0
Retroplayer
Posts: 21
Joined: Thu Nov 13, 2014 5:31 am

Re: Inaccurate dimensions on Makerbot (mightyboard) printers

Creator.frm contents

Code: Select all

setExtruderTempGcode,M104 S$ T#
stabilizeExtruderTempGcode,M133 T#
setBedTempGcode,M140 S$ T0
stabilizeBedTempGcode,M134 T0
reportTempGcode,M105
fanPowerGcode,M126 S$
fanOffGcode,M127
movementOverrideGcode,M220 S$
extrusionOverrideGcode,M221 S$
laserOnGcode,M600 S255
laserOffGcode,M601
syncLaserGcode,M400
initializeSD,M21
listSDfiles,M20
selectSDfile,M23 $
startSDprint,M24
pauseSDprint,M25
reportSDstatus,M27
homeAxisGcode,G28
toolchangeGcode,M135 T$
emergencyStopGcode,M112
enableMotorsGcode,M17
disableMotorsGcode,M18
waitForStartupCommand,1
startupCommand,start
serialAcknowledge,ok
commentChar,;
dwellGcode,G4 P$
macro1name,Macro 1
macro1,
macro2name,Macro 2
macro2,
macro3name,Macro 3
macro3,
serialCacheSize,63
useCommunicationTimeout,1
timeoutMilliseconds,10000

XstepsPerMM,93.234933
YstepsPerMM,95.708959
ZstepsPerMM,400
AstepsPerMM,96.2752018703
BstepsPerMM,96.2752018703
AaxisHasHBP,1
BaxisHasHBP,0
User avatar
KeyboardWarrior
Posts: 480
Joined: Thu Jun 19, 2014 5:02 pm

Re: Inaccurate dimensions on Makerbot (mightyboard) printers

Retroplayer wrote:I have a CTC Creator which is a clone of the Flashforge Creator. This uses a mightyboard and makerbot firmware. In Simplify3D support for this firmware is done through the GPX plugin.

After printing a part that 50mm wide and then measuring it at 44mm, I figured I needed to calibrate my steps/mm. Simple right? Just go into the tools/Firmware configuration and change the steps/mm on the X3G tab. Except this seems to do absolutely nothing for your print. It does however, affect the jog settings in the control panel.

So, if your print dimensions are off you are out of luck... I was about to give up on S3D and ask for a refund!

But, I decided to dedicate the better part of the day today trying to figure this out and I have success to report. Some of this information is in bits and pieces around this forum, but not so simple to find. So, if you are using a mightyboard based printer and looking to tune in your prints to the best accuracy, here you go:

First, gpx.exe in the Simplify3D folder is used to build the X3G code that is used by the mightyboard firmware. It is a command line tool that takes a few parameters. S3D passes these parameters to the gpx.exe tool. The problem is that S3D doesn't appear to pass the steps/mm settings and instead relies on MACHINETYPE based on the gcode flavor you pick in the firmware configuration dialog. Everything else you enter in that dialog is essentially ignored for your prints!

GPX does however take a custom *.ini file

1. Create a proper gpx.ini file and place it in the simplify3D main directory. I have attached the one that I have generated for my printer. This was based off the replicator dual xml file from ReplicatorG and then tweaked.
gpx.ini
2. In S3D click on the Edit Process Settings button and move to the Scripts tab. There, you will:
a. Uncheck the "Create X3G file..." box to stop S3D from talking to the GPX plugin
b. In the Additional terminal commands section, enter this: gpx -c gpx.ini "[output_filepath]"
c. (this may have only been needed for my printer) In the starting G-Code script, comment out this line: ;G1 Z0.4 ; position nozzle near the end of the script. I needed this because for some reason the bed stayed in that position when it went to print instead of going to zero. No idea why that stopped working with this hack when I didn't have this problem before. If somebody knows a better solution, please let me know.
CTC Creator.fff
3. I am not positive this was absolutely necessary, but I also did an export on the Makerbot firmware configuration as creator.frm. Then I opened this in a text editor and removed one line that reads "gpxconfig,r2h." This is the string that gets passed to gpx for MACHINETYPE. If that parameter is passed, it will ignore the custom ini file. I removed it just to be on the safe side, but since we turned off X3G generation, it most likely isn't necessary.
(Wouldn't allow me to attach this file.)

I printed a 10x10x10mm cube and used this tool to dial in my steps/mm: http://mendelmax.com/RepRapCalculator.html

Before: X 9.5mm, Y 9.2mm, Z 10.2mm
After: X 10mm, Y 9.9mm, Z 10mm
(Measurements taken after allowing part to cool and shrink)

I have attached all the files I have created, mentioned above (assuming this forum will allow me to attach things with only a few posts so far.)

Hopefully this will be solved in future releases. All it would take is to get rid of the -m machinetype and pass the parameters entered into the firmware configuration dialog. Or at least generate an ini file from it and then call it.

Great information, for step B, I believe you can just do gpx [output_file], and that will work.
MakerBotman
Posts: 6
Joined: Tue Nov 18, 2014 5:14 pm

Re: Inaccurate dimensions on Makerbot (mightyboard) printers

Thanks for the information.
goldfingerfif
Posts: 1
Joined: Wed Dec 10, 2014 1:54 am

Re: Inaccurate dimensions on Makerbot (mightyboard) printers

Thanks, I have a CTC, 3rd Generation if I remember from the setup document. I am going to try this out, mine is always printing against the back of the HBP as its home location. It is center left and right wise but always towards the back (Z axis motor or HBP power plug). I tried tweaking the X, Y, Z but it doesn't seem to do anything.

Return to “General Discussion and Tips”