Commit graph

1434 commits

Author SHA1 Message Date
Scott Lahteine 5272147f7c Followup #4402 fixing 3-point leveling 2016-07-25 15:56:34 -07:00
Scott Lahteine 169c21b477 Merge pull request #4402 from thinkyhead/rc_consistent_positioning
Account for coordinate space offsets
2016-07-24 19:23:20 -07:00
Scott Lahteine 2595a40a61 Account for coordinate space more in G28 / G29 / M48 2016-07-24 18:34:05 -07:00
Scott Lahteine b7b7c90477 Merge pull request #4389 from thinkyhead/rc_optimize_planner
Optimize planner with precalculation, etc.
2016-07-24 17:48:23 -07:00
Scott Lahteine b183442c61 Fix inactive_extruder_x_pos for coordinate space 2016-07-24 17:20:36 -07:00
Scott Lahteine f75b0c2ee1 Make POSITION macros global 2016-07-24 17:20:36 -07:00
Scott Lahteine 101b60ef42 Tweak Dual X Carriage data spacing 2016-07-24 17:20:35 -07:00
Scott Lahteine d8f2876753 Replace some float division with multiplication 2016-07-24 13:27:50 -07:00
Scott Lahteine f8b5749235 Replace division in planner with multiplication 2016-07-24 13:27:49 -07:00
Scott Lahteine db5df9500b Move sync_plan_position closer to the top 2016-07-24 13:27:49 -07:00
João Brázio 50fb0f7cec M31 serial output is now always in EN 2016-07-24 15:52:03 +01:00
João Brázio 62d96d72f3 Renamed timestamp_t to duration_t 2016-07-24 03:16:02 +01:00
Scott Lahteine bb93b6822a Use set_current_from_steppers_for_axis 2016-07-23 15:25:54 -07:00
AnHardt 96a162beda Use implications from #4370 in run_z_probe()
See also https://github.com/MarlinFirmware/Marlin/pull/4370#issuecomment-234713680
2016-07-23 13:09:28 -07:00
Scott Lahteine 4e67a85a5d Macros to loop over axes 2016-07-23 13:09:28 -07:00
esenapaj 784be56e99 Follow-up the PR #4353 (General cleanup: enum)
・Update description of M111
2016-07-24 00:53:35 +09:00
Scott Lahteine 08459a003f Undo the self-sabotage that is do_blocking_move_to_axis_pos 2016-07-23 00:59:11 -07:00
esenapaj d32c4056ad Fix for the PR #4379 (Additional logging of do_blocking_move_to)
・Remove unneeded PSTR()
2016-07-23 16:38:57 +09:00
Scott Lahteine 8099ee51a5 Merge pull request #4379 from thinkyhead/rc_blocking_move_logging
Additional logging of do_blocking_move_to
2016-07-23 00:10:55 -07:00
Scott Lahteine ad16d5019e Additional logging of do_blocking_move_to 2016-07-22 23:53:08 -07:00
Scott Lahteine 652fd8a826 Merge pull request #4362 from thinkyhead/rc_duplication_mode
DUAL_NOZZLE_DUPLICATION_MODE
2016-07-22 21:17:59 -07:00
Scott Lahteine 6da3729531 Merge pull request #4370 from thinkyhead/rc_delta_fwd_kinematics
Delta Forward Kinematics (and LOGICAL_POSITION)
2016-07-22 21:16:00 -07:00
Scott Lahteine b3eb0c8569 Add LOGICAL_POSITION macro, apply to kinematics 2016-07-22 18:38:13 -07:00
Scott Lahteine 35a610abf9 const arg to inverse_kinematics 2016-07-22 17:42:48 -07:00
Scott Lahteine b6afa028f4 Don't call adjust_delta on SCARA 2016-07-22 16:36:34 -07:00
Scott Lahteine d5e2d523c7 Generalize kinematics function names 2016-07-22 16:36:34 -07:00
Scott Lahteine 9c4ad7d7ef Clean up delta declarations in Marlin_main.cpp 2016-07-22 16:36:33 -07:00
Scott Lahteine 4b1725628b Move kinematic functions to "private" scope 2016-07-22 16:36:33 -07:00
Scott Lahteine cde068ea42 Use set_current_from_steppers in quickstop_stepper 2016-07-22 16:36:33 -07:00
Scott Lahteine 9f30cc84ce Use set_current_from_steppers for other kinematics 2016-07-22 16:36:33 -07:00
AnHardt 5db9b940ee Use forwardKinematics in DELTA run_z_probe() 2016-07-22 16:36:33 -07:00
Scott Lahteine cbc7f22ad9 Implement DUAL_NOZZLE_DUPLICATION_MODE 2016-07-22 16:23:58 -07:00
Scott Lahteine 179e091473 Merge pull request #4374 from thinkyhead/rc_jbrazio_timestamp_t
Implements timestamp_t structure
2016-07-22 16:08:10 -07:00
AnHardt 499e404fbf forwardKinematics for Delta printers 2016-07-22 16:01:51 -07:00
João Brázio 23043a1e05 Rework some code to use timestamp_t struct (saves 72 bytes) 2016-07-22 15:53:31 -07:00
Scott Lahteine 0b2c608d2f Merge pull request #4372 from jbrazio/gcc-bark
Fix minor gcc warning
2016-07-22 15:18:53 -07:00
Scott Lahteine 311c7dadb6 Cleanup do_blocking_move_to for DELTA 2016-07-22 14:18:45 -07:00
Scott Lahteine b78590e63d Patch and cleanup run_z_probe 2016-07-22 14:18:45 -07:00
João Brázio 2f7716987d Fix minor gcc warning 2016-07-22 16:08:56 +01:00
AnHardt 376a57232e DELTA do_blocking_move_to() more like the Chartesian one 2016-07-22 03:12:46 +02:00
AnHardt 6ef26a85d8 Back to the differences method in run_z_probe() 2016-07-21 18:16:38 +02:00
Scott Lahteine 16e5348659 Merge pull request #4360 from thinkyhead/rc_toolchange_for_G28
Always switch to tool 0 for G28
2016-07-20 19:07:35 -07:00
Scott Lahteine d2e9a9c188 Always switch to tool 0 for G28 2016-07-20 09:36:55 -07:00
Scott Lahteine 194d9521c3 Merge pull request #4356 from thinkyhead/rc_simpler_run_z_probe
Unify run_z_probe
2016-07-19 19:02:39 -07:00
AnHardt 09a3cc33e6 Unify run_z_probe
Unify run_z_probe
Add double touch for DELTAs.
Introduce Z_PROBE_SPEED_FAST and Z_PROBE_SPEED_SLOW
  defaulting to homing_feedrate_mm_m[Z_AXIS] and homing_feedrate_mm_m[Z_AXIS]/2
2016-07-19 18:42:48 -07:00
Scott Lahteine 204fd6ec44 Set homing feedrates individually 2016-07-19 17:31:58 -07:00
João Brázio 47fef80848 Nozzle::clean() no longer requires HAS_BED_PROBE 2016-07-19 15:07:02 -07:00
Scott Lahteine 6c899bb520 Merge pull request #4349 from jbrazio/gcc-bark-bark
Removes some minor GCC warnings
2016-07-19 13:42:33 -07:00
Scott Lahteine c502018eab Merge pull request #4353 from jbrazio/global-enum-file
General cleanup: enum
2016-07-19 13:37:56 -07:00
AnHardt 11c075c6b2 Introduce line_to_axis_pos(axis_codes axis, float where, float feed_rate = 0.0)
and use it in `homeaxis()` instead of `do_blocking_move_to_axis_pos()`.
`do_blocking_move_to_axis_pos` was wrong because it performed subdivided, delta-corrected moves for x- and y-axis.

The first common move for delta homing is like quick_home but for 3 towers.

Fix two warnings.
2016-07-19 17:24:44 +02:00
João Brázio 3ebad4e020 Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
João Brázio 30ac0782a9 Comment section style correction 2016-07-19 03:27:42 +01:00
João Brázio 79e7721b76 Removes some minor GCC warnings 2016-07-19 03:03:11 +01:00
Scott Lahteine 3422103863 Merge pull request #4310 from thinkyhead/rc_mbl_position_shift
Fix position shift with MBL
2016-07-17 18:31:25 -07:00
Scott Lahteine 493d30cd97 Drop intermediate nx, ny, and set destination directly 2016-07-17 17:59:52 -07:00
Scott Lahteine 07a735ad22 We always use destination so modify mesh_buffer_line 2016-07-17 17:57:33 -07:00
Scott Lahteine 04a5b7b257 A macro to normalize positions 2016-07-17 17:57:32 -07:00
Scott Lahteine 86eb5251c5 Fix some debug messages 2016-07-17 17:10:02 -07:00
Scott Lahteine 1e57a6af73 Use blocking_move, current_position in G28 homing 2016-07-17 16:56:13 -07:00
Scott Lahteine f6a3a1da09 nz and ne are always set, so drop them down 2016-07-17 14:12:39 -07:00
Scott Lahteine d0009e013b Rename cell index vars 2016-07-17 14:12:39 -07:00
Scott Lahteine 697373b071 Reduce code size of mesh_buffer_line 2016-07-17 14:11:25 -07:00
Scott Lahteine f4a69281fc Only call mesh_buffer_line when MBL is active 2016-07-17 14:11:25 -07:00
Scott Lahteine 799a31cd30 Include the position_shift when splitting mesh lines 2016-07-17 14:08:20 -07:00
Scott Lahteine f242aea032 Merge pull request #4319 from thinkyhead/rc_feedrates_to_mess_with_you
Wrangle feed rate variables
2016-07-17 14:07:52 -07:00
Scott Lahteine 0342661b3f Merge pull request #4335 from thinkyhead/rc_status_pad_jp
Debug char, fix compile errors for lcd pins
2016-07-17 14:07:08 -07:00
Scott Lahteine 5ed1e7a464 codenum => dwell_ms 2016-07-17 13:35:21 -07:00
Scott Lahteine f38553b482 fix a debug message 2016-07-17 13:29:42 -07:00
Scott Lahteine 3d78b8f929 Use HYPOT macro instead of hypot function 2016-07-17 13:29:42 -07:00
Scott Lahteine 9f9fe043ba Apply sq macro throughout 2016-07-17 13:29:41 -07:00
Scott Lahteine 93ba5bddd7 Append units to feedrate variables 2016-07-17 13:29:41 -07:00
Scott Lahteine 21ee0612e3 Debug char 2016-07-17 12:27:36 -07:00
Scott Lahteine 8f24e0a556 Debugging of MBL in G28 2016-07-17 11:08:30 -07:00
Scott Lahteine 05da02f0a2 Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER 2016-07-17 10:53:10 -07:00
Scott Lahteine 02285662f5 Merge pull request #4298 from jbrazio/feature/filament-counter
Adds filamentUsed and longestPrint stats to PrintCounter
2016-07-16 23:48:46 -07:00
Scott Lahteine bf16ae5a70 Merge pull request #4299 from jbrazio/feature/g27-park-nozzle
Implements park nozzle feature
2016-07-16 23:47:12 -07:00
João Brázio a8758619ec The safe_delay() is now globaly accessible 2016-07-16 12:28:06 +01:00
João Brázio f5234b0695 Adds a customizable screen timeout for the default boot screen 2016-07-16 12:24:36 +01:00
João Brázio 2f26bc2153 Adds filamentUsed and longestPrint stats to PrintCounter 2016-07-16 12:12:27 +01:00
João Brázio c711701626 Implements a nozzle parking command (G27) 2016-07-16 12:07:59 +01:00
João Brázio 5f368d1bc3 Followup for #4320 2016-07-16 11:57:35 +01:00
João Brázio d7c51bc4b9 Merge pull request #4320 from jbrazio/followup/4307
Moves do_blocking_move_to_xy() out of the HAS_BED_PROBE define
2016-07-16 11:48:00 +01:00
Scott Lahteine e563634a25 Merge pull request #4314 from AnHardt/use-d_b_m_t-in-g28
Use do_blicking_move_to*() in G28
2016-07-15 20:22:02 -07:00
Scott Lahteine 59ae1811c2 Merge pull request #4303 from AnHardt/delta-g28
DELTA: Move out of the clip-zone after G28
2016-07-15 20:20:22 -07:00
João Brázio fdea8b6e6a Moves do_blocking_move_to_xy() out of the HAS_BED_PROBE define 2016-07-16 03:59:49 +01:00
AnHardt d2a49c016d DELTA: Move out of the clip-zone after G28
Move down to a safe height after G28 for DELTAs.
2016-07-15 15:22:44 +02:00
AnHardt 46994fd17d Use do_blicking_move_to*() in G28 2016-07-15 15:02:15 +02:00
João Brázio ffbb31b235 Fixes an PSTR overflow with print_xyz() 2016-07-15 11:25:34 +01:00
Scott Lahteine cec7110409 Merge pull request #4308 from thinkyhead/rc_debug_gcode_t
Added logging related to gcode_T
2016-07-14 19:46:33 -07:00
Scott Lahteine 166f19251e Add more debugging for leveling
- Especially in `gcode_T`
- In `update_software_endstops`
- Some tweaks to observe
2016-07-14 19:04:13 -07:00
Scott Lahteine 7ac0b91a45 Collapsible long comment in gcode_T 2016-07-14 18:28:41 -07:00
João Brázio e71a631f8f do_blocking_move_*() no longer depend on HAS_BED_PROBE 2016-07-15 01:54:14 +01:00
Scott Lahteine 8bf6861af8 Merge pull request #4054 from jbrazio/feature/g12-clean-tool
Implements clean nozzle feature (Lulzbot's REWIPE)
2016-07-14 14:38:38 -07:00
Scott Lahteine 1618870c84 card.printingHasFinished does print_job_timer.stop 2016-07-14 11:39:58 -07:00
Scott Lahteine 34da77dad3 Simply run M31 at the end of an SD print 2016-07-14 11:39:58 -07:00
Scott Lahteine a8d71f0ac6 Support longer print times in M31 2016-07-14 11:39:58 -07:00
Scott Lahteine e481b79af1 Allow stopwatch and printcounter to go over 18 hours 2016-07-14 11:39:57 -07:00
João Brázio 4937f9ada4 Minor G12 tweaks and point_t struct extension 2016-07-14 00:07:36 +01:00
João Brázio 021544f572 Improves G12 zig-zag pattern 2016-07-13 21:14:56 +01:00
João Brázio b05a75655a Implements a nozzle cleaning pattern generator (G12) 2016-07-13 21:14:19 +01:00
Scott Lahteine 4f77adddbe Merge pull request #4286 from thinkyhead/rc_debug_clean
Prefix and suffix in debug output
2016-07-12 20:49:15 -07:00
Scott Lahteine e5c7af5ddc Merge pull request #4222 from thinkyhead/rc_allow_cold_extrude
M302: Add "P" parameter, status output
2016-07-12 20:40:14 -07:00
Scott Lahteine 2224032568 Merge pull request #4285 from thinkyhead/rc_manual_move_fast_fine
No delay for the smallest LCD moves
2016-07-12 20:16:38 -07:00
Scott Lahteine d4c68279c8 Add "P" parameter to M302 2016-07-12 20:04:15 -07:00
Scott Lahteine a8b6b6a128 Merge pull request #4252 from thinkyhead/rc_rename_hpb
Replace PLA/ABS preheating with generic
2016-07-12 20:00:33 -07:00
Scott Lahteine 1e14df876d Use varname as prefix in DEBUG_POS, string as suffix 2016-07-12 19:58:09 -07:00
Scott Lahteine 9e8b3e5ee6 Homing direction is irrelevant in probe raise! 2016-07-12 18:09:02 -07:00
Scott Lahteine 4865447830 Merge pull request #4276 from esenapaj/Suppress-warnings
Suppress warnings
2016-07-11 19:08:59 -07:00
esenapaj 58177a1602 Suppress warnings 2016-07-12 08:22:24 +09:00
AnHardt 7bcab26f2a Don't deploy/stow the probe if z-min-endstop is used for homing
Don't deploy/stow the probe if z-min-endstop is used for homing.
Don't apply `zprobe_zoffset` if probe was not used.
2016-07-11 22:01:44 +02:00
AnHardt e92e58df1f Adjust wait_for_cooling slope
Adjust wait_for_cooling slope
and drop mintemp for cooling.

See
https://github.com/MarlinFirmware/Marlin/pull/4169#issuecomment-231544532
2016-07-11 03:36:23 +02:00
Scott Lahteine ee0983ab57 Further reduction when HOTENDS == 1 2016-07-10 16:54:30 -07:00
Scott Lahteine f9e08b1fcd Merge pull request #4254 from AnHardt/killscreen
Add a kill-screen
2016-07-09 20:44:42 -07:00
AnHardt faac2bcfdb Add a kill-screen 2016-07-10 04:50:45 +02:00
Scott Lahteine 3b3e52616c Merge pull request #4253 from thinkyhead/rc_clexpert_runout
Runout Sensor without SD Card, Print Timer support in M104
2016-07-09 19:10:36 -07:00
Scott Lahteine 4cd045791c Reduce code size by trusting the compiler 2016-07-09 18:17:44 -07:00
Scott Lahteine a8538bd7ce General cleanup, code reduction in Marlin_main.cpp 2016-07-09 18:17:44 -07:00
Scott Lahteine 1026e5b071 Replace PLA/ABS preheating with generic 2016-07-09 18:06:51 -07:00
Petr Zahradník junior 315b4c2153 Runout sensor without SD Card 2016-07-09 17:57:53 -07:00
AnHardt 468f7f03a2 homeaxis() can leave early
when no known axis needs to be homed.

Most changes are only caused from altering the indentation.
```
if (axis == X_AXIS ? HOMEAXIS_DO(X) : axis == Y_AXIS ? HOMEAXIS_DO(Y) : axis == Z_AXIS ? HOMEAXIS_DO(Z) : 0) {
  ...
}

to

if (!(axis == X_AXIS ? HOMEAXIS_DO(X) : axis == Y_AXIS ? HOMEAXIS_DO(Y) : axis == Z_AXIS ? HOMEAXIS_DO(Z) : 0)) return;
...

```
2016-07-08 15:59:33 +02:00
AnHardt eff7912243 Ensble/disable hardware endstops in G28 globally.
For moving away from the endstops we do not have to disable them.
They are not tested anyway.
2016-07-08 15:49:10 +02:00
AnHardt f69434d81c Eliminate void setup_for_endstop_move() 2016-07-08 15:23:20 +02:00
AnHardt 0ea6247fc2 Use logic in Z_SAFE_HOMING
Use logic in Z_SAFE_HOMING

From
```
if (home_all_axis || homeZ) {
  if (home_all_axis) {
  ...
  home z
  }
  else if (homeZ) { // Don't need to Home Z twice
  home z
  }
}

```
to
```
if (home_all_axis || homeZ) {
  if (home_all_axis) {
  ...
  }
  home z
}
```
2016-07-08 15:08:50 +02:00
AnHardt de3a169336 Always define MIN_Z_HEIGHT_FOR_HOMING even if 0
Always define MIN_Z_HEIGHT_FOR_HOMING even if 0
Always make a potential rise to `home_offset[Z_AXIS]` possible in G28.
Get rid of some very ugly constructs in MBL (ultralcd.cpp).
2016-07-08 15:08:32 +02:00
AnHardt 88ed232f53 Remove HAS_BED_PROBE case in first raise in G28
Differentiating made sense here when we could save a dozen lines of code,
but not for one line.
2016-07-08 14:59:44 +02:00
AnHardt 653eff3b31 Clean up quick_home_xy()
Since we do the actual homing now in the 'normal' routines `quick_home_xy()`
can be simplified to a relative simple diagonal move.
2016-07-08 14:59:27 +02:00
Scott Lahteine 98d0167a57 Merge pull request #4226 from thinkyhead/rc_emergency_command_parser
MarlinSerial emergency-command parser (with M108)
2016-07-07 16:53:55 -07:00
Scott Lahteine 2ee4e4f791 Make wait_for_heatup volatile 2016-07-07 16:37:23 -07:00
Scott Lahteine 834ad14c8d Add quickstop_stepper to update current position with stepper.quick_stop() 2016-07-07 16:37:22 -07:00
Scott Lahteine ecffe92e20 Group EMERGENCY_PARSER commands 2016-07-07 16:37:22 -07:00
AnHardt a129078927 Add an emergency-command parser to MarlinSerial (supporting M108)
Add an emergency-command parser to MarlinSerial's RX interrupt.

The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.

To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.

This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".

The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.

One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"

Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.

Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
2016-07-07 16:37:22 -07:00
Scott Lahteine 9f42b1a075 Merge pull request #4235 from thinkyhead/rc_revert_quickhome_test
Fix quick homing, tweak MIN_Z_HEIGHT_FOR_HOMING
2016-07-07 13:37:14 -07:00
Scott Lahteine ad968f2325 Merge pull request #4234 from thinkyhead/rc_better_position_logging
Move XYZ in print_xyz and DEBUG_POS to the front
2016-07-07 12:31:15 -07:00
Scott Lahteine 4036c73cdd Don't raise Z if only homing Z 2016-07-07 12:28:37 -07:00
Scott Lahteine 0b6f8f8244 Apply MIN_Z_HEIGHT_FOR_HOMING raise literally 2016-07-07 12:25:02 -07:00
Scott Lahteine 177ec20bf0 Revert quick-home changes 2016-07-07 12:17:34 -07:00
Scott Lahteine 9c5b462ef2 Move XYZ in print_xyz and DEBUG_POS to the front 2016-07-07 11:42:19 -07:00
Scott Lahteine 4e84c803a3 Merge pull request #4232 from thinkyhead/rc_no_axis_codes_needed
Don't use axis_codes if a literal will do
2016-07-06 20:05:16 -07:00
Scott Lahteine e2f7cb0905 Don't use axis_codes if a literal will do 2016-07-06 18:37:21 -07:00
Scott Lahteine 6559f7359f Fix comment on Z raise for homing, save a few bytes 2016-07-06 16:21:51 -07:00
Scott Lahteine d0b29cabf3 Don't re-home X and Y if you quick homed 2016-07-06 13:46:06 -07:00
Scott Lahteine e0a6b978f5 Don't do_probe_raise with MIN_Z_HEIGHT_FOR_HOMING 2016-07-06 13:46:05 -07:00
Scott Lahteine 7735ec5e7a Merge pull request #4223 from thinkyhead/rc_rename_heatup
Change cancel_heatup to wait_for_heatup
2016-07-06 11:25:44 -07:00
Scott Lahteine 160a2be117 Change cancel_heatup to wait_for_heatup 2016-07-06 09:17:50 -07:00
AnHardt 16c83d203b Make use of the good features of a sled probe for all probes.
Move and extend axis_unhomed test to deploy/stow_z_probe().
Move and extend position store/restore to deploy/stow_z_probe().

Now all kinds of probes can use the 'E' parameter in G29/M48.
Allen key probes can be used now for grid and 3-point levelling.

Deploying the Allen Key probe uses big moves in z direction.
Too dangerous for an unhomed z-axis.
Throw a compile time error when we try to configure an
Allen Key probe homing to z-min and having no other z-min-endstop.
2016-07-06 04:11:04 +02:00
AnHardt 8555816a11 Generalize and simplify 'triggered when stowed test`
The `PROBE_IS_TRIGGERED_WHEN_STOWED_TEST` is able to detect if a probe is
successfully deployed/stowed.
It was part of the Allen Key probes code only.
Now the function is generally available.

Currently this test is compulsory for Allen Key probes to not alter the used behaviour
If you want to add the test for an other type of probe simply add
```
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
```
to your config.
2016-07-06 03:56:17 +02:00
AnHardt 5126cce7fd Move Allen Key probe move scripts to their own functions
There was an hidden extra move after the scripts. This is configurable now.
Added the extra moves to the relevant configs.
2016-07-06 03:46:40 +02:00
AnHardt 7d063c111c Add a optional feedrate parameter to do_blocking_move()
Add a optional feedrate parameter to `do_blocking_move()` and its companions.
2016-07-06 03:46:34 +02:00
Scott Lahteine b114b6a0b3 Save 152 bytes using uint8_t for command indices 2016-07-05 16:29:28 -07:00
Scott Lahteine 0d4ff0c48b Allow the queue to be cleared from within commands 2016-07-05 16:25:20 -07:00