* Implement stepping through Motors class
WIP for discussion and review - not ready to merge yet
* Document Motor methods and variables
.. and remove some unused ones and move some
that are subclass-specific
* Move position_min/max to Limits.cpp
... and coalesced other uses thereof into a unified scheme.
* Call motor ->init() explicitly instead of implicitly
This makes it possible to inherit constructors without
spurious config messages.
* Fixed problems with I2S
* Changes in class method override syntax per atlaste
* Fixed oops
* More Motors simplification
a) Eliminated can_home() in favor of a return value from
set_homing_mode()
b) Eliminated axis_name() in favor of reportAxisNameMsg()
* Fixes to RcServo and Trinamic
- RC Servo was not handling disable ... probably old issue
- Display test after config
* More tweaks
* Define that variable!
* Move functions from Motors.cpp to subclasses
Created a Servo base class from which RcServo and
Dynamixel2 are derived. This gets the servo update
task out of Motors. It also eliminates the need for
type_id. Now all of the functions that are specific
to particular kinds of motors are within their subclasses
* Adding Dynamixel to ABC axes.
* Removed second #ifndef SPINDLE_TYPE
* Fixed potential leak in Report.cpp
as reported by @atlaste
* Some servo cleanup. Has errors!
* min should be max
* Removed test rcservo machine definition.
* Removed obsolete #defines in machine defs for RcServo cal
Co-authored-by: bdring <barton.dring@gmail.com>
* Fix I2S stepper hung just after the completion of motor moving
* Fix recompile issue
Fixed a problem with the recompile not being recompiled even if the files under the Custom folder are changed.
* More comment for macOS in debug.ini
* Fix the timing of calling I2S out's exclusion function and reset sequence
The reset sequence did not seem to be correct, so I changed it.
According to the ESP-IDF PR, the correct sequence is as follows:
1)TX module
2)DMA
3)FIFO
c7f33524b4 (diff-27688c6b3c29373d2a2b142b8471981c)
* Changed the message level for I2S swtiching from warning to debug
* Add some comments
While eliminating a redundant definition of is_realtime_command(),
I inadvertently introduced a recursion due to the similarity of
the names "is_realtime_command()" and "is_realtime_cmd()". The
solution is to eliminate the latter entirely.
-- Changes that affect behavior
Fixed the bugs with report_build_info()
Build info is no longer stored in the fixed "EEPROM" section; instead it
is a proper Setting named $Firmware/Build . You can change it in the
usual way with $Firmware/Build=<whatever>
$I without the = still works.
-- Changes that affect configurability for developers
Converted a couple more #defines into enums - SETTINGS_RESTORE_*
and BITFLAG_RT_STATUS_* . A side effect of this is that it is
no longer possible to configure the behavior of $RST=* by defining
SETTINGS_RESTORE_ALL to include only a subset. I think it is
a bad idea from a customer support perspective to have the meaning
of this command be different for different builds.
Changed some of the #define ENABLE_ names to eliminate "EEPROM"
-- Changes that are purely cosmetic
Clarified descriptions in Config.h, to eliminate spurious/incorrect mentions
of "EEPROM"
Eliminated all mentions of the name "EEPROM" except the ones
that truly mean the EEPROM section, as opposed to generalized
non-volatile storage.
The contents of SettingsStorage.h and SettingsStorage.cpp, which
were really related to coordinate storage in Eeprom, not proper
settings, were moved to Eeprom.h and Eeprom.cpp. The SettingsStorage
files are gone.
Got rid of get_step_pin_mask() and get_direction_pin_mask() because
they were just aliases for bit(). That eliminated some junk from
the SettingsStorage/Eeprom files. Those files now tightly contain
only the residual stuff related to the storage of coordinate data
in EEPROM.
* $sd/show and handle settings in SD files
* Added $LocalFs/Show and fixed $LocalFs/Run output
* Infer / at beginning of SD path name
The LocalFS path processing code already inserts
a / at the beginning of the path is one isn't
present. This patch does the same for SD files.
* Show $ command responses in WebUI console
* Added $Settings/ListChanged AKA $SC
This is useful for saving settings in a compact form that
leaves defaults unchanged.
* $sd/show works in idle or alarm state
* Apply idle/alarm checks to SPIFFS files too
This is a patch necessary for F360 personal users, because they decided to add a very lengthy comment...
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fixed various small bugs (#605)
* Fixed various small bugs
* Fixed potential cast bug
* Fixed double reporting of errors
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Stallguard tuning (#607)
* Devt (#571)
* Handles Tranimic drivers errors better
- If an unsupported driver is specified, it will give a message and not crash.
* Cleaned up unused files
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Fix ENABLE_AUTHENTICATION (#569)
* Fixed authentication code.
* Removed another const cast
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fix step leakage with inverted steps (#570)
* Fix step leakage with inverted steps
* Update build date for merge
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Update platformio.ini
Per PR 583
* Created an enum for mode
* Removing some unused machine defs
* Added test machine definition
* Clean up for PR
* Remove test machine def.
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Basic testing Complete
* Made state variable volatile.
* Homing cycle settings (#613)
* Initial Tests Complete
* Update Grbl.h
* Update variables
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
* fixed dual switches when inverted (#614)
* fixed dual switches when inverted
* Removed debug message
* Cleaning up the machine defs
Removed unused #defines.
* Store coordinate offsets in NVS (#611)
* Store coordinate offsets in NVS
* Handle both old Eeprom formats
* Implementing fixes (#616)
- Stop creating additional tasks when limit_init() gets called again from homing and resets
- Explicitly delete an object that was causing a memory loss.
* Update Grbl.h
* Tweak memory fix and add $H check for $Homing/Cycles
* Fix G28.1 and G30.1
* Update Grbl.h
* Homing cycle defaults (#624)
* Changed to add homing cycle defaults
There needs to be a way to set the homing cycle defaults in a machine definition.
There will likely be a better way to do this in the future.
* Update 10vSpindle.cpp
Had wrong error message
* Fixed typos and removed obsolete #defines
* Probe cleanup (#625)
* Cleanup probing code
* Update Grbl.h
* Update after review
* Update error_codes_en_US.csv
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Changed to add homing cycle defaults
There needs to be a way to set the homing cycle defaults in a machine definition.
There will likely be a better way to do this in the future.
* Update 10vSpindle.cpp
Had wrong error message
* Fixed various small bugs (#605)
* Fixed various small bugs
* Fixed potential cast bug
* Fixed double reporting of errors
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Stallguard tuning (#607)
* Devt (#571)
* Handles Tranimic drivers errors better
- If an unsupported driver is specified, it will give a message and not crash.
* Cleaned up unused files
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Fix ENABLE_AUTHENTICATION (#569)
* Fixed authentication code.
* Removed another const cast
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fix step leakage with inverted steps (#570)
* Fix step leakage with inverted steps
* Update build date for merge
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Update platformio.ini
Per PR 583
* Created an enum for mode
* Removing some unused machine defs
* Added test machine definition
* Clean up for PR
* Remove test machine def.
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Basic testing Complete
* Made state variable volatile.
* Homing cycle settings (#613)
* Initial Tests Complete
* Update Grbl.h
* Update variables
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
* fixed dual switches when inverted (#614)
* fixed dual switches when inverted
* Removed debug message
* Cleaning up the machine defs
Removed unused #defines.
* Store coordinate offsets in NVS (#611)
* Store coordinate offsets in NVS
* Handle both old Eeprom formats
* Implementing fixes (#616)
- Stop creating additional tasks when limit_init() gets called again from homing and resets
- Explicitly delete an object that was causing a memory loss.
* Update Grbl.h
* Tweak memory fix and add $H check for $Homing/Cycles
* Fix G28.1 and G30.1
* Update Grbl.h
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Fixed various small bugs (#605)
* Fixed various small bugs
* Fixed potential cast bug
* Fixed double reporting of errors
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Stallguard tuning (#607)
* Devt (#571)
* Handles Tranimic drivers errors better
- If an unsupported driver is specified, it will give a message and not crash.
* Cleaned up unused files
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Fix ENABLE_AUTHENTICATION (#569)
* Fixed authentication code.
* Removed another const cast
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fix step leakage with inverted steps (#570)
* Fix step leakage with inverted steps
* Update build date for merge
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Update platformio.ini
Per PR 583
* Created an enum for mode
* Removing some unused machine defs
* Added test machine definition
* Clean up for PR
* Remove test machine def.
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Basic testing Complete
* Made state variable volatile.
* Homing cycle settings (#613)
* Initial Tests Complete
* Update Grbl.h
* Update variables
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
* fixed dual switches when inverted (#614)
* fixed dual switches when inverted
* Removed debug message
* Cleaning up the machine defs
Removed unused #defines.
* Store coordinate offsets in NVS (#611)
* Store coordinate offsets in NVS
* Handle both old Eeprom formats
* Implementing fixes (#616)
- Stop creating additional tasks when limit_init() gets called again from homing and resets
- Explicitly delete an object that was causing a memory loss.
* Update Grbl.h
* Tweak memory fix and add $H check for $Homing/Cycles
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
- Stop creating additional tasks when limit_init() gets called again from homing and resets
- Explicitly delete an object that was causing a memory loss.
* Fixed various small bugs (#605)
* Fixed various small bugs
* Fixed potential cast bug
* Fixed double reporting of errors
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Stallguard tuning (#607)
* Devt (#571)
* Handles Tranimic drivers errors better
- If an unsupported driver is specified, it will give a message and not crash.
* Cleaned up unused files
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Fix ENABLE_AUTHENTICATION (#569)
* Fixed authentication code.
* Removed another const cast
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fix step leakage with inverted steps (#570)
* Fix step leakage with inverted steps
* Update build date for merge
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Update platformio.ini
Per PR 583
* Created an enum for mode
* Removing some unused machine defs
* Added test machine definition
* Clean up for PR
* Remove test machine def.
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Devt (#571)
* Handles Tranimic drivers errors better
- If an unsupported driver is specified, it will give a message and not crash.
* Cleaned up unused files
Got rid of old unipolar files
Got rid of servo axis feature - it is a motor class now
Got rid of solenoid pen feature - never really used and it should be a motor class if it is.
* Fix ENABLE_AUTHENTICATION (#569)
* Fixed authentication code.
* Removed another const cast
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
* Fix step leakage with inverted steps (#570)
* Fix step leakage with inverted steps
* Update build date for merge
Co-authored-by: Bart Dring <bdring@buildlog.net>
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Update platformio.ini
Per PR 583
* Created an enum for mode
* Removing some unused machine defs
* Added test machine definition
* Clean up for PR
* Remove test machine def.
Co-authored-by: Stefan de Bruijn <atlaste@users.noreply.github.com>
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: Mitch Bradley <wmb@firmworks.com>
Co-authored-by: Bart Dring <bdring@buildlog.net>
* Changed [N_AXIS] arrays to [MAX_N_AXIS].
* Changed all occurrences of N_AXIS to the configuration variant `number_axis->get()`
* Added fake setting class.
* Fixed minor bug with [N_AXIS] due to merge.
* Fixed some unrelated things that were fixed in Devt
Co-authored-by: Stefan de Bruijn <stefan@nubilosoft.com>
Co-authored-by: bdring <barton.dring@gmail.com>
* Changes, not ready yet
* Some updates for M67
* WIP
* Updates
* Code cleanup and speed tweaks
* Prep for PR
* Cleaned up user I/O to use UNDEFINED_PIN as defaults.
* Cleaned up spurious code.
* Implemented gcode parsing. No action yet.
* Added iImmediate version of commands.
* Analog I/O working - don't merge yet.
* Ready for review
* Fixing issues and mask variable size