From: Joseph Coffland Date: Sun, 16 Dec 2018 00:47:51 +0000 (-0800) Subject: Added back tool-reversed option X-Git-Url: https://git.buildbotics.com/?a=commitdiff_plain;h=923ecd85354cca05e8e8b2e9c696c79b4907a117;p=bbctrl-firmware Added back tool-reversed option --- diff --git a/CHANGELOG.md b/CHANGELOG.md index a20730f..abe294c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,6 @@ Buildbotics CNC Controller Firmware Changelog - Many layout tweaks/improvements. - Don't abort simulations when system time changes. - Only allow one camera stream at a time. - - ## v0.4.2 - Suppress ``Auto-creating missing tool`` warning. @@ -21,7 +20,6 @@ Buildbotics CNC Controller Firmware Changelog - Fixed Web disconnect during simulation of large GCode. - Disable outputs on estop. - Improved switch debouncing for better homing. - - Removed tool-reversed option. Use tool-direction-mode instead. - Handle zero length dwell correctly. - Fixed problem with cached GCode file upload when file changed on disk. - Run simulation at low process priority. diff --git a/src/avr/src/spindle.c b/src/avr/src/spindle.c index 0a32cbc..48b5801 100644 --- a/src/avr/src/spindle.c +++ b/src/avr/src/spindle.c @@ -49,6 +49,7 @@ static struct { float override; sync_speed_t sync_speed; float speed; + bool reversed; float min_rpm; float max_rpm; float inv_max_rpm; @@ -83,7 +84,7 @@ static float _speed_to_power(float speed) { else if (spindle.max_rpm <= power) power = 1; else power *= spindle.inv_max_rpm; - return negative ? -power : power; + return (negative ^ spindle.reversed) ? -power : power; } @@ -213,6 +214,14 @@ void spindle_estop() {_set_type(SPINDLE_TYPE_DISABLED);} // Var callbacks uint8_t get_tool_type() {return spindle.type;} void set_tool_type(uint8_t value) {_set_type((spindle_type_t)value);} +bool get_tool_reversed() {return spindle.reversed;} + + +void set_tool_reversed(bool reversed) { + if (spindle.reversed == reversed) return; + spindle.reversed = reversed; + _update_speed(); +} float get_speed() {return _get_power() * spindle.max_rpm;} diff --git a/src/avr/src/vars.def b/src/avr/src/vars.def index 51a7546..50645b2 100644 --- a/src/avr/src/vars.def +++ b/src/avr/src/vars.def @@ -85,6 +85,7 @@ VAR(analog_input, ai, f32, ANALOG, 0, 0) // Analog input pins // Spindle VAR(tool_type, st, u8, 0, 1, 1) // See spindle.c VAR(speed, s, f32, 0, 0, 1) // Current spindle speed +VAR(tool_reversed, sr, b8, 0, 1, 1) // Reverse tool VAR(max_spin, sx, f32, 0, 1, 1) // Maximum spindle speed VAR(min_spin, sm, f32, 0, 1, 1) // Minimum spindle speed diff --git a/src/resources/config-template.json b/src/resources/config-template.json index 50a94c1..a9a275b 100644 --- a/src/resources/config-template.json +++ b/src/resources/config-template.json @@ -198,6 +198,11 @@ "default": "Disabled", "code": "st" }, + "tool-reversed": { + "type": "bool", + "default": false, + "code": "sr" + }, "max-spin": { "type": "float", "unit": "RPM",