I'm a bit rusty on GIT, but because of the occasional wild readings from the PT100, would like a bit more sanity checking before triggering MAXTEMP. I've based the high temperature code on the existing low temperature code, and both are shown below. Code: in configuration_adv.h // The number of consecutive high temperature errors that can occur // before a max_temp_error is triggered. //#define MAX_CONSECUTIVE_HIGH_TEMPERATURE_ERROR_ALLOWED 0 // The number of consecutive low temperature errors that can occur // before a min_temp_error is triggered. (Shouldn't be more than 10.) //#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 in temperature.cpp #ifdef MAX_CONSECUTIVE_HIGH_TEMPERATURE_ERROR_ALLOWED uint8_t Temperature::consecutive_high_temperature_error[HOTENDS] = { 0 }; #endif #ifdef MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED uint8_t Temperature::consecutive_low_temperature_error[HOTENDS] = { 0 }; #endif if (rawtemp > maxttemp_raw[e] * tdir && heater_on) { #ifdef MAX_CONSECUTIVE_HIGH_TEMPERATURE_ERROR_ALLOWED max_temp_error(e); if (++consecutive_high_temperature_error[e] >= MAX_CONSECUTIVE_HIGH_TEMPERATURE_ERROR_ALLOWED) #endif max_temp_error(e); } if (rawtemp < minttemp_raw[e] * tdir && !is_preheating(e) && heater_on) { #ifdef MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED if (++consecutive_low_temperature_error[e] >= MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED) #endif min_temp_error(e); } #ifdef MAX_CONSECUTIVE_HIGH_TEMPERATURE_ERROR_ALLOWED else consecutive_high_temperature_error[e] = 0; #endif #ifdef MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED else consecutive_low_temperature_error[e] = 0; #endif
I picked up a couple of TMC2130s here. The Marlin pages suggest that getting the V1.1 is important. It's very confusing reading about how to wire them. After much searching, I found what seems to be a clear answer about how to use them without disrupting the LCD. https://github.com/MarlinFirmware/Marlin/issues/8478#issuecomment-362400618 I'll try that over the weekend.
I'm stuck with the TMC2130 install. To build Marlin with 2130 support requires the TMC2130Stepper Arduino library (https://github.com/teemuatlut/TMC2130Stepper). I've tried unpacking it with other libraries: Code: pi@octopi:~/oprint/lib/python2.7/site-packages/octoprint_bigboxfirmware/lib/arduino-1.6.8/libraries $ ls -l total 12 drwxr-xr-x 3 pi pi 4096 Dec 5 10:18 LiquidCrystal drwxr-xr-x 6 pi pi 4096 Apr 4 10:36 TMC2130Stepper drwxr-xr-x 4 pi pi 4096 Feb 15 05:21 U8glib But Marlin will not compile from the BigBox Firmware plugin to Octoprint. It's unable to find the TMC2130 header file. Any suggestions?
What will you get with the 2130 over the 2100? I'm not sure it's worth using the 2130 when the 2100 is very simple to setup and get going.
Tohara was kind enough to get me to a solution, and the TMC2130s are now working well. I'm doing a writeup which includes the benefits of the 2130s in this thread The guides I followed for the 2100s showed how to set them up, hardwired as spreadcycle or stealthchop. The main benefit was the smooth and quiet operation. The only other tuning was turning the potentiometer to change motor current. The 2130s are setup as software controlled components. This means in recent Marlin releases, the current is adjustable using M-codes and can even be auto-tuned. The mode can switch between spreadcycle and stealthchop in software - mine is currently done automatically based on print speed. The stall detection currently allows sensorless-homing (I've removed the end-stops on X and Y), bed-leveling (Z-axis) and in future Marlin releases should enable features like recovery from missed steps mid-print, automatic detection of exact maximum print area, identification of some extrusion problems etc.
Ive just uploaded Marlin 1.1.8 on my Direct Pro, and i am having1 or 2 issues. It seems that all the stepper motors are running backwards on all axis Any ideas! Thanks in advance
You invert the stepper motor direction by either: Rotating the stepper motor witing connector 180 degrees Changing the relevant Marlin settings INVERT_X_DIR, INVERT_Y_DIR and INVERT_Z_DIR to true if they were false, false if they were true.
Just thought I would stop by, as I recently wanted to update to 1.1.8 for my bigbox as well. Based on another post, https://forum.e3d-online.com/threads/marlin-1-1-8-stock-dual-direct.3023/ I forked the initial github repo, and modified it mostly for myself. I added a bunch of quality of life changes that I like (babystepping, fixed the dial, homed y first, etc). I disabled the second extruder, since I'm not using it and it's disconnected. That should be a simple change in configuration.h to change 1 to 2, and then adjust the temp sensors accordingly (second is also disabled). I've been getting pretty solid prints out of it now all weekend, and thought I would share. Branch is 1.1.x. https://github.com/vwarner1411/Marlin
I tried this build and prints started layer shifting on the Y axis. Same same gcode would shift at different layers but always only in Y. I went through the configs and tried a few changes that might affect it, baby stepping, Z Fade but nothing seemed to resolve it. I tried the latest bugfix build but it introduced Homing Failed errors during bed leveling. The fix for that is to enable Endstop noise filtering which then disables the BLTouch! Reverting back to the original firmware fixed the Y shifting immediately so its not a mechanical issue I think. Did you edit any settings outside of Configuration.h and Configuration_Adv.h? I'm using stock steppers, driver and board, re you using something else? For example I can see from #define DEFAULT_AXIS_STEPS_PER_UNIT {160,180,400,417.5} you're using different Z Stepping.
1.19 has just been released... and has some great features. Marlin 1.1.9 is the final 8-bit flat version of this firmware, and the last 1.1.x release. A monumental amount of talent and effort has gone into its production. Throughout Marlin 1.1 development we worked closely with the community, contributors, vendors, host developers, library developers, etc. to improve the quality, configurability, and compatibility of Marlin Firmware, while supporting a wide variety of Arduino-based boards. For this development cycle we aimed to address bugs and overhaul the motion planner. The end result is a much smarter and more robust motion system, and this should be noticeable as improved print results and reduced print job times. Change Log New Features Specify stepper drivers per-axis. Marlin determines pulse timing. Updated to Linear Advance 1.5 (with new K value range) Added POWER_LOSS_RECOVERY for SD printing (based on work by Creality3D) Added POWER_LOSS_PIN to detect power loss early and save state Added Z_CLEARANCE_MULTI_PROBE to set probe "bump" distance Added DELTA_FEEDRATE_SCALING to dynamically scale the feedrate for correct delta motion Added a Lightweight Status Screen LIGHTWEIGHT_UI for ST7920 (most graphical displays!) Added homing / leveling / probing options Added M701 / M702 filament load / unload Added SLIM_LCD_MENUS for reduced build size Added AUTO_POWER_CONTROL to turn power on/off as needed Added M421 N parameter to set a mesh point to NAN Added support for Malyan LCD Fixed and Optimized PlatformIO Auto Build for Atom and VSCode. Builds based on MOTHERBOARD setting. Improved stepper timing, smoothness, etc. Try these new features: ADAPTIVE_STEP_SMOOTHING : Smoother multi-axis motion at lower speeds JUNCTION_DEVIATION : An alternative to classic jerk limiting S_CURVE_ACCELERATION : S-shaped acceleration curves to reduce ringing DELTA_FEEDRATE_SCALING : Correct the feedrate so it applies to Cartesian mm/s Improved performance, stability, reliability, and error handling Improved LCD display, status message, and controller response Improved multi-extruder filament change Added Creality and other example configurations Many improvements for Trinamic stepper drivers, sensorless homing Various improvements for UBL and G26 Various improvements for Auto Bed Leveling Updated languages: Chinese, Czech, French, German, Italian, Portuguese, Slovak, Spanish Improved M43 pins debugging Improved PlatformIO build support Improved G33 delta calibration Improved Max7219 LED matrix support, daisy-chaining Improved handling of probe/endstop errors Improved temperature reading and thermocouples support Better handling of serial communication More complete M503 report with ABL mesh Various improvements for SWITCHING_EXTRUDER and MK2_MULTIPLEXER Various improvements to pin assignments Improved custom boot and status screens, add 3-frame fan animation Miscellaneous Changes Update Advanced Pause / Filament Change settings Report an error on unsupported commands Set laser/spindle power to minimum on disable Allow LCD_SET_PROGRESS_MANUALLY without SDSUPPORT MIN_PROBE_EDGE replaces DELTA_PROBEABLE_RADIUS For Developers Linux / Darwin-compatible build scripts for running tests locally Improved GitHub helper scripts.