Difference between revisions of "Sekret!"
Line 505: | Line 505: | ||
>IN: 50: ** End M776 Report | >IN: 50: ** End M776 Report | ||
>IN: 50: ****************************************************************** | >IN: 50: ****************************************************************** | ||
<br> | |||
<hr> | |||
=== M797 Report Sensors === | === M797 Report Sensors === |
Revision as of 13:46, 11 May 2020
Using the T with the ESR and 30M
Gcodes the customer shouldn't need
Diagnostics, reporting.
G38 Distance Probing
G38 will move the bed until a probe until contact is made, and report the position when contact is made, storing a list of coordinate points with depths. This is helpful for making the bed level (and potentially working on non-planar surfaces).
Usage
G38 Xn Yn Zn An Bn T# Pn Dn In Hn On Fn
Parameters
Xn relative move in this axis Yn relative move in this axis Zn relative move in this axis An relative move in this axis Bn relative move in this axis T# head where probe is loaded; if no T#, probe is not in a tool position; default: no T Pn probe connection If T is specified, P values can be: 0 : PA3 pin on 10-pin connector 1 : PA2 pin on 10-pin connector 2 : LIMIT1 pin on 18-pin connector 3 : LIMIT2 pin on 18-pin connector 4 : RTD1 pin on 18-pin connector 5 : RTD2 pin on 18-pin connector If T is not specified, P values can be: 0 : No direct connect probe; canbus based probe one *** must specify probeHead via T arg 1 : X Limit1 or W_RTD1 (sys30) 2 : X Limit2 or W_RTD2 (sys30) 3 : X Fault 4 : X Home 5 : unused 6 : Y Limit1 7 : Y Limit2 8 : Y Fault 9 : Y Home 10 : unused 11 : Z Limit1 12 : Z Limit2 13 : Z Fault 14 : Z Home 15 : unused 16 : A Limit1 17 : A Limit2 18 : A Fault 19 : A Home 20 : unused 21 : B Limit1 22 : B Limit2 23 : B Fault 24 : B Home 25 : unused 26 : C Limit1 27 : C Limit2 28 : C Fault 29 : C Home D only 1 is presently supported; other options for future development I is probe polarity; 0 if contact makes a circuit, 1 if contact breaks the circuit H head offset register to use for tool dimension O additional offset F feedrate in mm/min (nonpersistent)
Example
G38 Z-9 T# P3 D1 I1 F200
This command is decoded and executed by the printer as follows:
- G38 (probe)
- Z-9 (9 mm in Z toward 0)
- T# (target head)
- P3 (LIMIT2 pin on 18-pin connector)
- D1 (only option)
- I1 (contact breaks circuit)
- F200 (at 200 mm/smin)
M670 Toggle Y-Arm Light Now
Turn on Y-arm light immediately. S 0 - 100 for duty.
M671 Toggle X-Arm Lights
Toggle X-arm Lights S 0 - 100 for duty.
M672 Toggle Y-Arm with Sensor
See main Gcode page.
M673 Toggle Y-Arm Light Next
Toggle Y-arm light after all previous commands are finished. S 0 - 100 for duty.
M772 Reset All Metrics
In addition to info on the Code page, these other reports are available:
M772 - reset all internal data gathering to “0” state Sn - optional. If Sn != 0, then Sn is a mask of which reports to auto send when M30 is processed. S1 or S3 are typical user settings to get basic print info. Bit0 (0x01): enables M773 report (basic print stats) Bit1 (0x02): enables M774 report (system configuration) Bit2 (0x04): enables M774 report (queue metrics) Bit3 (0x08): enables M775 report (crashDataFromRam) Bit4 (0x10): enables M776 report (command and motionQ usage) Bit5 (0x20): enables M779 report (slice timing)
M773 Generate Basic Report
M773 generates a basic report of printing statistics (including average speed, number of primes, etc.)
Note: this report will be more meaningful if you use M772 to reset these counters at the start of a job.
Usage
M773
Parameters
N/A
Example
M773
- M773 (generate basic report)
Sample Output
>IN: 50: ****************************************************************** >IN: 50: ** Begin M773 - print job metrics Report >IN: 50: ****************************************************************** >IN: 50: >IN: 50: Time (s) Dist (m) >IN: 50: -------- -------- >IN: 50: Totals: 0.0 0.000 >IN: 50: >IN: 50: Printing moves: 0.0 0.000 >IN: 50: Non-printing moves 0.0 0.000 >IN: 50: >IN: 50: Accelerating: 0.0 0.000 >IN: 50: Cruising: 0.0 0.000 >IN: 50: Decelerating: 0.0 0.000 >IN: 50: >IN: 50: can e steps issued: 0 >IN: 50: approx filament (PI*d) 0.000 m >IN: 50: approx filament (PIr^2) 0.000 m >IN: 50: unprimes issued: 0 >IN: 50: primes issued: 0 >IN: 50: unprime-primes avoided: 0 >IN: 50: >IN: 50: ****************************************************************** >IN: 50: ** End M773 Report >IN: 50: ******************************************************************
M774 Generate Queue Report
M774 generates a queue metrics report:
Usage
M774
Parameters
N/A
Example
M774
- M774 (generate queue report)
Sample Output
>IN: 50: ****************************************************************** >IN: 50: ** Begin M774 - queue metrics Report >IN: 50: ****************************************************************** >IN: 50: >IN: 50: Total commands: 109 >IN: 50: Total moves: 0 >IN: 50: Max commands in CmdQue: 9 (60) >IN: 50: Max commands in motionQ: 0 (50) >IN: 50: Max commands in deferredCmdQue: 0 (15) >IN: 50: Max chars in raw RX buffer: 1 (256) >IN: 50: Max chars in urgent RX buffer: 0 (1024) >IN: 50: Max chars in normal RX buffer: 43 (6144) >IN: 50: Max chars in direct RX buffer: 0 (8192) >IN: 50: Max chars in serial TX buffer: 697 (6144) >IN: 50: Total serial TX chars rejected: 0 (6144) >IN: 50: >IN: 50: ****************************************************************** >IN: 50: ** End M774 Report >IN: 50: ******************************************************************
M775 Generate Crash Report
M775 generates a crash data report:
Usage
M775
Parameters
N/A
Example
M775
- M775 (generate queue report)
Sample Output
>IN: 50: ****************************************************************** >IN: 50: ** Begin M775 - current crashDataFromRAM Report >IN: 50: ****************************************************************** >IN: 50: >IN: 50: slice_1Hz = 1 >IN: 50: slice_10Hz = 5 >IN: 50: slice_100Hz = 9 >IN: 50: slice_1000Hz = 3 >IN: 50: lsiActualFreq = 0 >IN: 50: >IN: 50: CAN1->MCR = 0x00010044 >IN: 50: CAN1->MSR = 0x00000c00 >IN: 50: CAN1->TSR = 0x1c030303 >IN: 50: CAN1->IER = 0x00000000 >IN: 50: CAN1->ESR = 0x00000000 >IN: 50: CAN1->BTR = 0x0012000d >IN: 50: >IN: 50: CAN1->sTxMailBox[0].TIR = 0x89408004 >IN: 50: CAN1->sTxMailBox[0].TDTR = 0x00000008 >IN: 50: CAN1->sTxMailBox[0].TDLR = 0x00000008 >IN: 50: CAN1->sTxMailBox[0].TDHR = 0x00000008 >IN: 50: CAN1->sTxMailBox[1].TIR = 0x80088006 >IN: 50: CAN1->sTxMailBox[1].TDTR = 0x00000008 >IN: 50: CAN1->sTxMailBox[1].TDLR = 0x00000000 >IN: 50: CAN1->sTxMailBox[1].TDHR = 0x00000000 >IN: 50: CAN1->sTxMailBox[2].TIR = 0x880a0924 >IN: 50: CAN1->sTxMailBox[2].TDTR = 0x00000008 >IN: 50: CAN1->sTxMailBox[2].TDLR = 0x00000003 >IN: 50: CAN1->sTxMailBox[2].TDHR = 0x00000000 >IN: 50: >IN: 50: total_commandsProcessed = 109 >IN: 50: total_motionQprocessed = 0 >IN: 50: total_DeferredProcessed = 0 >IN: 50: total_charsRx = 2331 >IN: 50: total_charsTx = 22871 >IN: 50: total_canRx = 3233 >IN: 50: total_canTx = 1772 >IN: 50: >IN: 50: max_CommandsInQue = 9 >IN: 50: max_motionQvalidEntries = 0 >IN: 50: max_DeferredCommandsInQue = 0 >IN: 50: max_rawRxCharsInBuf = 1 >IN: 50: max_urgentRxCharsInBuf = 0 >IN: 50: max_normalRxCharsInBuf = 43 >IN: 50: max_directRxCharsInBuf = 0 >IN: 50: max_normalTxCharsInBuf = 697 >IN: 50: max_canRxQ_numMsg = 88 >IN: 50: max_canTxQ_numMsg = 34 >IN: 50: >IN: 50: curr_CommandsInQue = 5 >IN: 50: curr_motionQ.validEntries = 0 >IN: 50: curr_DeferredCommandsInQue = 0 >IN: 50: curr_rawRxCharsInBuf = 0 >IN: 50: curr_urgentRxCharsInBuf = 0 >IN: 50: curr_normalRxCharsInBuf = 0 >IN: 50: curr_normalTxCharsInBuf = 0 >IN: 50: curr_gs._canRxQ.numMsg = 0 >IN: 50: curr_gs._canRxQ.numMsg = 0 >IN: 50: >IN: 50: curr_rawRxIndexIn = 73 >IN: 50: curr_rawRxIndexOut = 73 >IN: 50: curr_urgentRxIndexIn = 0 >IN: 50: curr_urgentRxIndexOut = 0 >IN: 50: curr_normalRxIndexIn = 822 >IN: 50: curr_normalRxIndexOut = 822 >IN: 50: curr_normalTxIndexIn = 6084 >IN: 50: curr_normalTxIndexOut = 6126 >IN: 50: >IN: 50: _serialPortRxOverrunCnt = 0 >IN: 50: flushedRxCharsDuringAbort = 0 >IN: 50: >IN: 50: pendingAcknowledge = 0 >IN: 50: _gcodeCmdsReceived = 43 >IN: 50: _gcodeAcksSent = 43 >IN: 50: >IN: 50: _g4DwellTimer = 0 >IN: 50: _gcodePaused = 0 >IN: 50: _abortInProgress = 0 >IN: 50: _blockAllMotion = 1 >IN: 50: _blockAbsoluteMotion = 0 >IN: 50: _motionSensorTripped = 0 >IN: 50: _waitingFor.flags.u32 = 0x00000000 >IN: 50: _needToProcessDeferredCommands = 0 >IN: 50: >IN: 50: X.HomeSense.State = 1 >IN: 50: Y.HomeSense.State = 1 >IN: 50: Z.HomeSense.State = 2 >IN: 50: A.HomeSense.State = 2 >IN: 50: B.HomeSense.State = 2 >IN: 50: C.HomeSense.State = 2 >IN: 50: >IN: 50: X.FaultSense.State = 2 >IN: 50: Y.FaultSense.State = 2 >IN: 50: Z.FaultSense.State = 2 >IN: 50: A.FaultSense.State = 2 >IN: 50: B.FaultSense.State = 2 >IN: 50: C.FaultSense.State = 2 >IN: 50: >IN: 50: X.Limit1Sense.State = 2 >IN: 50: Y.Limit1Sense.State = 2 >IN: 50: Z.Limit1Sense.State = 2 >IN: 50: A.Limit1Sense.State = 2 >IN: 50: B.Limit1Sense.State = 2 >IN: 50: C.Limit1Sense.State = 2 >IN: 50: >IN: 50: X.Limit2Sense.State = 2 >IN: 50: Y.Limit2Sense.State = 2 >IN: 50: Z.Limit2Sense.State = 2 >IN: 50: A.Limit2Sense.State = 2 >IN: 50: B.Limit2Sense.State = 2 >IN: 50: C.Limit2Sense.State = 2 >IN: 50: >IN: 50: X.HasBeenHomed = 0 >IN: 50: Y.HasBeenHomed = 0 >IN: 50: Z.HasBeenHomed = 1 >IN: 50: A.HasBeenHomed = 1 >IN: 50: B.HasBeenHomed = 1 >IN: 50: C.HasBeenHomed = 1 >IN: 50: >IN: 50: _validFirmwareKey = 1 >IN: 50: >IN: 50: ****************************************************************** >IN: 50: ** End M775 Report >IN: 50: ******************************************************************
M776 Generate Motion Report
M776 generates a motion report:
Usage
M776
Parameters
N/A
Example
M776
- M776 (generate queue report)
Sample Output
>IN: 50: ****************************************************************** >IN: 50: ** Begin M776 - cmd/motionQ usage histograms Report >IN: 50: ****************************************************************** >IN: 50: >IN: 50: motionQ numEntries histogram at start of move (total moves: 0) >IN: 50: --: 0 (executed while forcing Q empty) >IN: 50: 1: 0 >IN: 50: 2: 0 >IN: 50: 3: 0 >IN: 50: 4: 0 >IN: 50: 5: 0 >IN: 50: 6: 0 >IN: 50: 7: 0 >IN: 50: 8: 0 >IN: 50: 9: 0 >IN: 50: 10: 0 >IN: 50: 11: 0 >IN: 50: 12: 0 >IN: 50: 13: 0 >IN: 50: 14: 0 >IN: 50: 15: 0 >IN: 50: 16: 0 >IN: 50: 17: 0 >IN: 50: 18: 0 >IN: 50: 19: 0 >IN: 50: 20: 0 >IN: 50: 21: 0 >IN: 50: 22: 0 >IN: 50: 23: 0 >IN: 50: 24: 0 >IN: 50: 25: 0 >IN: 50: 26: 0 >IN: 50: 27: 0 >IN: 50: 28: 0 >IN: 50: 29: 0 >IN: 50: 30: 0 >IN: 50: 31: 0 >IN: 50: 32: 0 >IN: 50: 33: 0 >IN: 50: 34: 0 >IN: 50: 35: 0 >IN: 50: 36: 0 >IN: 50: 37: 0 >IN: 50: 38: 0 >IN: 50: 39: 0 >IN: 50: 40: 0 >IN: 50: 41: 0 >IN: 50: 42: 0 >IN: 50: 43: 0 >IN: 50: 44: 0 >IN: 50: 45: 0 >IN: 50: 46: 0 >IN: 50: 47: 0 >IN: 50: 48: 0 >IN: 50: 49: 0 >IN: 50: 50: 0 >IN: 50: >IN: 50: ****************************************************************** >IN: 50: >IN: 50: cmdQue numEntries histogram when cmd received (total cmds: 109) >IN: 50: >IN: 50: 0: 89 >IN: 50: 1: 2 >IN: 50: 2: 4 >IN: 50: 3: 2 >IN: 50: 4: 4 >IN: 50: 5: 2 >IN: 50: 6: 2 >IN: 50: 7: 2 >IN: 50: 8: 2 >IN: 50: 9: 0 >IN: 50: 10: 0 >IN: 50: 11: 0 >IN: 50: 12: 0 >IN: 50: 13: 0 >IN: 50: 14: 0 >IN: 50: 15: 0 >IN: 50: 16: 0 >IN: 50: 17: 0 >IN: 50: 18: 0 >IN: 50: 19: 0 >IN: 50: 20: 0 >IN: 50: 21: 0 >IN: 50: 22: 0 >IN: 50: 23: 0 >IN: 50: 24: 0 >IN: 50: 25: 0 >IN: 50: 26: 0 >IN: 50: 27: 0 >IN: 50: 28: 0 >IN: 50: 29: 0 >IN: 50: 30: 0 >IN: 50: 31: 0 >IN: 50: 32: 0 >IN: 50: 33: 0 >IN: 50: 34: 0 >IN: 50: 35: 0 >IN: 50: 36: 0 >IN: 50: 37: 0 >IN: 50: 38: 0 >IN: 50: 39: 0 >IN: 50: 40: 0 >IN: 50: 41: 0 >IN: 50: 42: 0 >IN: 50: 43: 0 >IN: 50: 44: 0 >IN: 50: 45: 0 >IN: 50: 46: 0 >IN: 50: 47: 0 >IN: 50: 48: 0 >IN: 50: 49: 0 >IN: 50: 50: 0 >IN: 50: 51: 0 >IN: 50: 52: 0 >IN: 50: 53: 0 >IN: 50: 54: 0 >IN: 50: 55: 0 >IN: 50: 56: 0 >IN: 50: 57: 0 >IN: 50: 58: 0 >IN: 50: 59: 0 >IN: 50: 60: 0 >IN: 50: >IN: 50: ****************************************************************** >IN: 50: ** End M776 Report >IN: 50: ******************************************************************
M797 Report Sensors
Generates a text report of sensor states in 3D-View text window!
M797 I1 reports what is homed and what is not:
>GB: Logical State >GB: A S H L L >GB: x t D o i i F >GB: i e i m m m l >GB: s p r e 1 2 t >GB: == = = = = = = >GB: X: - F - . . . >GB: Y: - F H . . . >GB: Z: - F . . . .
Old style:
>GB: AX ST DR HM L1 L2 FT >GB: == == == == == == == >GB: X 1 1 1 0 0 1 >GB: Y 1 1 0 0 0 1 >GB: Z 1 0 1 0 0 1 >GB: A 0 0 1 0 0 1 >GB: B 0 0 0 0 0 0 >GB: C 0 0 0 0 0 0
AX - Axis ST - Step DR - Direction HM - Home L1 - Limit 1 L2 - Limit 2 FT - Fault