James Richters [Sat, 31 Mar 2018 00:17:19 +0000 (20:17 -0400)]
Remove Report for testing
James Richters [Fri, 30 Mar 2018 23:31:31 +0000 (19:31 -0400)]
Use Arc_Milestone for arc calculations - improve accuracy of rt_axis0 and rt_axis1
Also added more tests for comparison in the temporary report
James Richters [Fri, 30 Mar 2018 20:51:44 +0000 (16:51 -0400)]
Put diagnostic info back in
James Richters [Fri, 30 Mar 2018 20:48:48 +0000 (16:48 -0400)]
Merge remote-tracking branch 'Smoothieware/edge' into Arc_Diagnosetic2
Jim Morris [Fri, 30 Mar 2018 19:16:47 +0000 (20:16 +0100)]
Merge pull request #1295 from Smoothieware/add/arc_milestone
added arc_milestone
Jim Morris [Fri, 30 Mar 2018 19:15:04 +0000 (20:15 +0100)]
added arc_milestone
Jim Morris [Fri, 30 Mar 2018 10:38:29 +0000 (11:38 +0100)]
Merge pull request #1294 from wolfmanjm/upstreamedge
revert PR #1293
Jim Morris [Fri, 30 Mar 2018 10:35:30 +0000 (11:35 +0100)]
Revert "Merge pull request #1293 from Zaaphod/Missing_Arcs"
This reverts commit
2ed924ed1e5bc6ae2f341f8c22ec3bf3c85c6476, reversing
changes made to
573ed7c0c719008075acb1d36850e718a2707372.
Jim Morris [Fri, 30 Mar 2018 10:29:35 +0000 (11:29 +0100)]
Revert "Update Robot.cpp"
This reverts commit
402a31afb0efab312e3fc2e51d6b3954246c9631.
Jim Morris [Fri, 30 Mar 2018 09:00:03 +0000 (10:00 +0100)]
Update Robot.cpp
replace and with &&
Jim Morris [Fri, 30 Mar 2018 08:58:17 +0000 (09:58 +0100)]
Merge pull request #1293 from Zaaphod/Missing_Arcs
Improvements to G2/G3 Arcs
James Richters [Thu, 29 Mar 2018 22:06:36 +0000 (18:06 -0400)]
Remove diagnostic output to console and add comments
James Richters [Wed, 28 Mar 2018 12:24:27 +0000 (08:24 -0400)]
Add test tor full circles and only perform atan2 if not a full circle. fix correction for atan2 to prevent accidental giant circles
Modify dignostic output and perform both old and new atan corrections to see the difference.
Jim Morris [Tue, 27 Mar 2018 14:26:14 +0000 (15:26 +0100)]
fix offset
Jim Morris [Tue, 27 Mar 2018 14:06:47 +0000 (15:06 +0100)]
actually improve the probe result panel screen
James Richters [Mon, 26 Mar 2018 23:51:31 +0000 (19:51 -0400)]
Diagnostic variables sent to console for evaluation
Jim Morris [Mon, 26 Mar 2018 20:48:14 +0000 (21:48 +0100)]
clean up cnc panel probe output
Jim Morris [Fri, 23 Mar 2018 09:16:43 +0000 (09:16 +0000)]
Add max_speed parameter and M203 Sxxx to set maximum feedrate
Jim Morris [Tue, 13 Mar 2018 18:48:28 +0000 (18:48 +0000)]
call on_idle
fixes issue #1286
Jim Morris [Thu, 8 Mar 2018 11:24:27 +0000 (11:24 +0000)]
Update config
Jim Morris [Wed, 7 Mar 2018 20:22:28 +0000 (20:22 +0000)]
Merge pull request #1282 from wolfmanjm/upstreamedge
Allow G38 to do arbitrary move to xyz
Jim Morris [Wed, 7 Mar 2018 20:08:13 +0000 (20:08 +0000)]
Allow G38 to do arbitrary move to xyz
Jim Morris [Wed, 7 Mar 2018 14:57:12 +0000 (14:57 +0000)]
Merge pull request #1281 from wolfmanjm/upstreamedge
fix percent complete for panels
Jim Morris [Wed, 7 Mar 2018 14:55:08 +0000 (14:55 +0000)]
FIx percent progress for panels
Jim Morris [Mon, 5 Mar 2018 14:52:40 +0000 (14:52 +0000)]
fix up some style issues in the laser PR
Jim Morris [Mon, 5 Mar 2018 14:50:08 +0000 (14:50 +0000)]
Merge pull request #1278 from wolfmanjm/upstreamedge
fix bad formatting from laser PR
Jim Morris [Mon, 5 Mar 2018 14:47:35 +0000 (14:47 +0000)]
fix bad formattingfrom PR
Jim Morris [Mon, 5 Mar 2018 14:20:16 +0000 (14:20 +0000)]
Merge pull request #1277 from nuclearcat/edge
Add more safety to laser testing by optional duration parameter and s…
Denys Fedoryshchenko [Mon, 5 Mar 2018 00:10:29 +0000 (02:10 +0200)]
Fixing compile warnings, sorry
Denys Fedoryshchenko [Mon, 5 Mar 2018 00:04:53 +0000 (02:04 +0200)]
Properly handling when PWM frequency is slower than 1khz
Denys Fedoryshchenko [Sun, 4 Mar 2018 04:22:02 +0000 (06:22 +0200)]
Add more safety to laser testing by optional duration parameter and status query
Jim Morris [Fri, 2 Mar 2018 11:22:15 +0000 (11:22 +0000)]
update latest bins
Jim Morris [Fri, 2 Mar 2018 11:20:11 +0000 (11:20 +0000)]
Merge pull request #1276 from wolfmanjm/upstreamedge
return Error on exceeding soft limit
Jim Morris [Fri, 2 Mar 2018 11:17:47 +0000 (11:17 +0000)]
return Error on exceeding soft limit
Jim Morris [Thu, 1 Mar 2018 22:33:22 +0000 (22:33 +0000)]
Merge pull request #1149 from Smoothieware/feature/soft-endstops
Feature/soft endstops
Jim Morris [Thu, 1 Mar 2018 16:26:57 +0000 (16:26 +0000)]
Merge pull request #1274 from ahmetipkin/edge
Compansation dampening functionality is added
Ipkin, Ahmet [Thu, 1 Mar 2018 16:13:45 +0000 (17:13 +0100)]
Fixed indentation and braces
Ipkin, Ahmet [Thu, 1 Mar 2018 15:25:09 +0000 (16:25 +0100)]
Deleted the bogus files.
Ipkin, Ahmet [Thu, 1 Mar 2018 14:44:01 +0000 (15:44 +0100)]
Made the Compansation Dampening as optional
If the config values are not set; the compansation dampening is shut down; so the compansation is applied everywhere - like the old behaviour
If you want to enable it; you should define both of
leveling-strategy.rectangular-grid.height_limit
leveling-strategy.rectangular-grid.dampening_start
configs.
Jim Morris [Thu, 1 Mar 2018 08:53:56 +0000 (08:53 +0000)]
Merge pull request #1275 from Zaaphod/Probe-G20
Display results of probe in inches if in G20 mode
James Richters [Thu, 1 Mar 2018 02:48:30 +0000 (21:48 -0500)]
Display results of probe in inches if in G20 mode
Ahmet Ipkin [Thu, 1 Mar 2018 02:02:32 +0000 (03:02 +0100)]
Added compensation degragation function for rectangular grid
Now the compensation is not applied always - rather is applied only for limited amount (like Repetier firmware does). In order to configure it, you add two new configs:
leveling-strategy.rectangular-grid.height_limit <height_limit>
leveling-strategy.rectangular-grid.dampening_start <start limit>
Basically what it does is; until Z axis is below 'start limit', any compensation that would be applied is applied as is (full power). However, after this 'start limit' is hit, until 'height limit' is reached, the compensation is dampened gradually (linearly) from full power to none (i.e. no compensation after 'height limit' is passed)
Main reason for this is: we generally use Mesh bed leveling for compensating our non-flat beds; but generally after first few layers; the extruded plastic can cover for this bent; and it is no longer needed.
Jim Morris [Mon, 26 Feb 2018 17:31:46 +0000 (17:31 +0000)]
fix merge
Merge remote-tracking branch 'upstream/edge' into feature/soft-endstops
Jim Morris [Mon, 26 Feb 2018 17:04:05 +0000 (17:04 +0000)]
Merge remote-tracking branch 'upstream/edge' into feature/soft-endstops
Jim Morris [Mon, 26 Feb 2018 11:26:41 +0000 (11:26 +0000)]
update latest bins
Jim Morris [Sun, 25 Feb 2018 20:49:46 +0000 (20:49 +0000)]
Merge pull request #1272 from wolfmanjm/upstreamedge
fix arc generation for tiny arcs
Jim Morris [Sun, 25 Feb 2018 20:44:40 +0000 (20:44 +0000)]
fix arc generation for tiny arcs
Jim Morris [Tue, 20 Feb 2018 14:51:18 +0000 (14:51 +0000)]
Merge pull request #1270 from wolfmanjm/upstreamedge
fix usbdevice.
Jim Morris [Tue, 20 Feb 2018 14:48:16 +0000 (14:48 +0000)]
fix typos in USBdevice
Jim Morris [Tue, 20 Feb 2018 14:46:08 +0000 (14:46 +0000)]
make query new format the default
Jim Morris [Sat, 17 Feb 2018 09:05:08 +0000 (09:05 +0000)]
Merge pull request #1269 from cilynx/feature/m115_get_firmware_version
Add M115 Get Firmware Version
Randy C. Will [Sat, 17 Feb 2018 01:28:32 +0000 (17:28 -0800)]
Add M115 Get Firmware Version
I based this implementation on the existing `version` command in
SimpleShell as well as looking what the other players are doing with
M115:
http://reprap.org/wiki/G-code#M115:_Get_Firmware_Version_and_Capabilities
http://marlinfw.org/docs/gcode/M115.html
https://duet3d.com/wiki/G-code#M115:_Get_Firmware_Version_and_Capabilities
I did not bring MCU over from `version` as I felt there would be too
much code duplication / complexity for too little gain. The M115 output
from my test branch looks like this:
FIRMWARE_NAME:Smoothieware, FIRMWARE_URL:http://smoothieware.org,
SOURCE_CODE_URL:https://github.com/Smoothieware/Smoothieware,
FIRMWARE_VERSION:feature/m115_get_firmware_version-
8d5ff26,
BUILD_DATE:Feb 16 2018 17:11:15, SYSTEM_CLOCK:100MHz, AXES:3, CNC:1,
MSD:1
ok
Of course FIRMWARE_VERSION will look better when it's `edge` as opposed
to my overly long branch name.
I arbitrarily followed Marlin's example of leaving colons in the value
of the k-v pair as a problem for the parser instead of URL encoding them
like RepRap or avoiding them entirely like Duet3d. I'm not married to
this, so if there's a preference for another direction, I'm open.
If accepted, I believe this fixes #279.
Jim Morris [Fri, 9 Feb 2018 17:03:10 +0000 (17:03 +0000)]
Merge pull request #1267 from cilynx/fix/spindle_pid_tuning
Fix M958 Set Spindle PID Parameters
Randy C. Will [Fri, 9 Feb 2018 16:49:18 +0000 (08:49 -0800)]
Fix M958 Set Spindle PID Parameters
Original code sets the P term to any values provided for P, I, or D with
no way to set I or D terms. This change sets I and D correctly as one
would expect when I and D are passed to M958. The set_i_term() and
set_d_term() functions already existed, so the layout in
on_gcode_received() was likely a simple oversight by the original
author.
I tested this change on the bench with a Smoothieboard driving an MC2100
DC controller hooked up to a 2HP treadmill motor. Prior to the change,
M958 would only set the P term. After the change, M958 works as
expected and the PID controller can be tuned live.
Jim Morris [Thu, 8 Feb 2018 15:31:02 +0000 (15:31 +0000)]
Merge pull request #1266 from wolfmanjm/upstreamedge
some convenience features
Jim Morris [Thu, 8 Feb 2018 15:12:15 +0000 (15:12 +0000)]
add example six-axis config snippet
Jim Morris [Thu, 8 Feb 2018 15:04:14 +0000 (15:04 +0000)]
add max_travel warning to homing cycle fail
Jim Morris [Tue, 23 Jan 2018 14:53:01 +0000 (14:53 +0000)]
add a useful message after delta grid probe to save it.
Jim Morris [Mon, 22 Jan 2018 14:49:43 +0000 (14:49 +0000)]
Merge pull request #1262 from wolfmanjm/upstreamedge
Fix snprintf return value misunderstanding
Jim Morris [Mon, 22 Jan 2018 14:46:00 +0000 (14:46 +0000)]
sizeof(buf)-1 not needed
Jim Morris [Mon, 22 Jan 2018 14:40:59 +0000 (14:40 +0000)]
fix misunderstanding for return value of snprintf, where it matters.
Jim Morris [Sat, 20 Jan 2018 19:42:47 +0000 (19:42 +0000)]
Update TemperatureControl.cpp
Jim Morris [Thu, 11 Jan 2018 18:16:17 +0000 (18:16 +0000)]
Merge pull request #1256 from wolfmanjm/upstreamedge
fix progress when large files are being played
Jim Morris [Thu, 11 Jan 2018 00:22:11 +0000 (00:22 +0000)]
fix progress when large files are being played
Jim Morris [Mon, 1 Jan 2018 22:27:21 +0000 (22:27 +0000)]
update -latest bins
Jim Morris [Mon, 1 Jan 2018 22:21:42 +0000 (22:21 +0000)]
Merge pull request #1250 from wolfmanjm/fix/disk_write
fix disk write when sector count > 1.
Jim Morris [Mon, 1 Jan 2018 11:55:15 +0000 (11:55 +0000)]
remove 400 byte limit write HACK
Jim Morris [Mon, 1 Jan 2018 11:40:28 +0000 (11:40 +0000)]
Merge pull request #1241 from michaelnew/cartesian_grid_extrapolation
Add simple extrapolation for cartesian grid compensation
Jim Morris [Mon, 1 Jan 2018 11:37:07 +0000 (11:37 +0000)]
fix disk write when sector count > 1.
This should allow the HACK that limits disk writes to 512 bytes.
Jim Morris [Sat, 23 Dec 2017 02:16:10 +0000 (02:16 +0000)]
Merge pull request #1239 from adrianjobst/fix/probing-dwell
fix / dwell before probing
Jim Morris [Fri, 22 Dec 2017 21:38:12 +0000 (21:38 +0000)]
update firmware.bin
Jim Morris [Thu, 21 Dec 2017 20:29:25 +0000 (20:29 +0000)]
Merge pull request #1244 from wolfmanjm/upstreamedge
Fix handling of an illegal line number
Jim Morris [Thu, 21 Dec 2017 20:25:43 +0000 (20:25 +0000)]
Fix crash if an illegal line with just N1 on it is sent or a blank line with line number and checksum
Fixes issue #1243
Jim Morris [Sun, 10 Dec 2017 17:01:55 +0000 (17:01 +0000)]
Merge pull request #1242 from lordofhyphens/stream-log
Alternate quiet mode for smoothie-stream that outputs to a log instead.
Joseph Lenox [Sun, 10 Dec 2017 16:46:44 +0000 (10:46 -0600)]
Alternate quiet mode that outputs to a log instead (useful when print progress wants to be monitored and process is to be backgrounded).
Michael New [Sat, 9 Dec 2017 02:18:46 +0000 (18:18 -0800)]
cartesian grid still provides an offset for out-of-bounds xy locations
adrianjobst [Wed, 6 Dec 2017 21:45:49 +0000 (22:45 +0100)]
moved dwell time to the begining of the function, so the if clause will not cancell the function before the dwell ever happened
Jim Morris [Tue, 5 Dec 2017 21:30:58 +0000 (21:30 +0000)]
Merge remote-tracking branch 'upstream/edge' into upstreamedge
Jim Morris [Mon, 20 Nov 2017 09:54:16 +0000 (09:54 +0000)]
Merge pull request #1237 from cilynx/fix/spindle_analog_report_speed
Report actual RPM and PWM instead of just target
Randy C. Will [Sun, 19 Nov 2017 22:03:54 +0000 (14:03 -0800)]
Report actual RPM and PWM instead of just target
The way `report_speed` was implemented, `M957` shows `target_rpm` as the
"Current RPM" and then calculates the PWM "Analog value" from there.
Because `turn_off` uses `update_pwm(0)` to turn off the output signal
without clobbering the `target_rpm` set by `M3`, if you `turn_off` the
spindle (via `M5`, a `HALT` state, etc), `M957` (`report_speed`)
incorrectly continues to report the old "Current RPM" and calculated
"Analog value" even thought the PWM signal has actually been cut off.
I turned this around so `report_speed` reads the real PWM ("Analog
value") being sent out `pwm_pin` and then calculates the real "Current
RPM" from there. I also appended a new "Target RPM" field to the
`report_speed` output containing `target_rpm`.
Tested over USB serial with `M597`, `M3`, `M5`, `M112`, `M999`, `^X`,
and `$X`.
Jim Morris [Sun, 19 Nov 2017 20:53:57 +0000 (20:53 +0000)]
Merge pull request #1236 from cilynx/fix/spindle_off_on_halt
Fix/spindle off on halt
Randy C. Will [Sun, 19 Nov 2017 20:41:11 +0000 (12:41 -0800)]
Add spindle.ignore_on_halt to config sample snippet
Randy C. Will [Sun, 19 Nov 2017 20:35:55 +0000 (12:35 -0800)]
Consolidate common spindle functions
Doing the exact same event registration in every sub-module isn't very
DRY and could lead to inadvertent missed registrations in new
sub-modules. Consolidating the registrations into `SpindleMaker`.
Randy C. Will [Sun, 19 Nov 2017 19:19:59 +0000 (11:19 -0800)]
Stop spindle on HALT
When a machine enters a `HALT` state for any reason, the spindle should
stop for safety along with everything else. This commit changes the
default behavior to `turn_off` the spindle `on_halt`. I added an
optional `spindle.ignore_on_halt` config parameter that defaults to
`false` in case anyone needs the previous less-safe behavior.
I believe this addresses #1069.
I confirmed functionality on `PWMSpindleControl` via `M957` as well as a
physical scope while causing `HALT` via `M112` or `^X` over the serial
interface.
I found some weirdness in `AnalogSpindleControl` around `report_speed`,
but I'll address that in another PR. I did confirm that `turn_off` is
being called `on_halt` as it should be and the PWM duty cycle is reduced
to 0 even though `M957` (`report_speed`) continues to report that the
spindle is moving.
Without having the equipment for the other side of the RS485 connection,
I can't do much to test `ModbusSpindleContol`, but
`HuanyangSpindleControl`, the only supported Modbus VFD right now,
implements `turn_off`, so I don't see any reason it shouldn't work fine
with this change.
Jim Morris [Sat, 18 Nov 2017 21:02:14 +0000 (21:02 +0000)]
update cnc firmware latest
Jim Morris [Sat, 18 Nov 2017 20:56:47 +0000 (20:56 +0000)]
move spindle.config
Jim Morris [Sat, 18 Nov 2017 20:28:39 +0000 (20:28 +0000)]
Merge pull request #1235 from cilynx/feature/spindle_max_pwm
Feature/spindle max pwm
Randy C. Will [Sat, 18 Nov 2017 20:03:37 +0000 (12:03 -0800)]
Feature/spindle max pwm
Treadmill motor controllers are becoming increasingly popular in DIY
machines. One such popular controller is the mc2100 which expects a
duty cycle of 0-85% for 0-100% speed. To keep the PWM signal below the
controller maximum and thus prevent the controller from going into an
error state when higher speeds than physically possible are requested,
we need a config option for the ceiling on the PWM signal.
I tested this for backwards compatibility with my original configuration
without this new parameter included and it works as expected, using 100%
as the maximum duty cycle.
I tested setting `spindle.max_pwm` to 0.85 (above the hard-coded 0.5
starting point) and 0.25 (below the hard-coded 0.5 starting point) and
confirmed expected function for both via M957 output and viewing the
physical PWM output with a scope.
I added a sample `spindle.config` showing this new parameter in context
with the other spindle parameters I could find with a quick grep of the
code and search through the docs.
Jim Morris [Sat, 18 Nov 2017 10:18:13 +0000 (10:18 +0000)]
Merge pull request #1234 from cilynx/fix/get_pid_settings
Align get_pid_settings() with report_settings()
Jim Morris [Sat, 18 Nov 2017 10:17:52 +0000 (10:17 +0000)]
Merge pull request #1233 from cilynx/fix/spindle_on
Remove conflicting bool spindle_on
Randy C. Will [Sat, 18 Nov 2017 06:46:08 +0000 (22:46 -0800)]
Align get_pid_settings() with report_settings()
In the handler for M958 in `SpindleControl`, a function,
`get_pid_settings()`, is called which does not appear to exist beyond
its virtual initialization also in `SpindleControl`. Because this
function does not really exist, M958 does not return any PID data.
`PWMSpindleControl` contains a function `report_settings()`, which
prints the PID data one would expect from M958. Replacing
`SpindleControl`'s references to the non-existent `get_pid_settings()`
with `report_setting()` causes M958 to return PID data as expected.
Randy C. Will [Sat, 18 Nov 2017 06:19:09 +0000 (22:19 -0800)]
Remove conflicting bool spindle_on
Bool `spindle_on` is initialized in `SpindleControl` and is shared
between `SpindleControl` and whichever control method (PWM, Modbus,
Huanyang, or Analog) is configured.
Initializing `spindle_on` in `PWMSpindleControl` as well clobbers the
shared variable and leads to `SpindleControl` and `PWMSpingleControl`
having different values for `spindle_on` and thus the spindle is never
actually turned on when sending M3 commands.
This can be confirmed via M957 which will always show that the current
PWM is 0, no matter what the current and target RPM.
Removing this superfluous initializion causes `spindle_on` from
`SpindleControl` to be shared as expeced and the module then works as
can be confirmed with M957 showing appropriate PWM values responding to
current and target RPM.
Jim Morris [Sun, 29 Oct 2017 15:31:58 +0000 (15:31 +0000)]
Merge pull request #1230 from oddstr13/edge
Added COPYING file
Odd Stråbø [Tue, 24 Oct 2017 20:10:31 +0000 (22:10 +0200)]
Added COPYING file
Jim Morris [Tue, 17 Oct 2017 20:24:46 +0000 (21:24 +0100)]
update firmware.bin
Jim Morris [Fri, 13 Oct 2017 12:25:01 +0000 (13:25 +0100)]
update latest bins (same as normal bin)
Jim Morris [Fri, 13 Oct 2017 12:21:39 +0000 (13:21 +0100)]
update firmware.bin
Jim Morris [Fri, 29 Sep 2017 21:02:52 +0000 (22:02 +0100)]
Merge pull request #1226 from Zaaphod/Fix_XZ_Arcs
Fix Math for Arcs in XZ Plane - Issue #1181
James Richters [Fri, 29 Sep 2017 20:40:39 +0000 (16:40 -0400)]
Fix Math for Arcs in XZ Plane - Issue #1181
The math for calculating angular travel needs to be reversed only for XZ arcs, this is because the arc is now starting and ending in different quadrants than a similar arc in the other 2 planes.
Jim Morris [Sat, 23 Sep 2017 20:27:11 +0000 (21:27 +0100)]
Merge pull request #1223 from DavidJRobertson/make-debug-store-win
Fix `make debug-store` (and hence `make upload`) on Windows