Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Combine more tool change variables #12137

Conversation

InsanityAutomation
Copy link
Contributor

@InsanityAutomation InsanityAutomation commented Oct 18, 2018

Fairly well tested on idex, single nozzle, and chimera type setups. Following the latest rebase, ill run it through one more round.

Make Tool Change filament swap available to all tool changes
Make tool change park position available to all extruders
Reduce duplicated code in tool change and streamline

@thinkyhead
Copy link
Member

These all still depend on ENABLED(SINGLENOZZLE) so it's not important to change the names.

We could really use more help fixing bugs and improving the HALs rather than eating up maintainer time on these kinds of tweaks.

@tcm0116
Copy link
Contributor

tcm0116 commented Oct 18, 2018

We could really use more help fixing bugs and improving the HALs rather than eating up maintainer time on these kinds of tweaks.

Are these high-priority items listed somewhere where contributors can go claim something to work on?

@thinkyhead
Copy link
Member

thinkyhead commented Oct 18, 2018

I haven't personally written up such a list in my copious spare time. But I can think of a few things…

If the Issue Queue wasn't so clogged with support requests, it would probably be more useful for tracking —I dunno— issues. We're trying to push end-user support elsewhere, so hopefully this will improve.

Anyone is free to use the issue search to find the more interesting open bug reports and feature requests and jump on those things. It may take some imagination to recognize the absence of something, so we often rely on users to tell us what is broken or missing for their needs. Marcio of AlephObjects is one person who's on top of this kind of thing.

Machines and devices that are lacking support make good candidates. Features found in other forks are good candidates for things that would be good to port over. There are several touch screen devices, for example, which vendors ship with their printers, but which we don't yet support. There's all kinds of things that can be found to work on.

@InsanityAutomation
Copy link
Contributor Author

I don't have any of the other 32bit boards, I may get one sometime soon. Biggest things I've been looking at is eliminating duplicated stuff to remove complexity to an extent. I recognize this is the lowest of low priorities, and not really key compared to actual problems. And yeah, there's still more to do here before it's even close to workable with everything so like I mentioned before just kinda dropped here to have Travis tests as I work on it, since my repo doesn't :) please ignore this and I'll ping you when it's at a point worth more than 3 seconds scanning past!

@p3p
Copy link
Member

p3p commented Oct 18, 2018

mentioned before just kinda dropped here to have Travis tests as I work on it, since my repo doesn't :)

To simplify your life a little (and help not clutter the PR list) you can turn Travis on for your fork in the settings, the tests can also be run locally with bash ./buildroot/share/tests/run_tests . ALL , on windows the tests can be run using Git Bash, ALL can be replaced with the specific platform you are testing for.

@InsanityAutomation
Copy link
Contributor Author

I'll do some poking in the git settings. I'm far from an expert on it! At least the pr's here are nowhere near the issues! Trying to find a good balance of not going too far in a direction that thinkyhead disagrees with yet not wasting his time looking at stuff too early.

@GMagician
Copy link
Contributor

[cut] you can turn Travis on for your fork in the settings [cut]

@p3p thanks, this is a real help for me.

@thinkyhead
Copy link
Member

Rebased, squashed, etc.

@thinkyhead thinkyhead force-pushed the CombineMoreToolchangeOptions branch 3 times, most recently from d22ce35 to a6d9fb3 Compare October 19, 2018 20:17
@InsanityAutomation
Copy link
Contributor Author

@thinkyhead thanks - I'll be working on the sanity checks and such tonight or tomorrow.

@thinkyhead thinkyhead force-pushed the CombineMoreToolchangeOptions branch 4 times, most recently from c4ba52c to d567d16 Compare October 19, 2018 20:26
@InsanityAutomation
Copy link
Contributor Author

@p3p got travis working on my repos last night - didnt realize it wasnt a commercial tool! So now ill have things checked with travis before I open PR's and pm thinkyhead for feedback on direction before getting too far on a PR in the wrong direction, and hopefully have PR's more complete for you guys before you see what im doing.

@thinkyhead
Copy link
Member

Yeah, Travis CI is handy. I rely on it to catch my oversights.

@thinkyhead
Copy link
Member

Rebased, squashed, fixed commit message…

@@ -681,7 +681,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
enable_solenoid_on_active_extruder();
#endif

#if HAS_SOFTWARE_ENDSTOPS && ENABLED(DUAL_X_CARRIAGE) && HAS_WORKSPACE_OFFSET
#if HAS_SOFTWARE_ENDSTOPS && ENABLED(DUAL_X_CARRIAGE)
update_software_endstops(X_AXIS);
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no reason to call update_software_endstops if the endstops aren't going to change. The soft endstops only change on a tool-change if using something like a Dual X Carriage or a Switching Nozzle, whose X limits may be different depending on which carriage(s) or hotend is/are engaged. Examine update_software_endstops to determine the exact cases where the soft endstops could, in fact, be modified.

planner.buffer_line(current_position, toolchange_settings.prime_speed, tmp_extruder);
#if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
#if ENABLED(PREVENT_COLD_EXTRUSION)
if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
Copy link
Member

@thinkyhead thinkyhead Oct 21, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This logic looks exactly backwards: "If too_cold then go ahead and do the swap"?

#endif
#endif
if( !no_move ) {
Copy link
Member

@thinkyhead thinkyhead Oct 21, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One space between if and the opening parenthesis. No space padding inside if conditions, unless needed for readability in situations with many parentheses.

#endif
#endif
if( !no_move ) {
if (!no_move) set_destination_from_current();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to check this inside the if (!no_move) block.

Copy link
Member

@thinkyhead thinkyhead Oct 21, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that do_blocking_move_to... functions can and will overwrite destination, so this isn't a safe place to save the current position for later if those functions are used (which they are).

// Move back down. (Including when the new tool is higher.)
do_blocking_move_to_z(destination[Z_AXIS], planner.settings.max_feedrate_mm_s[Z_AXIS]);
}
if (!no_move) do_blocking_move_to(current_position, feedrate_mm_s);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to check this inside the if (!no_move) block.

@InsanityAutomation
Copy link
Contributor Author

That was my thought, and why I wanted some feedback from a more sr dev who now has an idex machine! :)

@Roxy-3D
Copy link
Member

Roxy-3D commented Oct 25, 2018

It behaves rationally when switching into (and out of) IDEX Duplication mode, right?

@InsanityAutomation
Copy link
Contributor Author

Since this doesnt touch M605 or the do blocking move / idex unpark code, that shouldnt be affected. Ive run a couple duplicate mode prints since writing this, but not since the last rebase. Ill probably get into duplicate mode again finishing party favors for the kids preschool halloween party next week though!

@InsanityAutomation
Copy link
Contributor Author

To be more precise, this just sets the current position after raising as the raised position to the unpark move, so it shows no vertical move to make, and removes the lower move from the park sequence. The move back to stored destination then handles coming back down to the original position. This way none of the outside functions needed changes :)

@Roxy-3D
Copy link
Member

Roxy-3D commented Oct 25, 2018

I understand your thinking... You are probably correct. But I do have one caution to communicate. When I first started doing tool changes into and out of Duplication mode, I ran into some problems. The reason is the stepper macros were very optimized and did not change direction (on the stepper driver chips) unless it was needed.

The problem is assumptions were made about which tool was active and which direction it last traveled. And that logic is done on a per Axis basis. So, there were a number of places where a steppers.set_direction() call was needed. As I added more and more of those, I got less and less nozzle crashes and the nozzles trying to run off the end of the rail.

I didn't add any stepper.set_direction() calls that were not needed. (I didn't want to burden the CPU with anything that wasn't truly needed.) But I'm not 100% convinced I've found all the places where it is needed yet. So, that is mostly the reason I'm typing this. I think there are still places where we need to flip the direction of the stepper driver chips and most of the ones I saw had to do with tool changes and going into and out of duplication mode.

Just something to be aware of!

@InsanityAutomation
Copy link
Contributor Author

I saw more dealing with target position outside reachable range for the nozzle. Realistically the stepper class should handle all of the direction changes, and none were removed that existed before. Hopefully the fix from the other day limits how many calls to that are needed now though.

@Roxy-3D
Copy link
Member

Roxy-3D commented Oct 25, 2018

Realistically the stepper class should handle all of the direction changes, and none were removed that existed before.

Agreed... And... the stepper class should natively handle the switching of IDEX modes too. But that is going to have to wait for another day.

@InsanityAutomation
Copy link
Contributor Author

Yeah, that's much is way beyond what either of us have been working on! Regressions and crashes gone first. Fully implemented next, then deep integration and optimization :)

@InsanityAutomation
Copy link
Contributor Author

Also, I still don't see you on discord! Lol

@Roxy-3D
Copy link
Member

Roxy-3D commented Oct 26, 2018

Yes. That is true. I try hard not to ask people for information that I can acquire myself. I know for a fact that Thinky sent out the server information, but I haven't had time (or motivation) to search for it and find it.

If you cut and paste it... It will speed up the process.

@InsanityAutomation
Copy link
Contributor Author

That's easy,
https://discord.gg/pSTMVX

And the original post

#11846

@thinkyhead
Copy link
Member

I’m relieved to know that searching for the word “discord” doesn’t turn up too many issues.

@InsanityAutomation
Copy link
Contributor Author

We almost hope that changes as support requests get the response go to discord!

@InsanityAutomation
Copy link
Contributor Author

Ok, got this rebased and mergable again. Now to just make sure travis is still happy!

planner.buffer_line(xhome, CUR_Y, CUR_Z, CUR_E, planner.settings.max_feedrate_mm_s[Z_AXIS], active_extruder);

// Park old head
planner.buffer_line(xhome, current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], planner.settings.max_feedrate_mm_s[X_AXIS], active_extruder);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's somewhat better to have the Z raise move be separate from the parking move to XY. At least, in the original conception, the idea was that you might want to raise the head up to give clearance first, then move to the park position, and then drop back down. This would be useful for situations where the print is just starting, and the extruder sits inside a purge bucket which has a raised edge. The move raises first to clear the edge, then moves to the park position, and then lowers back down below the edge of the purge bucket. When un-parking the move again raises to clear the edge, moves, and lowers back down to start or continue the print.

Copy link
Contributor Author

@InsanityAutomation InsanityAutomation Nov 7, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The z raise is done before it gets into this function based on the commonized variable.

planner.synchronize();
}

// Apply Y & Z extruder offset (X offset is used as home pos with Dual X)
current_position[Y_AXIS] -= hotend_offset[Y_AXIS][active_extruder] - hotend_offset[Y_AXIS][tmp_extruder];
current_position[Z_AXIS] -= hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
current_position[Z_AXIS] += TOOLCHANGE_ZRAISE;
Copy link
Member

@thinkyhead thinkyhead Nov 7, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems incorrect. We are changing the Y and Z here because a new tool has been selected, not because something moved. On Dual X the Z position of the new tool should be identical to the current position of the previous tool (plus the difference in Z hotend offsets).

The TOOLCHANGE_ZRAISE should have already been added to current_position[Z_AXIS] before performing a move that uses current_position as the destination. (And why is this TOOLCHANGE_ZRAISE and not toolchange_settings.z_raise)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should definitely have been toolchange_settings.z_raise, but off hand I dont remember why I put it in the dxc function only, was a couple weeks ago at this point. Ill go over this again and see the impact adding and removing it, then verify the single nozzle stuff on the CR-X with this not being run.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just ran the dxc tool change with and without that line and didnt see a change. I think it was probably an oversight removing altogether from before the secondary motion was removed to bring it back up as it was doing originally.

@thinkyhead thinkyhead merged commit d935b91 into MarlinFirmware:bugfix-2.0.x Nov 7, 2018
thinkyhead pushed a commit that referenced this pull request Nov 7, 2018
thinkyhead added a commit that referenced this pull request Nov 7, 2018
@InsanityAutomation InsanityAutomation deleted the CombineMoreToolchangeOptions branch November 7, 2018 15:36
jacyro added a commit to jacyro/Marlin that referenced this pull request Dec 27, 2018
* Synchronize on M204, M205 (MarlinFirmware#12302)

* Add parser.seen for multiple parameters
* Fix M666, use !seen for report
* Synchronize on M204, M205

* Ignore ARM-based Teensy library on ATUSB90-based Teensy (MarlinFirmware#12311)

Works around PIO src_filter behavior (see platformio/platformio-core#1905)

* Tweak / reduce menu items

* IS_DELTA => ENABLED(DELTA)

* Clear up HAS_WORKSPACE_OFFSET meaning

* Revive SCARA's home offset (unimplemented)

* Use first_page flag in place of page.page == 0

* Apply #pragma once, misc cleanup (MarlinFirmware#12322)

* Apply #pragma once in headers
* Adjust some thermistors formatting
* Misc cleanup and formatting

* Fix broken LPC176x build (MarlinFirmware#12317)

* Fix broken LPC176x build
* Add UBL+HD44780 test for LPC1768

* Return to status to show manual deploy/stow messages (MarlinFirmware#12324)

* Add servos to pins_FYSTEC_F6_13.h

* Remove dead comment

* Fix VMAX editing

Fix MarlinFirmware#12326

* Use board-specific or platform SPI pins in HAL_STM32 (MarlinFirmware#12323)

* Suppress some compile warnings

* Fix EEPROM servo angles init, section grouping

* Drop 'register' storage specifier

* Provide DOGLCD SPI pins for MKS SBASE + VIKI

* Update Italian language (MarlinFirmware#12327)

* Allow disable of LCD_TIMEOUT_TO_STATUS (when 0)

* Clean up some U8G files

* Clean up file endings

* Turn PlatformIO LDF off for LPC176x builds (MarlinFirmware#12334)

* Update, correct sanity-checks for up to 6 extruders (MarlinFirmware#12333)

* Extend error messages for E factors sanity-checks

* ENABLED(NEWPANEL) => HAS_LCD_MENU

* MSG_UBL_EDIT_MESH_MENU => MSG_EDIT_MESH

* Add a mesh edit menu for MBL / ABL-Bilinear

* Add MESH_EDIT_MENU to example configs

* Cleanups for leveling-related code

* M420 support in MARLIN_DEV_MODE

* Fix endstops enable behavior during probing

Fix a bug introduced in MarlinFirmware#9582

* Recommend keeping endstops off

* Fix 'M43 T' to use 'L' as last pin

- The documentation is correct. The code was wrong.

* Provide a default for Z_PROBE_LOW_POINT

* Use multiplier edit item for mesh point editing

* Update and fix CHDK

* Clean up ENCODER_RATE_MULTIPLIER config

* G28 O respects HOME_AFTER_DEACTIVATE

Addressing MarlinFirmware#11271

* Prevent current step-down going negative

Addressing MarlinFirmware#11348

* Fix "circle"

* Fix MBL XY parameter error messages

Fix MarlinFirmware#11522

* Updated slovak translation (MarlinFirmware#12338)

* Update German language (MarlinFirmware#12336)

* Hide mesh editing until a valid mesh exists

* Restore LPC1768_PIN_INTERRUPT_M, apply to Z3

- In reference to MarlinFirmware#12166

* Clean up bq Zum Mega 3D pins

* Remove trailing whitespace

* Add Geeetech Rostock 301 config, update GTM32 Pro VB pins (MarlinFirmware#12345)

* Update Italian language (MarlinFirmware#12344)

* Change Marlin debug flag names to fix conflicts (MarlinFirmware#12340)

In reference to MarlinFirmware#11000

* LCD menu code refactoring and cleanup (MarlinFirmware#12308)

* Show the appropriate pause message (MarlinFirmware#12348)

* Fixed advanced pause messages (MarlinFirmware#12353)

* Apply some tool-change cleanup

* More advanced pause tweaks (MarlinFirmware#12356)

* Followup to LCD_TIMEOUT_TO_STATUS=0
* Make continuous purge screen fit 20x4
* Unify purge message modes
* Preserve last-set pause header mode

* Update German translation (MarlinFirmware#12355)

* Update Slovak translation (MarlinFirmware#12354)

* Update Italian language (MarlinFirmware#12352)

* Fix const pointer assignment compile error (MarlinFirmware#12350)

* Use IS_SD_PRINTING() more

* Use card.stopSDPrint() for completeness

* Fix Resume from SD Pause

In reference to MarlinFirmware#12098 (comment)

* Restore GTM32_PRO_VB temp and heater pins

Undo MarlinFirmware#12345

* Set CUSTOM_MACHINE_NAME for some configs

* Combine more tool-change variables (MarlinFirmware#12137)

* Fix up xdiff, ydiff, zdiff in tool change

Followup to MarlinFirmware#12137

* Clean trailing whitespace

* Apply HAS_LCD_MENU in EEPROM code

* Remove obsolete comments

* Extend pins errors to include the processor

* More comprehensive NO_LCD_MENUS (MarlinFirmware#12367)

* No error on T0 with single-extruder and fix MIXING_EXTRUDER virtual tools (MarlinFirmware#12375)

* Update Slovak translation (MarlinFirmware#12376)

* Update Italian language (MarlinFirmware#12368)

* [2.0.x] Macro G-codes (MarlinFirmware#9365)

* Fix M91x sanity-check to permit TMC2660

Fix MarlinFirmware#12362

* Solve endstops issues (MarlinFirmware#12382)

- Partially reverts MarlinFirmware#11900 and tries to solve MarlinFirmware#12336

* Update German language (MarlinFirmware#12379)

* Have 'mfdoc' open the local site when it's ready

* Add reference comments to MeshLevelingState

* Break out of 'mfpub' if 'gh-pages' checkout fails

* Use 'serial_spaces' in 'print_2d_array'

* Tweak 'echo_not_entered' used by MBL's G29

* Tevo Little Monster example configuration (MarlinFirmware#12370)

* Allow G26 to use the active extruder (MarlinFirmware#12387)

* Make lcd_quick_feedback argument optional
* Add click_to_cancel option to wait_for_hotend/bed
* Have G26 use the active nozzle and wait_for_hotend/bed
* Use wait_for_release in UBL G29
* Add 'T' parameter to G26 for an initial tool-change

* Update Raptor config

* Update HAL and libs formatting

* Reduce code size with plain inlines

* Apply extra condition to LCD_PROGRESS_BAR

* Adjust some comment spacing

* Encapsulate common display code in a singleton (MarlinFirmware#12395)

* Encapsulate common LCD code in a singleton
* Depend more UBL code on UBL_DEVEL_DEBUGGING
  - Since most users don't need the debugging on at all times, this helps reduce the default build size for UBL by over 2K, a little closer to fitting on 128K boards.

* Clean up LCD width/height determination

* For now (!) don't synchronize in M204 and M205

See if this has any deleterious effect on motion planning by slicers that inser their own jerk and acceleration controls. The problem I see is that these settings can take effect on blocks already in the planner, and the only way around this would be to shadow these settings in planner blocks and use the shadowed settings in the planner.

* Update UBL comments for debug change

* Differentiate translated On/Off from Serial ON/OFF

* Fix BABYSTEP_ZPROBE_OFFSET (MarlinFirmware#12408)

Fix MarlinFirmware#12399

Did not compile without  `WATCH_HOTENDS || WATCH_THE_BED`.
Add condition to include "../../module/temperature.h".

* Clear old _site contents on regeneration

* Followup to 50af1d1

* Add M412 to enable/disable filament runout detection (MarlinFirmware#12406)

* Clean TLM trailing whitespace

* Group status methods, share reset_status with Extensible UI (MarlinFirmware#12414)

* Group status methods, share reset_status with Extensible UI
* Move common DOGM code to headers

* Refine endstops fixes (MarlinFirmware#12413)

When endstops/probe are enabled `ENDSTOP_NOISE_THRESHOLD` calls to `update` are required to properly re-sync endstops/probe status.

* Fix tool-change for MIXING_EXTRUDER with < 2 virtual tools (MarlinFirmware#12417)

Fix MarlinFirmware#12416

Better handling of `ENABLED(MIXING_EXTRUDER) && !MIXING_VIRTUAL_TOOLS > 1` -  to not fall through to the general case. Fix compiler warnings for `#elif EXTRUDERS < 2`.

* Debug of G2-G3 for UBL (MarlinFirmware#12386)

Changes only affect UBL.  Everything else is left alone.

* Updates to Formbot T-Rex 2+ configuration files (MarlinFirmware#12422)

Updates to Formbot T-Rex 2+ configuration files

* Endstops fix followup (MarlinFirmware#12423)

Followup to MarlinFirmware#12413

* Add required "cardreader.h" include (MarlinFirmware#12419)

* Update Portuguese-Brazilian translation (MarlinFirmware#12402)

* Fix Formbot Trex-2+ configs

Followup to MarlinFirmware#12422

* Clean up pins files

* UltiMachine Archim 1 support (MarlinFirmware#12404)

* Fix an old sanity check

* hasstatus => has_status

* Move RRW keypad code to a common method (MarlinFirmware#12429)

* Rejigger Filament Runout class (MarlinFirmware#12428)

* Miscellaneous LCD code renaming, reordering (MarlinFirmware#12430)

* Move special characters to language.h
* Apply some naming standards
* Clean up menu item draw functions
* Rename some Temperature methods
* UI => ExtUI

* Fix to runout sensor code. (MarlinFirmware#12431)

- "old_state" is no longer a class static variable.

* Optimize target_extruder, ignore T with mixing (MarlinFirmware#12432)

* Optimize target_extruder, ignore T with mixing
* Give G-code Tn parity with tool_change

* Fix GcodeSuite::T active_extruder reference

* Tweak extruder errors

* No need for Cap:PAREN_COMMENTS

* Support two MAX6675 thermocouples (MarlinFirmware#8686)

* Optimize Power-Loss Recovery (MarlinFirmware#12440)

* Consolidate, optimize some LCD menu code (MarlinFirmware#12450)

* Make CardReader class static (MarlinFirmware#12451)

* Make CardReader a static class
* Make CardReader flags into bitfields

* Use 'target_extruder' in M104 as with M109 (MarlinFirmware#12448)

* Enable SD Card on RepRap Display and RADDS (MarlinFirmware#12446)

* Enable SD Card on RepRap Display and RADDS

Define the necessary pins in `pins_RADDS.h` (copied from the `RADDS_DISPLAY` section) for the use of the SD card slot on RRD.

* Fix a compile warning (MarlinFirmware#12452)

* Allow float XY probe offsets

Responding to MarlinFirmware#12383

XY probe offsets should be integers because adding decimal points makes the code larger. But if decimals are very much wanted, this commit removes the old restriction.

* Followup to static CardReader

* Change temperature pin order for RemRam V1 (MarlinFirmware#12458)

Beta testers suggested to adopt the RAMPS order of temperature probe connectors. This commit fixes the order to the RAMPS order.

* Fix compile error with SD_FIRMWARE_UPDATE (MarlinFirmware#12462)

* Fix compile error with ZONESTAR_LCD+NO_LCD_MENUS (MarlinFirmware#12466)

* Don't start watching heaters when target is 0 (MarlinFirmware#12453)

* Various fixes for MarlinUI and ExtUI (MarlinFirmware#12439)

* Remove extra include

* Fix MAX_MESSAGE_LENGTH

* Fix access to the DWT peripheral for STM32 HAL (MarlinFirmware#12434)

Access to the DWT peripheral for the `CYCCNT` register needs to happen before `main()`. The code needs to be called after the setup of the system clocks, so the right place is between the `premain()` and `main()` function of the STM32 Arduino core.

This patch moves the DWT access code to a new function, which is then placed between `premain()` and `main()`.

* Fix "no effect" and "unused variable" compile warnings (MarlinFirmware#12473)

* Update M303.cpp (MarlinFirmware#12471)

* Fixed displaying of kill MSG_OUTAGE_RECOVERY string. (MarlinFirmware#12470)

* GTM32 Pro VB changes from Markku Sinisalo

* Combine Travis CI option-setting commands (MarlinFirmware#12474)

* Fix LCD compile error, etc. (MarlinFirmware#12472)

* Clean up some u8g code (MarlinFirmware#12476)

* Get u8g reference for lcdprint

* Modify MBL to use IJ instead of XY (MarlinFirmware#12478)

* Corrected unused var, default switch, Travis tests (MarlinFirmware#12477)

* Fix compilation errors. Followup to MarlinFirmware#12439 (MarlinFirmware#12481)

* Fix for MarlinFirmware#12482 (MarlinFirmware#12483)

Fix Z-move to uninitialized position in SWITCHING_EXTRUDERS tool_change (no_move=true)

* Revert MarlinFirmware#12311 PIO LDF work-around (MarlinFirmware#12484)

* Followup to MarlinFirmware#12451

* Apply/unapply const here and there

* Shift YZ on graphical display to fit Z+123.45

* Don't show updir with no card present

* Expanded options for _Statusscreen.h (MarlinFirmware#12455)

See the PR for full details. The updated system will be documented on the website in the near future.

* Revert some const changes (for now)

* Fix ADC_KEYPAD middle button (MarlinFirmware#12493)

* Invert hotend bitmaps, by default

* General cleanup of Re-ARM pins

* Fix problems with LPC1768 EEPROM flash emulation (MarlinFirmware#12503)

* Remove duplicate calls to PrepareSector

Some flash memory API calls require that a call to `PrepareSector` is done before use. However this call is already made by the LPC1768 framework so the calls in this code are not required.

* Ensure correct alignment of RAM buffer

The LPC176X flash API requires that the RAM buffer used for write operations must be word-aligned. This change ensures that this is the case.

* Additional pin definitions for Archim 2 (MarlinFirmware#12500)

- Added GPIO pins to Archim 2
- Added new 108 pin to `fastio_Due.h`

* Use superscript 3 in language_en.h (MarlinFirmware#12504)

* Fix a minor compile warning

* Revert ADC_KEYPAD direction behavior (MarlinFirmware#12508)

* Remove extra declarations in cardreader.cpp (MarlinFirmware#12520)

* Fast PWM for controller fan (MarlinFirmware#12485)

* Bring superscripts slightly lower in BDF fonts

* Clean up font data generation script

* Don't show superscript ³ with NOT_EXTENDED_ISO10646_1_5X7 (MarlinFirmware#12513)

* Fix backslash in language_test.h

* Use wait_for_bed with WAIT_FOR_BED_HEATER

Addressing MarlinFirmware#12517

* Allow Serial Overrun Protection to be disabled

* Hide some compile warnings

* Put status screen options in Configuration_adv.h

* Update Italian language (MarlinFirmware#12512)

* NUM_ARRAY => COUNT

* Update Turkish language (MarlinFirmware#12524)

* Correct FANMUX2_PIN (MarlinFirmware#12538)

* Update Slovak translation (MarlinFirmware#12523)

* Fix wait_for_bed compile error

* Add support for FYSETC F6 V1.3 board (MarlinFirmware#12527)

* Fix English special symbols (MarlinFirmware#12529)

* Adjust Formbot Raptor pins

* Add missing boards to Makefile

* Add Formbot Raptor2 and Raise3D pins (MarlinFirmware#12532)

* Add Formbot Raptor2 board
* Add Raise3D Rumba board

* Add sample config for Delta with MKS SBASE (MarlinFirmware#10819)

* Hide M217 compile warning

* Improve runout sensor, fix LIGHTWEIGHT_UI screen size (MarlinFirmware#12544)

* Save recovery info on SD pause

* Space out multiple edit lines a bit

* Fix runout debug output

Followup to MarlinFirmware#12544

* Add poll_runout_states, which returns 1 for runouts (MarlinFirmware#12547)

* Add heating progress bars (MarlinFirmware#12543)

* Followup to heating progress

* Fans loop macro

* Fix "paused" message and M125 called by M25 (MarlinFirmware#12551)

* Fix Skew factors (MarlinFirmware#12555)

- Ensure Skew factors are calculated from test square measurements

* Fix "No SD Card" indicator

* Tweak FR icon. Update font data.

* A single SERIAL_ECHO macro type (MarlinFirmware#12557)

* Fix angles for disabled EDITABLE_SERVO_ANGLES (MarlinFirmware#12559)

* Move stepper enable/disable to stepper_indirection.h (MarlinFirmware#12562)

* Tweaks to endstops code

* Remove AVR-only MARLIN_DEV_MODE code

* Fix pause/resume SD print

Followup to MarlinFirmware#12551, addressing MarlinFirmware#12566

* Alternative fan image option (MarlinFirmware#12579)

* Alternative fan bitmap
* Move bed over by 3px

* Print a space after scrolling status

* Don't include STM32 Core code when compiling STM32 Generic (MarlinFirmware#12575)

* Build and CI fixes and optimizations (MarlinFirmware#12584)

-Disable LDF "deep+" mode on AT90USB platforms. Appears not needed any longer (likely due to fix platformio/platformio-core@7322df2). Results in identical binary output and cuts compile time in half
-Disable Cartesio config from CircleCI (compile failure)
-Disable Geetech I3 Pro X GT2560 from CircleCI (compile failure)
-Enable EEPROM on Micromake example config (fix compile failure)
-Move FolgerTech/i3-2020 to AVR platform in CircleCI (fix CirculeCI build failure)
-Disable various examples failing to build in CircleCI
-Enable various examples no longer failing to build in CircleCI

* Fix up some delta settings

* Update mfpub

* Trinamic: Split stealthChop, improve driver monitoring, etc. (MarlinFirmware#12582)

* Signal an invalid mesh for M420 enable / load

* Tweak config formatting

* Link to font docs in ultralcd_DOGM.cpp

* Sanity-check for negative steps, feedrate, accel

* M425 Backlash Correction (MarlinFirmware#11061)

* Add Z_MIN_PROBE_PIN to MKS SBASE pins

* Refresh screen on SD Init

* Followup to servo angles patch

Fix MarlinFirmware#12594

* Simpler AVR + Trinamic + Soft Serial sanity-check (MarlinFirmware#12606)

* Fix some serial echos of pin states

* Center ABL grid on bed with H parameter. (MarlinFirmware#12610)

* Align classic bed icon consistently

* Improve some config comments readability (MarlinFirmware#12615)

* Fix broken pins file include (MarlinFirmware#12617)

* TMC connection test, spreadCycle parameters, improved debugging (MarlinFirmware#12616)

* Sanity-check LIGHTWEIGHT_UI, move comment up (MarlinFirmware#12630)

* Allow ExtUI to use LCD_SET_PROGRESS_MANUALLY (MarlinFirmware#12628)

* Add spreadCycle parameter sets (MarlinFirmware#12645)

* [2.0.x] G33 clean up (MarlinFirmware#12648)

Remove obsolete workarounds in G33 for the now fixed zprobe_zoffset bug

* [2.0.x] Enable PIDTEMPBED in Anet A8 example config (MarlinFirmware#12655)

* [2.0.x] Set DEFAULT_NOMINAL_FILAMENT_DIA to 1.75 in Anet A6 config (MarlinFirmware#12664)

* [2.0.x] Update Czech translation (MarlinFirmware#12683)

* Squelch warning mentioned in MarlinFirmware#11061 (MarlinFirmware#12676)

* [2.0.x] Limit PID autotune target to maxtemp-15 (MarlinFirmware#12691)

* Limit set hotend temperature to maxtemp. (MarlinFirmware#12690)

* Added MKS MINI 12864 support to FYSETC F6 V1.3 (MarlinFirmware#12656)

* FYSETC F6 13 - E2_SERIAL_TX_PIN correction (MarlinFirmware#12667)

* Followup to MarlinFirmware#12691 (typo)

* GTM32 Pro VB FAN-PIN correction (MarlinFirmware#12666)

* Add Formbot 350c Thermistor (MarlinFirmware#12661)

* Add support for MKS Robin board (MarlinFirmware#12650)

Implement initial support for MKS Robin (STM32F103ZET6) board.
Custom build script is used to generate encrypted firmware compatible with original MSK Robin bootloader (i.e. safe firmware update from SD card and possibility to go back to original close-source firmware).

*  Wanhao Duplicator i3 Plus pins create (MarlinFirmware#12701)

* Update Formbot T-Rex 3 pins (MarlinFirmware#12662)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants