Commit graph

291 commits

Author SHA1 Message Date
InsanityAutomation d332fcb8fa Fix firmware-retract compile errors (#12061) 2018-10-10 16:46:08 -05:00
Scott Lahteine d556dc1865
Fix and improve EEPROM storage (#12054)
* Clean up Temperature PID
* Improve EEPROM read/write/validate
* Group `SINGLENOZZLE` saved settings
* Group planner saved settings
* Group filament change saved settings
* Group skew saved settings
* Group `FWRETRACT` saved settings
2018-10-10 09:45:20 -05:00
Scott Lahteine 9b5c1a5e77 Fix EEPROM checksum bug
Addressing #12048
2018-10-10 06:14:58 -05:00
Scott Lahteine cf5284cdf2
Add SD Firmware Update capability (#12043)
Co-Authored-By: timoxd7 <timoxd7@users.noreply.github.com>
2018-10-09 20:00:47 -05:00
InsanityAutomation 74cd6cb4fc Single nozzle filament change (#11994) 2018-10-07 17:06:14 -05:00
Scott Lahteine d6b0fbd771
Use uint8_t for all fan speeds (#12032) 2018-10-07 15:34:41 -05:00
Scott Lahteine e8d677620c Use NUM_SERVOS in EEPROM code
Fix #12015
2018-10-06 15:11:32 -05:00
Scott Lahteine c40ea1f0fd Update EEPROM_VERSION
And set EEPROM_OFFSET to 0, since the historical 100 skipped bytes are never used.
2018-10-03 11:34:34 -05:00
Scott Lahteine 1358bd9319 Make MAX_EXTRUDERS always 6 2018-10-03 11:32:19 -05:00
teemuatlut c3229e1b34 Migrate to a new TMC library (#11943) 2018-10-03 02:48:49 -05:00
Thomas Moore 3286325044 Add TMC2130 sensorless probing 2018-09-29 18:54:14 -05:00
Victor Tseng 93839e2f73 Add option to enable/disable autoretract altogether (#11904) 2018-09-28 16:52:56 -05:00
Scott Lahteine cee34f7290
Followup for BABYSTEP_HOTEND_Z_OFFSET (#11916) 2018-09-24 21:46:56 -04:00
InsanityAutomation 1104054d73 2.0 IDEX Independent z offset and other fixes (#11862)
* Add Formbot Raptor board

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>

* Add a second Z probe Z offset

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>

* Modify method to utilize live adjustment of hotend z offset

Should probably move config option to babystepping and rename as it may now apply to all multiextruder systems

* Move config item and catchup other code to current method
2018-09-24 09:40:48 -05:00
Scott Lahteine ea9eb2fc8f Fix servo angles in config-store 2018-09-21 15:41:36 -04:00
Scott Lahteine beab9733f8 Remove extra clauses in config-store 2018-09-19 17:06:51 -05:00
Roxy-3D 0780913848 IDEX Improvements (#11848) 2018-09-17 01:06:22 -05:00
Scott Lahteine 1718eff54a Code changes supporting up to 6 extruders 2018-09-16 22:32:53 -05:00
Thomas Moore c437bb08f1 Overhaul of the planner (#11578)
- Move FWRETRACT to the planner
- Combine leveling, skew, etc. in a single modifier method
- Have kinematic and non-kinematic moves call one planner method
2018-09-16 21:24:15 -05:00
Holger Müller 1a6f2b29b8 Add support for Triple-Z steppers/endstops 2018-09-16 00:35:58 -05:00
Scott Lahteine 8584d3697d Fix servo count define conflict
`MAX_SERVOS` => `NUM_SERVO_PLUGS`
2018-09-11 16:20:31 -05:00
Sam Lane 4f883d5971 [2.0.x] Extruder-Distinct Linear Advance K Factors (#11789) 2018-09-10 22:37:32 -05:00
Scott Lahteine 8e18e48d49
Merge pull request #11610 from Freeviv/bugfix-2.0.x
[2.0.x] Editable servo angles
2018-09-03 03:55:38 -05:00
scott0122 ada85d5585 Improve HOTEND OFFSET Z display precision to 3 (#11686) 2018-08-31 15:15:40 -05:00
Scott Lahteine 3e81745e81 Fix issues, make optional 2018-08-29 17:58:02 -05:00
Jan aa80e448e2 Store servo angles in EEPROM 2018-08-29 17:58:02 -05:00
Scott Lahteine d1c9517903 Followup to hotend_offset[Z] patch 2018-08-24 21:32:00 -05:00
Dave Johnson c64199941e Compile only selected PIO environment (#11519) 2018-08-14 03:28:52 -05:00
Scott Lahteine 6a8b906318 Followup for persistent_store_api.h 2018-08-13 17:43:35 -05:00
Chris Pepper 66d2b48b59 Update PersistentStore api (#11538)
- Clean up the API to use a `static` class instance to adhere to Marlin convention
- Add `const` position data access for read/write
- Add Storage capacity to the interface
2018-08-13 17:30:25 -05:00
teemuatlut fbcdf5eaeb Simplify stepper driver per-axis selection 2018-07-25 02:47:43 -05:00
Roxy-3D 71df1f7f57
Don't display M421 information for UBL at startup
It takes too long to display the mesh data for large mesh's at startup.   We should consider ways to speed this up.
Perhaps it makes sense to display an entire row of the mesh instead of just one mesh point?
2018-07-17 17:19:52 -05:00
Scott Lahteine 63f4c9bdb9 Followup to float maths patch 2018-07-06 21:34:09 -05:00
etagle 1367df2875 Replace double with float, optimize calculation 2018-07-04 22:28:56 -05:00
Andy Shaw 3b3029c4bf Make max_e_jerk an array to reduce CPU usage (#11118) 2018-06-26 22:38:31 -04:00
Giuliano 8d8f257384 [2.0.x] Fix advanced pause init values (#11095)
Fixed for cycle used to initialize default values
2018-06-26 14:37:52 -04:00
Scott Lahteine da94e0bd27 Unsigned eeprom mesh addresses 2018-06-15 15:51:57 -05:00
Scott Lahteine 9d04f47d98 Improvements for junction_deviation_mm
- Drop `max_jerk` with `JUNCTION_DEVIATION`
- Add `max_e_jerk_factor` for use by `LIN_ADVANCE`
- Recalculate `max_e_jerk_factor` when `junction_deviation_mm` changes
- Fix LCD editing of `junction_deviation_mm`
2018-06-11 22:05:16 -05:00
Scott Lahteine a2f521d34b
Add Junction Deviation mm runtime setting (#10990) 2018-06-10 18:02:54 -05:00
Scott Lahteine 55aedf036b Fix M503 ABL mesh report. (Zero-based IJ indices) 2018-06-07 16:36:50 -05:00
Scott Lahteine d8b983f624
More concise M503 output for M906, M913, M914 (#10947) 2018-06-06 20:58:28 -05:00
Scott Lahteine 83d42f33e1 Add HAS_HOTEND_OFFSET_Z conditional 2018-05-19 17:05:15 -05:00
GMagician 3c76bda2d8 Fix switching extruder
`DONT_SWITCH` got lost along the way. Replace it with `DO_SWITCH_EXTRUDER` and adjust the code.
2018-05-19 17:05:15 -05:00
Scott Lahteine 08e36e264e Apply _AXIS macro 2018-05-13 06:51:01 -05:00
Scott Lahteine 625035a9ce
Fix M301 access to lpq_len (#10714)
Co-Authored-By: Zwaubel
2018-05-12 02:13:40 -05:00
Giuliano d99f1b2245 [2.0.x] EEPROM code cleanup (#10710) 2018-05-11 18:06:04 -05:00
Scott Lahteine b76344c080 More Trinamic cleanup 2018-05-10 00:12:10 -05:00
Scott Lahteine 6d9ec1852a Fix compilation of say_units
Fixes #10663
2018-05-09 00:30:29 -05:00
Scott Lahteine 55f1f8446b Show correct current units in M503 2018-05-08 06:29:53 -05:00
Sean 2d9b0a66fe Add Filament Change accelerations 2018-04-09 23:57:27 -05:00
Scott Lahteine 4c79dc1093 Fix a Serial+EEPROM compile error
Fixes #10278
2018-04-02 03:11:20 -05:00
Scott Lahteine 02f0f95d40
Handle disabled HYBRID_THRESHOLD in EEPROM (#10275) 2018-04-01 16:58:37 -05:00
Scott Lahteine 2bc7f416ee Fix missing comma in tmc_sgt
Fixes #10209
2018-03-28 17:05:14 -05:00
Bob-the-Kuhn 9656a82609 Fix G53/CNC_COORDINATE_SYSTEMS compilation, Travis testing (#10227) 2018-03-28 14:14:39 -04:00
Scott Lahteine b287560258 Fix say_M603 2018-03-28 12:54:58 -05:00
Bob-the-Kuhn 8870f9b1da Fix M503 helper functions following TMC updates (#10197) 2018-03-23 16:43:43 -05:00
Scott Lahteine 9da0797e29 Fix EEPROM size of tmc_hybrid_threshold
Followup to #10102
2018-03-23 02:08:35 -04:00
Roxy-3D 1628a9e864
make data declarations consistent 2018-03-22 19:25:28 -05:00
Scott Lahteine a46bac3100 Add 'I' parameter to M906/M913/M914; 'T' to M906/M913 2018-03-19 22:05:16 -05:00
Scott Lahteine c95450016b Improve Trinamic support in the EEPROM 2018-03-19 22:05:16 -05:00
Scott Lahteine 772810fb24 Followup to PORTVAR patch 2018-03-18 19:23:58 -05:00
Scott Lahteine 4aebe3d82e Pretty up EEPROM port args 2018-03-14 22:44:25 -05:00
Scott Lahteine 239902f861 Fix E2END and add EEPROM to Smart RAMPS
Reference #9983
2018-03-10 06:57:31 -06:00
Scott Lahteine 49ca67202f Patch configuration_store for extra serial port
Fix #9948
2018-03-09 07:42:27 -06:00
Scott Lahteine 966d9af98a Mesh export in Bilinear + UBL M503 2018-02-25 23:25:39 -06:00
Scott Lahteine 8d5a77001e EEPROM parity with 1.1.x 2018-02-25 23:03:09 -06:00
Scott Lahteine 0557ab5780 Fix CONFIG_ECHO_START bug
In reference to #9633
2018-02-25 05:34:52 -06:00
Scott Lahteine 2bd252b501
[2.0.x] LIN_ADVANCE v1.5 (#9712) 2018-02-23 00:53:29 -06:00
teemuatlut 5968a3e60e Add ADVANCED_PAUSE_FEATURE include 2018-02-22 20:28:46 +02:00
Scott Lahteine 472229b974 Fix #9681 2018-02-17 08:28:12 -06:00
Thomas Moore 1541224a81 Enable Z axis and delta sensorless homing (#9516) 2018-02-08 04:20:44 -06:00
Scott Lahteine 2bea1bda56 Move more strings to PROGMEM 2018-01-24 00:06:06 -06:00
Scott Lahteine 1dcfe193ac Optimize some serial strings 2018-01-23 19:14:00 -06:00
Scott Lahteine f7f8569bbf Fix skew settings report precision
Followup to changes from #8843
2018-01-22 08:32:47 -06:00
Scott Lahteine 90d011cc48 Use ADD_PORT_ARG for all cases 2018-01-22 06:27:22 -06:00
Thomas Moore 429e6ba8a6 Fix lcd_preheat dummy variable types 2018-01-19 15:24:13 -06:00
Thomas Moore cfd989d7c5 Fix EEPROM SettingsData for 32-bit architectures 2018-01-12 19:38:23 -06:00
Bob-the-Kuhn e633ce06c7 LCD contrast type mismatch is back
WORKS!
2018-01-11 10:32:58 -06:00
Thomas Moore f7efac57b7 Multi-host support 2018-01-10 00:14:47 -06:00
Scott Lahteine 7e000e6af4
More EEPROM field debugging (#9123) 2018-01-09 18:33:44 -06:00
Scott Lahteine 99516572b1 Fix TMC current read from EEPROM 2018-01-07 20:48:46 -06:00
Scott Lahteine 60d07f20e7 Make mbl.has_mesh() a method 2018-01-07 00:13:36 -06:00
Scott Lahteine 2b5a9be49c
Fix M503 skew output
Followup to 19e75ccf86
2018-01-06 20:55:57 -06:00
Scott Lahteine 702c8acdd5 Settings FIELD_TEST fix 2018-01-05 19:13:30 -06:00
Scott Lahteine e89f1453ab UBL G29 works without settings.load() 2018-01-05 15:48:34 -06:00
Scott Lahteine 950be70a33 Add FIELD_TEST to validate storage 2018-01-05 15:48:34 -06:00
Scott Lahteine 760c912ab9 Add data size validation 2018-01-05 15:48:34 -06:00
Scott Lahteine b91ca168fb Add a struct defining EEPROM storage 2018-01-05 15:48:34 -06:00
Scott Lahteine 51e0f2bee3 Add MarlinSettings::validate() 2018-01-05 14:35:24 -06:00
Scott Lahteine 878f54c27b Write filler with NO_VOLUMETRICS 2018-01-05 10:29:49 -06:00
Scott Lahteine 3ea6745b36 Pretty up TMC current write 2018-01-05 10:29:49 -06:00
Scott Lahteine 1c41de16d4 Trailing whitespace clean 2018-01-05 10:11:31 -06:00
Scott Lahteine 1746a7352e
Merge pull request #9042 from thinkyhead/bf2_M701_M702
[2.0.x] Improved Pause/Load/Unload, M701-M702
2018-01-04 19:41:58 -06:00
Roxy-3D 3a4e107b6b
use SERIAL_EOL(); instead of new line string 2018-01-04 16:20:18 -06:00
Roxy-3D 19e75ccf86
Add enough precision so planner.xy_skew_factor doesn't print as 0.00 2018-01-04 16:02:22 -06:00
Scott Lahteine 7541316bb4 Add M701/M702 Filament Load/Unload, M603 2018-01-04 15:07:37 -06:00
Scott Lahteine a80f2eea23 Group leveling reports for folding 2018-01-04 03:56:36 -06:00
Thomas Moore 8afc4f8d9d Fix UBL compilation warnings 2018-01-02 21:00:06 -06:00
Scott Lahteine 5effe1590c Fix NO_VOLUMETRICS bug 2017-12-26 20:04:44 -06:00
Scott Lahteine 4b49ea1e92 General cleanup of config-store, reset_bed_level 2017-12-25 05:16:01 -06:00
Scott Lahteine 933f76fda3 Option to disable all volumetric extrusion 2017-12-19 19:51:25 -06:00
Scott Lahteine fc9ee1a4de Fix up serial sanity check 2017-12-19 19:11:43 -06:00
teemuatlut 0cd1e91056 [2.0.x] TMC driver update (#8769) 2017-12-15 15:03:14 -06:00
victorpv a5150c83a2 [2.0.x] Multiple updates to STM32F1 HAL (#8733)
* STM32F1 HAL

Adding files for STM32F1 HAL based on libmaple/stm32duino core.
Current persistent_store uses cardreader changes to be sent in separate
commit, but could be changed to use i2c eeprom.
There is another persistent_store implementation that uses the MCU flash memory
to emulate eeprom
Adding readme with some information about the stm32 HAL.

* Switch to Timer4 to avoid a hard reset on STM32F103C6 boards

On bluepill STM32F103C6 boards, using Timer5 results in a error() vector call. Switch to 4 since these are both general purpose, 16 bit timers.

* Add support for EEPROM emulation using Flash

Some low end machines doe not have EEPROM support. Simulate it using the last two pages of flash. Flash does not allow rewrite between erases, so skip writing the working version if that's enabled.

* Basic Pins for a malyan M200

This is a work in progress to go hand in hand with the STM32 work.

* Add support for ADC with DMA. This work has exposed a problem with the pin enumerations in STM boards vs what marlin expects (i.e, try defining PA0 as a temp pin). The hack can be removed with we go to fastio completely. To see this work, set something in adc_pins to a value like PA0 and connect your pullup resistor'd thermistor.

* Missing file - change HAL_adc_init to actually do something

We have an actual ADC init function now.

* Remove pinmode hack

Remove the pin mode hack that I was using to init PA0.

Updated Readme.md

* Several changes to timers and GPIO

Faster GPIO, and faster timer functions by accesing registers and
libmaple.
Still more changes pending for the Timer's code to skip using the
HardwareTimer class altogether.

Switch all enums to be within #defines

This change allows a user to have, for instance, TEMP_4 and TEMP_BED definied but nothing else. The enums which are not defined move "out", allowing the first ones to take the slots in the enum, and since the array is sized on ADC_PIN_COUNT, we always have the right size data and in order.

* Update Malyan M200 pins

Update Malyan M200 pins with correct fan values.

* Test all pins on actual hardware, update definitions

Some of the pin definitions were from knowlege base/pdfs. Now they've been tested against actual hardware. This should be very close to final.

* Update HAL_timers_Stm32f1.cpp

* Add sample configurations for Malyan M200

Add sample configuration for Malyan M200 without bed leveling, and move fan to auto cool E0 since this printer by default has only one fan.


Choose the timer based on MCU defintion. Timer5 is not valid on C8/CB class boards, so use Timer4 for the step timer.


readme.md update

* Updates to timers, and some stm32 boards definitiions

* Correct pin toggle macro.

* Remove duplicated Malyan M200 entry from pins.h

* Update configuration_store.cpp

* Formatting, indentation

* Formatting in HAL_Stm32f1.cpp
2017-12-10 23:12:45 -06:00
Scott Lahteine 204199e1ce Only compare XYZ to check motion 2017-12-10 23:00:00 -06:00
Scott Lahteine 6686d937fb Always report position on config load/reset 2017-12-10 21:47:14 -06:00
Scott Lahteine a4e1d83599 Fix M503 S parameter 2017-12-06 21:23:37 -06:00
Jonathan Barchi 05f8e98c4a Fix for issue #8629 - mismatch between number of stored and loaded dummy items on non-delta machines. (#8631) 2017-12-02 19:04:58 -06:00
Scott Lahteine 0154e3480c New feature: BED_SKEW_CORRECTION 2017-12-01 19:39:49 -06:00
Scott Lahteine 91fb6231b2 Fix EEPROM V45 header, layout 2017-11-30 22:45:17 -06:00
Scott Lahteine a9ecb975b2 Apply LINEAR_UNIT to M503 output for M200 2017-11-24 17:32:48 -06:00
Scott Lahteine 3bba7d60f3 No retroactive changes with M851 Z
If using babystep to adjust the Z probe offset, the axis will move and the mesh will be updated at the same time, causing a doubling of the Z offset over the rest of the print.

To correct for this, the current Z position would need to be modified in the opposite direction, canceling out the additional Z offset added to the mesh. This would be confusing to users, and moreover it would not be accurate without also taking the current Z fade level and current Z height into account.

It might make sense to change the mesh in the case where no babystepping is taking place, but this could be considered an undesirable side-effect of changing the `zprobe_zoffset`.

One way to remedy this would be to return to storing the mesh with `zprobe_zoffset` included, then subtracting `zprobe_zoffset` from the returned Z value. Thus, a babystep moving the Z axis up 1mm would subtract 1 from `zprobe_zoffset` while adding 1 to all mesh Z values.

Without including the `zprobe_zoffset` in the `z_values` there is no safe way to alter the mesh in conjunction with babystepping, although it's fine without it.
2017-11-18 03:36:39 -06:00
Scott Lahteine 63257dc083 Fix M503 output for M145
Fixes #7978
2017-11-15 04:00:18 -06:00
Scott Lahteine 36426af564
Merge pull request #8356 from tcm0116/2.0.x-M600
[2.0.x] Normalize load/unload length in M600
2017-11-10 19:44:08 -06:00
LVD-AC e334efb2a7 PROBE_MANUALLY etc. 2017-11-10 19:27:33 -06:00
Scott Lahteine cba9c1cf9e Add pre-calculated planner.e_factor 2017-11-10 03:14:24 -06:00
Thomas Moore f34c3597dc Add delta_height variable in lieu of using home_offset 2017-11-08 22:10:08 -06:00
Thomas Moore 73ca5345e1 Fix Delta EEPROM 2017-11-07 16:48:21 +00:00
Scott Lahteine 85a62bbf46 Misc. fixes to compiler warnings, etc. 2017-11-06 22:57:05 -06:00
Roxy-3D 6324b09934
Revert "Fix EEPROM crc (#8284)" (#8292)
This reverts commit 172c36f517.
2017-11-06 19:52:05 -06:00
Rowan Meara 172c36f517 Fix EEPROM crc (#8284) 2017-11-06 19:19:30 -06:00
Scott Lahteine 1b40e9c464 Implement CNC_COORDINATE_SYSTEMS 2017-11-04 22:28:46 -05:00
Scott Lahteine c07bbd4154 Prettify some EEPROM code 2017-11-04 22:28:46 -05:00
Scott Lahteine 817175613a
Merge pull request #8157 from thinkyhead/bf2_anet_10_servo
[2.0.x] Define a default SERVO0_PIN for Anet 1.0
2017-10-29 19:55:00 -05:00
Scott Lahteine 723f2a77f6 Implement support for Dual X and Y endstops 2017-10-29 18:56:04 -05:00
Scott Lahteine 3e8754a38a Add/correct time units on planner vars / M205 B 2017-10-29 18:47:21 -05:00
Roxy-3D 572cf0ec95 UBL able to generate mesh and save and load it on 32-bit platforms (#8015)
* Get UBL Mesh Generation, Mesh Save & Mesh Load working with 32-Bit platforms

* clean up read_data() and write_data() for non-LPC1768 HAL's

* Get read_data() and write_data() return codes consistent

All HAL's read_data() and write_data() return false if they succeed.

* Get read_data() and write_data() return codes to be consistent

Make read_data() and write_data() return true if an error happens.

* Say UBL is now checked out on machine types in default Configuration.h file.
2017-10-18 14:00:29 -05:00
Scott Lahteine 1344ca4b2f UBL no longer needs ubl_state 2017-10-14 02:18:32 -05:00
Scott Lahteine 3e3911fb81 Use planner.leveling_active for all leveling systems 2017-10-14 02:18:31 -05:00
Scott Lahteine 9a930ebec2 Make leveling_is_active a macro 2017-10-14 02:18:31 -05:00
Scott Lahteine 1adb5a6a48 Remove obsolete UBL z_offset 2017-10-13 08:22:46 -05:00
Thomas Moore ae2173cd52 Synchronize retractions 2017-09-30 17:28:46 -05:00
Scott Lahteine 6d5fcac54a G33 changes from 1.1.x 2017-09-24 14:16:23 -05:00
GMagician 00b1b33816 Fix compiler warning 2017-09-23 15:31:51 +02:00
Scott Lahteine 64dfb46461 Move z_endstop_adj to Endstops 2017-09-21 16:27:11 -05:00
Scott Lahteine a10451ceed Move Volumetric methods to Planner 2017-09-21 16:27:11 -05:00
Scott Lahteine 551752eac7 Consolidate "bedlevel" code 2017-09-21 16:26:47 -05:00
Scott Lahteine 63228fc453 Move volumetric flag to GCodeParser 2017-09-21 16:26:47 -05:00
Scott Lahteine a98e9874db FWRETRACT as a feature 2017-09-21 16:26:46 -05:00
Scott Lahteine 3d8a0ab4b2 Module updates 2017-09-21 16:26:42 -05:00
Scott Lahteine 0c9231fd04 Move 'module' files 2017-09-12 14:51:05 -05:00
Renamed from Marlin/configuration_store.cpp (Browse further)