My bad about M117. Was trying to gather information. Making progress. I’ve got the source code for the 1.2.9 firmware on the Mega Pro. My issue is that I’m not sure what the gcode should look like. But I’ll add some snippets that I think are associated.
//=============================================================================
//=============================== LASER PRINT SETTING =========================
//=============================================================================#define MAX_X_SIZE 220
#define MAX_Y_SIZE 150
#define LASER_X_OFFSET 0 //The distance in the X direction between the laser and the extruder
#define LASER_Y_OFFSET 65 //The distance in the Y direction between the laser and the extruder#endif // CONFIGURATION_H
and then…
“G” Codes
*
- G0 → G1
- G1 - Coordinated Movement X Y Z E
- G2 - CW ARC
- G3 - CCW ARC
- G4 - Dwell S or P
- G5 - Cubic B-spline with XYZE destination and IJPQ offsets
- G10 - Retract filament according to settings of M207
- G11 - Retract recover filament according to settings of M208
- G12 - Clean tool
- G20 - Set input units to inches
- G21 - Set input units to millimeters
- G28 - Home one or more axes
- G29 - Detailed Z probe, probes the bed at 3 or more points. Will fail if you haven’t homed yet.
- G30 - Single Z probe, probes bed at X Y location (defaults to current XY location)
- G31 - Dock sled (Z_PROBE_SLED only)
- G32 - Undock sled (Z_PROBE_SLED only)
- G38 - Probe target - similar to G28 except it uses the Z_MIN endstop for all three axes
- G90 - Use Absolute Coordinates
- G91 - Use Relative Coordinates
- G92 - Set current position to coordinates given
- “M” Codes
- M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
- M1 - Same as M0
- M17 - Enable/Power all stepper motors
- M18 - Disable all stepper motors; same as M84
- M20 - List SD card. (Requires SDSUPPORT)
- M21 - Init SD card. (Requires SDSUPPORT)
- M22 - Release SD card. (Requires SDSUPPORT)
- M23 - Select SD file: “M23 /path/file.gco”. (Requires SDSUPPORT)
- M24 - Start/resume SD print. (Requires SDSUPPORT)
- M25 - Pause SD print. (Requires SDSUPPORT)
- M26 - Set SD position in bytes: “M26 S12345”. (Requires SDSUPPORT)
- M27 - Report SD print status. (Requires SDSUPPORT)
- M28 - Start SD write: “M28 /path/file.gco”. (Requires SDSUPPORT)
- M29 - Stop SD write. (Requires SDSUPPORT)
- M30 - Delete file from SD: “M30 /path/file.gco”
- M31 - Report time since last M109 or SD card start to serial.
- M32 - Select file and start SD print: “M32 [S<bytepos>] !/path/file.gco#”. (Requires SDSUPPORT)
Use P to run other files as sub-programs: "M32 P !filename#"
The '#' is necessary when calling from within sd files, as it stops buffer prereading
- M33 - Get the longname version of a path. (Requires LONG_FILENAME_HOST_SUPPORT)
- M42 - Change pin status via gcode: M42 P S. LED pin assumed if P is omitted.
- M43 - Monitor pins & report changes - report active pins
- M48 - Measure Z Probe repeatability: M48 P X Y V E L. (Requires Z_MIN_PROBE_REPEATABILITY_TEST)
- M75 - Start the print job timer.
- M76 - Pause the print job timer.
- M77 - Stop the print job timer.
- M78 - Show statistical information about the print jobs. (Requires PRINTCOUNTER)
- M80 - Turn on Power Supply. (Requires POWER_SUPPLY)
- M81 - Turn off Power Supply. (Requires POWER_SUPPLY)
- M82 - Set E codes absolute (default).
- M83 - Set E codes relative while in Absolute (G90) mode.
- M84 - Disable steppers until next move, or use S to specify an idle
duration after which steppers should turn off. S0 disables the timeout.
- M85 - Set inactivity shutdown timer with parameter S. To disable set zero (default)
- M92 - Set planner.axis_steps_per_mm for one or more axes.
- M104 - Set extruder target temp.
- M105 - Report current temperatures.
- M106 - Fan on.
- M107 - Fan off.
- M108 - Break out of heating loops (M109, M190, M303). With no controller, breaks out of M0/M1. (Requires EMERGENCY_PARSER)
- M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating
Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling
If AUTOTEMP is enabled, S<mintemp> B<maxtemp> F<factor>. Exit autotemp by any M109 without F
- M110 - Set the current line number. (Used by host printing)
- M111 - Set debug flags: “M111 S”. See flag bits defined in enum.h.
- M112 - Emergency stop.
- M113 - Get or set the timeout interval for Host Keepalive “busy” messages. (Requires HOST_KEEPALIVE_FEATURE)
- M114 - Report current position.
- M115 - Report capabilities. (Extended capabilities requires EXTENDED_CAPABILITIES_REPORT)
- M117 - Display a message on the controller screen. (Requires an LCD)
- M119 - Report endstops status.
- M120 - Enable endstops detection.
- M121 - Disable endstops detection.
- M126 - Solenoid Air Valve Open. (Requires BARICUDA)
- M127 - Solenoid Air Valve Closed. (Requires BARICUDA)
- M128 - EtoP Open. (Requires BARICUDA)
- M129 - EtoP Closed. (Requires BARICUDA)
- M140 - Set bed target temp. S
- M145 - Set heatup values for materials on the LCD. H B F for S (0=PLA, 1=ABS)
- M149 - Set temperature units. (Requires TEMPERATURE_UNITS_SUPPORT)
- M150 - Set Status LED Color as R U B. Values 0-255. (Requires BLINKM or RGB_LED)
- M155 - Auto-report temperatures with interval of S. (Requires AUTO_REPORT_TEMPERATURES)
- M163 - Set a single proportion for a mixing extruder. (Requires MIXING_EXTRUDER)
- M164 - Save the mix as a virtual extruder. (Requires MIXING_EXTRUDER and MIXING_VIRTUAL_TOOLS)
- M165 - Set the proportions for a mixing extruder. Use parameters ABCDHI to set the mixing factors. (Requires MIXING_EXTRUDER)
- M190 - Sxxx Wait for bed current temp to reach target temp. ** Waits only when heating! **
Rxxx Wait for bed current temp to reach target temp. ** Waits for heating or cooling. **
- M200 - Set filament diameter, D, setting E axis units to cubic. (Use S0 to revert to linear units.)
- M201 - Set max acceleration in units/s^2 for print moves: “M201 X Y Z E”
- M202 - Set max acceleration in units/s^2 for travel moves: “M202 X Y Z E” ** UNUSED IN MARLIN! **
- M203 - Set maximum feedrate: “M203 X Y Z E” in units/sec.
- M204 - Set default acceleration in units/sec^2: P R<extruder_only> T
- M205 - Set advanced settings. Current units apply:
S T minimum speeds
B
X, Y, Z, E- M206 - Set additional homing offset.
- M207 - Set Retract Length: S, Feedrate: F<units/min>, and Z lift: Z. (Requires FWRETRACT)
- M208 - Set Recover (unretract) Additional (!) Length: S and Feedrate: F<units/min>. (Requires FWRETRACT)
- M209 - Turn Automatic Retract Detection on/off: S<0|1> (For slicers that don’t support G10/11). (Requires FWRETRACT)
Every normal extrude-only move will be classified as retract depending on the direction.- M211 - Enable, Disable, and/or Report software endstops: S<0|1>
- M218 - Set a tool offset: “M218 T X Y”. (Requires 2 or more extruders)
- M220 - Set Feedrate Percentage: “M220 S” (i.e., “FR” on the LCD)
- M221 - Set Flow Percentage: “M221 S”
- M226 - Wait until a pin is in a given state: “M226 P S”
- M240 - Trigger a camera to take a photograph. (Requires CHDK or PHOTOGRAPH_PIN)
- M250 - Set LCD contrast: “M250 C” (0-63). (Requires LCD support)
- M260 - i2c Send Data (Requires EXPERIMENTAL_I2CBUS)
- M261 - i2c Request Data (Requires EXPERIMENTAL_I2CBUS)
- M280 - Set servo position absolute: “M280 P S<angle|µs>”. (Requires servos)
- M300 - Play beep sound S P
- M301 - Set PID parameters P I and D. (Requires PIDTEMP)
- M302 - Allow cold extrudes, or set the minimum extrude S. (Requires PREVENT_COLD_EXTRUSION)
- M303 - PID relay autotune S sets the target temperature. Default 150C. (Requires PIDTEMP)
- M304 - Set bed PID parameters P I and D. (Requires PIDTEMPBED)
- M355 - Turn the Case Light on/off and set its brightness. (Requires CASE_LIGHT_PIN)
- M380 - Activate solenoid on active extruder. (Requires EXT_SOLENOID)
- M381 - Disable all solenoids. (Requires EXT_SOLENOID)
- M400 - Finish all moves.
- M401 - Lower Z probe. (Requires a probe)
- M402 - Raise Z probe. (Requires a probe)
- M404 - Display or set the Nominal Filament Width: “W”. (Requires FILAMENT_WIDTH_SENSOR)
- M405 - Enable Filament Sensor flow control. “M405 D<delay_cm>”. (Requires FILAMENT_WIDTH_SENSOR)
- M406 - Disable Filament Sensor flow control. (Requires FILAMENT_WIDTH_SENSOR)
- M407 - Display measured filament diameter in millimeters. (Requires FILAMENT_WIDTH_SENSOR)
- M410 - Quickstop. Abort all planned moves.
- M420 - Enable/Disable Leveling (with current values) S1=enable S0=disable (Requires MESH_BED_LEVELING or ABL)
- M421 - Set a single Z coordinate in the Mesh Leveling grid. X Y Z (Requires MESH_BED_LEVELING)
- M428 - Set the home_offset based on the current_position. Nearest edge applies.
- M500 - Store parameters in EEPROM. (Requires EEPROM_SETTINGS)
- M501 - Restore parameters from EEPROM. (Requires EEPROM_SETTINGS)
- M502 - Revert to the default “factory settings”. ** Does not write them to EEPROM! **
- M503 - Print the current settings (in memory): “M503 S”. S0 specifies compact output.
- M540 - Enable/disable SD card abort on endstop hit: “M540 S”. (Requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
- M600 - Pause for filament change: “M600 X Y Z E<first_retract> L<later_retract>”. (Requires FILAMENT_CHANGE_FEATURE)
- M665 - Set delta configurations: “M665 L R S<segments/s>” (Requires DELTA)
- M666 - Set delta endstop adjustment. (Requires DELTA)
- M605 - Set dual x-carriage movement mode: “M605 S [X<x_offset>] [R<temp_offset>]”. (Requires DUAL_X_CARRIAGE)
- M851 - Set Z probe’s Z offset in current units. (Negative = below the nozzle.)
- M907 - Set digital trimpot motor current using axis codes. (Requires a board with digital trimpots)
- M908 - Control digital trimpot directly. (Requires DAC_STEPPER_CURRENT or DIGIPOTSS_PIN)
- M909 - Print digipot/DAC current value. (Requires DAC_STEPPER_CURRENT)
- M910 - Commit digipot/DAC value to external EEPROM via I2C. (Requires DAC_STEPPER_CURRENT)
- M350 - Set microstepping mode. (Requires digital microstepping pins.)
- M351 - Toggle MS1 MS2 pins directly. (Requires digital microstepping pins.)
- ************ SCARA Specific - This can change to suit future G-code regulations
- M360 - SCARA calibration: Move to cal-position ThetaA (0 deg calibration)
- M361 - SCARA calibration: Move to cal-position ThetaB (90 deg calibration - steps per degree)
- M362 - SCARA calibration: Move to cal-position PsiA (0 deg calibration)
- M363 - SCARA calibration: Move to cal-position PsiB (90 deg calibration - steps per degree)
- M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position)
- ************* SCARA End ***************
- ************ Custom codes - This can change to suit future G-code regulations
- M100 - Watch Free Memory (For Debugging). (Requires M100_FREE_MEMORY_WATCHER)
- M928 - Start SD logging: “M928 filename.gco”. Stop with M29. (Requires SDSUPPORT)
- M999 - Restart after being stopped by error
- “T” Codes
- T0-T3 - Select an extruder (tool) by index: “T F<units/min>”
*/
Also,
inline void gcode_G6()
{if ( code_seen(‘S’)) {
if(code_value_byte()>0)
{WRITE(HEATER_0_PIN, 1);
laser_status = 1;
}
else
{
WRITE(HEATER_0_PIN, 0);
laser_status = 0;
}
}
return ;}
Lastly, I followed the two wires from the connector to the Laser and cross referenced them to the 3D print head wiring. The two wires go to a circuit board which has 6 wires on the 3D print head. Two Fans (4 wires) and the Extruder (2 wires). It looks like the wires for the Extruder are the same wires for the Laser. Which now gets me thinking that the S value for the extruder is probably the Laser action.
Also found a similar post here.
@LightBurn does this help?
I’ll keep playing around to see if I can help.