Firmware/Marlin
Bob-the-Kuhn 2911aa7ffa code changes to implement G38 commands
1) modified 3 code files
Marlin.h
Marlin_main.cpp
endstops.cpp

2) modified config files so I could test on my machine

Testing was done on an AzteegX3pro based machine.

The probe was hooked to the Z_MIN endstop.

My controller doesn't have a dedicated Z_PROBE input so I couldn't test
that functionality.

Verified that a large file (without any G38 commands) executed the same
before and after the changes.

Verified that the head moves as expected when G38.2 and G38.3 commands
are issued. Single & multiple axis moves were tested along with + and -
directions.

Code was added to the main ISR. In normal operation only one extra IF
statement is evaluated. I didn't notice any performance degradation
because of the added code.

The G38 commands are expected to be issued manually by the operator
during machine setup. The G38 commands wait until the machine is idle
before proceeding. That way the other commands are minimally impacted
by the extra ISR overhead when a G38 command is in the queue.

The G38 commands are very similar to the G28 commands except 1) only the
Z_PROBE is used and movement can be in the + or - direction.

See issue 4677 for a discussion on adding G38 commands to Marlin.
Feature request: add ability to use G38.2 command (CNC)
MarlinFirmware/Marlin#4677
2016-10-01 05:00:53 -05:00
..
example_configurations Add PROBE_Y_FIRST option for probe order 2016-09-29 02:00:27 -05:00
blinkm.cpp
blinkm.h
boards.h Add Cartesio CN Controls V11 board 2016-07-15 12:55:47 +03:00
buzzer.h Prevent the 'tone(f,d)' function from being interrupted 2016-08-02 19:37:47 -07:00
cardreader.cpp Squish some CardReader code 2016-08-12 03:32:42 -07:00
cardreader.h Fix bug in CardReader::stopSDPrint 2016-08-12 03:21:10 -07:00
circularqueue.h Patch up CircularQueue 2016-08-02 18:57:15 -07:00
Conditionals_LCD.h Fix BLTOUCH string and SERVO_DELAY 2016-09-21 01:45:23 -05:00
Conditionals_post.h Patch up bilinear_z_offset 2016-09-29 01:31:05 -05:00
Conditionals.h Make Conditionals.h a catch-all for old configs 2016-07-30 04:25:30 -07:00
Configuration_adv.h code changes to implement G38 commands 2016-10-01 05:00:53 -05:00
configuration_store.cpp Remove SCARA axis_scaling 2016-09-16 15:21:18 -05:00
configuration_store.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
Configuration.h code changes to implement G38 commands 2016-10-01 05:00:53 -05:00
dac_mcp4728.cpp
dac_mcp4728.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
digipot_mcp4451.cpp Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
dogm_bitmaps.h Updates u8glib's bmp2hex converter 2016-07-19 03:16:30 +01:00
dogm_font_data_6x9_marlin.h
dogm_font_data_HD44780_C.h
dogm_font_data_HD44780_J.h
dogm_font_data_HD44780_W.h
dogm_font_data_ISO10646_1.h
dogm_font_data_ISO10646_5_Cyrillic.h
dogm_font_data_ISO10646_CN.h
dogm_font_data_ISO10646_Greek.h
dogm_font_data_ISO10646_Kana.h
dogm_font_data_Marlin_symbols.h
duration_t.h Handle hours >= 100 2016-09-01 23:54:48 -05:00
endstops.cpp code changes to implement G38 commands 2016-10-01 05:00:53 -05:00
endstops.h Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
enum.h Augment planner/stepper getters/setters 2016-09-29 01:27:37 -05:00
fastio.h Clean up some fastio.h spacing 2016-09-25 06:33:37 -05:00
language_an.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_bg.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_ca.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_cn.h Strip never-translated strings from language files 2016-08-11 13:41:07 -07:00
language_cz.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_da.h Fix Danish encoding and an error message 2016-08-28 09:51:06 -05:00
language_de.h Tweak some german language strings 2016-09-16 22:29:39 +02:00
language_el-gr.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_el.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_en.h Follow-up the PR #4860 (Fix BLTOUCH string and SERVO_DELAY) 2016-09-24 06:18:27 +09:00
language_es.h Merge pull request #4634 from thinkyhead/rc_lang_disp_char 2016-08-15 19:25:56 -07:00
language_eu.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_fi.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_fr.h Update french language 2016-08-22 12:46:58 -05:00
language_gl.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_hr.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_it.h Added missing translations 2016-09-16 01:17:58 +02:00
language_kana_utf8.h Update Japanese translation 2016-09-24 09:24:38 +09:00
language_kana.h Update Japanese translation 2016-09-24 09:24:38 +09:00
language_nl.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_pl.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_pt_utf8.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_pt-br_utf8.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_pt-br.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_pt.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language_ru.h Update language_ru.h 2016-08-17 13:55:44 -07:00
language_test.h Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
language.h Print error for M42 bad pin 2016-09-23 15:39:02 -05:00
M100_Free_Mem_Chk.cpp
macros.h Improve MINIMUM_STEPPER_PULSE 2016-09-24 02:23:43 -05:00
Makefile Additional path - followup to #4743 2016-09-07 15:08:12 -05:00
Marlin_main.cpp code changes to implement G38 commands 2016-10-01 05:00:53 -05:00
Marlin.h code changes to implement G38 commands 2016-10-01 05:00:53 -05:00
Marlin.ino Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
MarlinConfig.h Merge pull request #4419 from AnHardt/sd2pinmap 2016-07-28 17:38:46 -07:00
MarlinSerial.cpp Implement M0/M1 for EMERGENCY_PARSER 2016-09-13 03:33:00 -05:00
MarlinSerial.h Optimize, reduce size of MarlinSerial 2016-08-19 16:53:20 -05:00
mesh_bed_leveling.cpp
mesh_bed_leveling.h Save CPU by multiplying by pre-compiled values 2016-08-06 23:24:07 -07:00
nozzle.h Nozzle::clean() no longer requires HAS_BED_PROBE 2016-07-19 15:07:02 -07:00
pins_3DRAG.h Use SD Detect Pin 53 for 3DRAG, K8200, and K8400 2016-09-18 23:46:09 -05:00
pins_5DPRINT.h Update pins_5DPRINT.h 2016-09-16 11:22:52 -07:00
pins_99.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_A4JP.h Fix up spacing in A4JP pins 2016-09-25 06:33:37 -05:00
pins_AZTEEG_X1.h
pins_AZTEEG_X3_PRO.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_AZTEEG_X3.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_BAM_DICE_DUE.h pins_RAMPS_14.h => pins_RAMPS.h 2016-07-30 04:17:21 -07:00
pins_BQ_ZUM_MEGA_3D.h Properly handle probe pin for BQ printers 2016-08-25 20:59:44 -05:00
pins_BRAINWAVE_PRO.h Update pins_BRAINWAVE_PRO.h 2016-09-16 11:24:32 -07:00
pins_BRAINWAVE.h Update pins_BRAINWAVE.h 2016-09-16 11:23:52 -07:00
pins_CHEAPTRONIC.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_CNCONTROLS_11.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_CNCONTROLS_12.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_ELEFU_3.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_FELIX2.h Boards with 4 power outputs are EFBF or EFBE 2016-08-02 12:34:28 -07:00
pins_GEN3_MONOLITHIC.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_GEN3_PLUS.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_GEN6_DELUXE.h
pins_GEN6.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_GEN7_12.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_GEN7_13.h
pins_GEN7_14.h
pins_GEN7_CUSTOM.h Remove "the click" comments 2016-07-28 14:38:50 -07:00
pins_K8200.h
pins_K8400.h K8400 has 1xXY an 2xZ endstop plugs 2016-09-29 02:07:22 -05:00
pins_LEAPFROG.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_MEGACONTROLLER.h Use _PIN suffix on some pins 2016-09-25 06:33:38 -05:00
pins_MEGATRONICS_2.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_MEGATRONICS_3.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_MEGATRONICS.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_MELZI_MAKR3D.h
pins_MELZI.h
pins_MINIRAMBO.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_MINITRONICS.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_MKS_13.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_MKS_BASE.h Boards with 4 power outputs are EFBF or EFBE 2016-08-02 12:34:28 -07:00
pins_OMCA_A.h
pins_OMCA.h
pins_PRINTRBOARD_REVF.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_PRINTRBOARD.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_RAMBO.h Always define status LED pins 2016-09-25 06:33:37 -05:00
pins_RAMPS_13.h pins_RAMPS_14.h => pins_RAMPS.h 2016-07-30 04:17:21 -07:00
pins_RAMPS_OLD.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_RAMPS.h Use _PIN suffix on some pins 2016-09-25 06:33:38 -05:00
pins_RIGIDBOARD_V2.h Adjusted values for Rigidboard Configuration 2016-09-28 14:14:04 -05:00
pins_RIGIDBOARD.h Define Z_MIN_PROBE_PIN always, allowing override 2016-08-02 20:31:44 -07:00
pins_RUMBA.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_SAINSMART_2IN1.h HI_VOLT_PIN => "RAMPS_Dn_PIN" 2016-07-31 15:42:52 -07:00
pins_SANGUINOLOLU_11.h Use _PIN suffix on some pins 2016-09-25 06:33:38 -05:00
pins_SANGUINOLOLU_12.h
pins_SAV_MKI.h Update pins_SAV_MKI.h 2016-09-16 11:25:42 -07:00
pins_SETHI.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_STB_11.h
pins_TEENSY2.h Update pins_TEENSY2.h 2016-09-16 11:26:09 -07:00
pins_TEENSYLU.h Update pins_TEENSYLU.h 2016-09-16 11:26:37 -07:00
pins_ULTIMAIN_2.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_ULTIMAKER_OLD.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins_ULTIMAKER.h Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
pins.h Clean up probe config options 2016-09-19 00:26:16 -05:00
planner_bezier.cpp Move NONLINEAR bed leveling to planner 2016-09-18 13:50:38 -05:00
planner_bezier.h Append units to feedrate variables 2016-07-17 13:29:41 -07:00
planner.cpp Augment planner/stepper getters/setters 2016-09-29 01:27:37 -05:00
planner.h Augment planner/stepper getters/setters 2016-09-29 01:27:37 -05:00
platformio.ini Add Rambo support/env to platformio.ini; properly maps extended pins 2016-08-19 07:11:23 -04:00
point_t.h Adds missing documentation to the point_t structure 2016-07-22 15:19:20 +01:00
printcounter.cpp Renamed timestamp_t to duration_t 2016-07-24 03:16:02 +01:00
printcounter.h Adds filamentUsed and longestPrint stats to PrintCounter 2016-07-16 12:12:27 +01:00
qr_solve.cpp Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
qr_solve.h Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
SanityCheck.h Require Arduino 1.6.8 to compile 2016-09-29 02:00:27 -05:00
Sd2Card.cpp Use fastio for literal pins 2016-09-25 06:33:38 -05:00
Sd2Card.h repair-software-spi 2016-07-31 15:50:42 +02:00
SdBaseFile.cpp
SdBaseFile.h
SdFatConfig.h repair-software-spi 2016-07-31 15:50:42 +02:00
SdFatStructs.h
SdFatUtil.cpp
SdFatUtil.h Cleanup SdFatUtil.h 2016-08-11 12:47:06 -07:00
SdFile.cpp
SdFile.h
SdInfo.h
SdVolume.cpp
SdVolume.h
servo.cpp Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
servo.h
speed_lookuptable.h
stepper_dac.cpp Use fastio for literal pins 2016-09-25 06:33:38 -05:00
stepper_dac.h
stepper_indirection.cpp Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
stepper_indirection.h Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
stepper.cpp Augment planner/stepper getters/setters 2016-09-29 01:27:37 -05:00
stepper.h Augment planner/stepper getters/setters 2016-09-29 01:27:37 -05:00
stopwatch.cpp Updates Stopwatch class to use internal state enum 2016-07-19 14:30:44 +01:00
stopwatch.h Updates Stopwatch class to use internal state enum 2016-07-19 14:30:44 +01:00
temperature.cpp Fix for HEATERS_PARALLEL 2016-09-24 05:34:40 -05:00
temperature.h unsigned char => uint8_t 2016-09-24 05:23:40 -05:00
thermistornames.h
thermistortables.h
twibus.cpp TWIBus patch for proper use of Wire.requestFrom 2016-08-27 20:09:28 -05:00
twibus.h TWIBus patch for proper use of Wire.requestFrom 2016-08-27 20:09:28 -05:00
types.h Adds types.h 2016-07-30 02:55:52 +01:00
ultralcd_impl_DOGM.h Use fastio for literal pins 2016-09-25 06:33:38 -05:00
ultralcd_impl_HD44780.h Optimize LCD string/char printing 2016-09-02 06:41:24 -05:00
ultralcd_st7920_u8glib_rrd.h
ultralcd.cpp Watch bed temp also for Control menu item 2016-09-28 14:14:04 -05:00
ultralcd.h Move number-to-string function to utility.* 2016-08-20 18:33:11 -05:00
utf_mapper.h Make MAPPER_NON the fall back mapper 2016-07-12 19:59:14 +02:00
utility.cpp Move number-to-string function to utility.* 2016-08-20 18:33:11 -05:00
utility.h Move number-to-string function to utility.* 2016-08-20 18:33:11 -05:00
vector_3.cpp Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
vector_3.h Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
Version.h Update distribution date and readme 2016-07-30 21:27:29 +09:00
watchdog.cpp
watchdog.h