Jump to content
Ultimaker Community of 3D Printing Experts


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by lars86

  1. Very thorough! A couple of thoughts: - "Jerk" in Marlin is not the second derivative of velocity. It is a maximum allowable instantaneous change in velocity. It certainly isn't ideal, but with the limited computational power of 8-bit boards, and no provision for allowable path deviation to smooth path motion, it is a necessary evil. You can imagine the jerk setting can have a lot to do with balancing motion stutter (as the planner tries to move around a faceted model and connect all the "dots"), and accelerations above the max acceleration setting. I guess you would have to compare the forces exerted by two cases: max acceleration & maximum stepper torque (a jerk move); to see which is higher. - It seems like you could save a lot of time by deciding which parts deflect a relevant amount. Pretty easy to estimate max force exerted on the print head. Then compare elastic elongation of the belts, with point loaded deflection of a shaft.
  2. Hi Togeir, thanks for the reply! It looks like the S3D print might be a much thicker layer height, which could explain the color difference. Maybe we should start a thread to compare resonant test prints at comparable speeds and max accelerations. It would be interesting to benchmark different modifications.
  3. Maybe the thought of extra noise is from people who kept the same paneled design, but made it aluminum. I could see more resonance and noise in that case.
  4. Reducing max acceleration has a huge impact on ringing. Remember, Force = Mass * Acceleration. Deflection (ringing) is proportional to force. You won't see a true comparison of your modification unless you match the print settings from your older tests. Makerbots do use GT2 belts but they are direct drive printers. With all that extra weight on the print head, it's no wonder you see ringing. My print head is a printed assembly. I'm working on a new revision of it to hold an E3D V6. I have been running a sort of Franken-hot-end with a stock heater block & nozzle, but a custom stainless heat break and heatsink. I actually designed an entire hot end from scratch and made all the parts on my CNC machines. But was shocked that my press fit connections between the heat break and heater block leaked molten filament! I never came back around to remake it. If I were you, I would print some big circles at very slow speed (20mm/s). This should remove any inertial flex. If you still get the flat spots, then you likely just have too much backlash in your spiral followers. Yes. That photo doesn't show the fan configuration. I currently run two 30mm radial fans with light ducting to direct flow. I print almost exclusively high-end PLA and feel like cooling is very key to high quality prints. In addition to not wanting to breathe styrene gas, generally I find printing ABS a nightmare with very little upside. Modified PLAs tend to have better stiffness, less shrinkage, similar strength, great bed and inter-layer adhesion, etc. I just don't see the allure of ABS. Having prints that look good, but peel apart along layers does not interest me. Also, not being able to run adequate cooling means overhangs will be garbage. If I were you, I would grab some Polymax or Protopasta PLA and do some test prints to get your printer dialed in. You can run much cooler nozzle temps 200 or less, full speed fans, prints stay stuck to even a cold bed (with blue tape). This will make sure you aren't trying to calibrate a printer off warped ABS. $0.02
  5. Just thought I would share my reply to Andy, from a different thread:
  6. Wow, that is quite a modification you made there! I'm surprised with the lengths you went to on the motion control, that you are still using the stock print head. Looking through your pictures, it seems like you have inconsistent extrusion and could benefit from some improvements there. Are you running the original extruder drive? I'm still not so convinced that most ringing is caused by the belts. For sure, running the short belts contributes a good bit. But with a direct drive setup and GT2 belts (a big improvement over MXL), I don't think belt stretch is a significant factor. For example, with the printer stopped, I can push the head in an X or Y direction, and see noticeable deflection of the head form the 6mm rods bending, but essentially no movement of the XY blocks: Also, the bronze 8mm bushings aren't a bad thing in my eyes either (so long as they fit well and are kept clean). Yes, they suffer from more static friction to overcome during starts/reversals. Once moving though, they move quite nicely (as long as they are not put into bind by an improperly squared machine). Since they are driven directly from the belts, their friction will not increase ringing. It increases the load on the steppers, and at the very worst, could affect micro stepping precision. But I think the amount of force they contribute is negligible on a well tuned machine. They are super easy to deform though. So, if your XY bocks clamp too aggressively, they will bind like crazy. The print head bearings on the other hand can really mess with head precision and ringing, since any friction in them acts with inertial forces, making them worse. Since linear ball bearings will always have some radial lash, I think that minimizing the distance from the bearings, down to the nozzle tip is an important aspect. Radial bearing freeplay causes angular misalignment of the print head. So, the longer the head is, the greater the imprecision of the nozzle's XY position. My print head is nearly 1" shorter than the stock head! This is about the practical minimum height, as I am nearly out of Z travel:
  7. I know that the very early UMOs came with 8mm carriage shafts and then were switched over to 6mm, going forward. Has anyone "gone backwards" on this? It is all a balance between lightweight (for inertial benefit) vs stiffness (for positioning repeatability). The 6mm carriage shafts are very easy to deflect, especially near gantry center. This includes the Z direction from varying force imparted by the bowden/extruder drive; and also in the XY directions from inertial forces when changing the velocity/direction of the print head. As you tune the machine for better and better print quality, your eyes get drawn to smaller anomalies in the printed surface. Even with slow outer perimeter speeds and acceleration, I see ripples at sharp direction changes. I also see slight Z banding that I believe is from the bowden tube changing the print head height slightly. Supporting the print head with 8mm rods instead, will certainly increase stiffness. But also increase the inertial forces. My guess is that there is an optimal diameter... I just am not sure exactly where that lies. Has anyone put some serious thought into this? My calculations show that a 6mm rod weighs ~60g, while 8mm is ~105g. That is a total weight gain of ~90g. This weight gain is distributed evenly along the length of the shaft though, so not all of it contributes to inertial forces that deflect the shafts. Some is put fairly directly into the XY blocks themselves. I think it would be fair to say only ~75% of the increased inertial force works to bend the shafts. Misumi does have hollow 8mm linear motion shaft. The ID is 3mm, which doesn't reduce the weight all that much. Each shaft would drop from 105g to 90g. Not a bad reduction though. LM6UU = 8g and LM8UU = 13g. So another 10g of weight gain there, entirely on the head. So, we have added ~55g of weight to the head. (using hollow shaft) The next step would be to calculate and compare the increase in stiffness (reduced deflection), against the increase in acceleration forces, for a given realistic printer move...
  8. Correct. That's why I prefaced those settings with: I upgraded my machine to GT2 pulleys/belts I updated the original post for clarity.
  9. Okay, I finally got with the program and created my own fork of Marlin. This will make it a lot easier to keep my customizations, while merging in new changes to the Master branch. Here is my fork: https://github.com/CCS86/Marlin-UMO-CCS86 This shows a comparison of my changes to the Master: https://github.com/MarlinFirmware/Marlin/compare/1.1.x...CCS86:1.1.x
  10. On this 1.1 version, "stop print" now does turn all the heaters off, but still does not park the nozzle first. I actually might edit mine to leave the heaters on. The only time I seem to use "stop print" is when I had some issue and want to restart the print. It's annoying rushing to get temps set again, before they cool down. I tried the Advanced Pause feature, but ended up with a compile error. Apparently, it is not compatible with Extruder Runout Prevent. I use that feature a lot to keep the filament fresh while I am getting code ready for the printer. I posted on Github to see why they won't work together. One nice bonus I have noticed: I use a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER and used to get occasional interruption of print motion while navigating the menus. That has gone away, which makes me think the motion control loop has been optimized.
  11. @ataraxis, can you tell from looking at the Arduino library whether it would play nice with the 2560? https://we.tl/hk9job3xXR I looked through the Marlin references, but it didn't seem as relevant: // @section TMC2130 /** * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. * * You'll also need the TMC2130Stepper Arduino library * (https://github.com/teemuatlut/TMC2130Stepper). * * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to * the hardware SPI interface on your board and define the required CS pins * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). */ //#define HAVE_TMC2130 #if ENABLED(HAVE_TMC2130) // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY //#define X_IS_TMC2130 //#define X2_IS_TMC2130 //#define Y_IS_TMC2130 //#define Y2_IS_TMC2130 //#define Z_IS_TMC2130 //#define Z2_IS_TMC2130 //#define E0_IS_TMC2130 //#define E1_IS_TMC2130 //#define E2_IS_TMC2130 //#define E3_IS_TMC2130 //#define E4_IS_TMC2130 /** * Stepper driver settings */ #define R_SENSE 0.11 // R_sense resistor for SilentStepStick2130 #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current #define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256 #define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current. #define X_MICROSTEPS 16 // 0..256 #define Y_CURRENT 1000 #define Y_MICROSTEPS 16 #define Z_CURRENT 1000 #define Z_MICROSTEPS 16 //#define X2_CURRENT 1000 //#define X2_MICROSTEPS 16 //#define Y2_CURRENT 1000 //#define Y2_MICROSTEPS 16 //#define Z2_CURRENT 1000 //#define Z2_MICROSTEPS 16 //#define E0_CURRENT 1000 //#define E0_MICROSTEPS 16 //#define E1_CURRENT 1000 //#define E1_MICROSTEPS 16 //#define E2_CURRENT 1000 //#define E2_MICROSTEPS 16 //#define E3_CURRENT 1000 //#define E3_MICROSTEPS 16 //#define E4_CURRENT 1000 //#define E4_MICROSTEPS 16 /** * Use Trinamic's ultra quiet stepping mode. * When disabled, Marlin will use spreadCycle stepping mode. */ #define STEALTHCHOP /** * Let Marlin automatically control stepper current. * This is still an experimental feature. * Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered, * then decrease current by CURRENT_STEP until temperature prewarn is cleared. * Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX * Relevant g-codes: * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. * M906 S1 - Start adjusting current * M906 S0 - Stop adjusting current * M911 - Report stepper driver overtemperature pre-warn condition. * M912 - Clear stepper driver overtemperature pre-warn condition flag. */ //#define AUTOMATIC_CURRENT_CONTROL #if ENABLED(AUTOMATIC_CURRENT_CONTROL) #define CURRENT_STEP 50 // [mA] #define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak #define REPORT_CURRENT_CHANGE #endif /** * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD. * This mode allows for faster movements at the expense of higher noise levels. * STEALTHCHOP needs to be enabled. * M913 X/Y/Z/E to live tune the setting */ //#define HYBRID_THRESHOLD #define X_HYBRID_THRESHOLD 100 // [mm/s] #define X2_HYBRID_THRESHOLD 100 #define Y_HYBRID_THRESHOLD 100 #define Y2_HYBRID_THRESHOLD 100 #define Z_HYBRID_THRESHOLD 4 #define Z2_HYBRID_THRESHOLD 4 #define E0_HYBRID_THRESHOLD 30 #define E1_HYBRID_THRESHOLD 30 #define E2_HYBRID_THRESHOLD 30 #define E3_HYBRID_THRESHOLD 30 #define E4_HYBRID_THRESHOLD 30 /** * Use stallGuard2 to sense an obstacle and trigger an endstop. * You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin. * If used along with STEALTHCHOP, the movement will be louder when homing. This is normal. * * X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity. * Higher values make the system LESS sensitive. * Lower value make the system MORE sensitive. * Too low values can lead to false positives, while too high values will collide the axis without triggering. * It is advised to set X/Y_HOME_BUMP_MM to 0. * M914 X/Y to live tune the setting */ //#define SENSORLESS_HOMING #if ENABLED(SENSORLESS_HOMING) #define X_HOMING_SENSITIVITY 19 #define Y_HOMING_SENSITIVITY 19 #endif /** * You can set your own advanced settings by filling in predefined functions. * A list of available functions can be found on the library github page * https://github.com/teemuatlut/TMC2130Stepper * * Example: * #define TMC2130_ADV() { \ * stepperX.diag0_temp_prewarn(1); \ * stepperX.interpolate(0); \ * } */ #define TMC2130_ADV() { } #endif // HAVE_TMC2130
  12. @ataraxis Did you ever get these running on the UMO with firmware based control? I know that Marlin has support.
  13. Actually I meant the square shaft itself getting "wound up" in torsion. Not an eccentricity in that shaft changing the height of the nozzle.
  14. Awesome work guys! I am currently hanging my extruder drive (my own design), over the printer with bungee cord, in order to run a shorter (~12") straight-shot bowden. It helps, but definitely isn't ideal. I may just have a go at getting your system implemented. Have you guys observed much torque induced deflection on the square shaft? It seems like that could add back a bit of hysteresis to the system. Igus has some cool squart linear motion gear that could be a slick addition: https://www.igus.com/wpck/15459/DryLin_Q_Overview?C=US&L=en
  15. Bumping the thread to see if any more extrusion based printers have materialized!
  16. I edited the original post to add some clarity. Let me know if something doesn't make sense.
  17. New forum software up and running! Also up and running... my Ultimaker Original on Marlin 1.1.6. My guide above is pretty comprehensive and so far I have not had any issues. (besides Cura gcode not playing nicely with the new Linear Advance feature in Marlin).
  18. Hey guys, I have been working on configuring the latest Marlin code release (currently 1.1.6) to use on an Ultimaker Original. I have been through the configuration files to compare to my latest 1.0 build. These are the changes I made to successfully get it printing. Basically, you need to open a couple files in the downloaded Marlin, search for these lines and either remove the '//' to un-comment, or change a defined value. I prefer the program notepad++ for editing. You can use the "language" setting "c" to make it more readable. :EDIT: Okay, I finally got with the program and created my own fork of Marlin. This will make it a lot easier to keep my customizations, while merging in new changes from the Master branch. Here is my branch: https://github.com/CCS86/Marlin/tree/Lars86 This shows a comparison of my changes to the Master: https://github.com/MarlinFirmware/Marlin/compare/1.1.x...CCS86:Lars86 Some of my changes are specific to my modifications: - Official heated bed kit - Stock heater and thermocouple - Direct driven X & Y w/ GT2 belts & pulleys - Upgraded X & Y steppers with half the full step angle from original (hence the microstepping 8 vs 16) - Custom geared stepper extruder drive - A very slight software skew correction. You would want to disable skew correction until you print a test square for yourself. - Use of a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER Read on to see an explanation of the changes. #define MOTHERBOARD BOARD_ULTIMAKER #define POWER_SUPPLY 1 #define TEMP_SENSOR_0 -1 For the official heated bed kit: #define TEMP_SENSOR_BED 20 #define PIDTEMPBED (Enable PID bed control) PID autotune gave me very bad results in the past. I came up with these values manually for the official bed kit: #define DEFAULT_bedKp 40 #define DEFAULT_bedKi .55 #define DEFAULT_bedKd 10 Gets the end stop logic correct: #define X_MIN_ENDSTOP_INVERTING true Set values for your motion control here. You will need to look in your controller for your current settings. I use my phone and snap a picture of each screen: #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 200, 488 } #define DEFAULT_MAX_FEEDRATE { 250, 250, 35, 35 } #define DEFAULT_MAX_ACCELERATION {2000, 2000, 600, 1000 } #define DEFAULT_ACCELERATION 2000 #define DEFAULT_RETRACT_ACCELERATION 1000 #define DEFAULT_TRAVEL_ACCELERATION 3500 I run these values because of my direct drive X and Y axis. If you still have the short belts, flip these values: #define INVERT_X_DIR false #define INVERT_Y_DIR true This corrects the Z axis direction: #define INVERT_Z_DIR true Enable this to allow saving of some of the values listed above from the control, without a reflash: #define EEPROM_SETTINGS In my configuration_adv, I made these changes: #define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } This gives you a menu item in "TUNE" that lets you adjust Z height on the fly. Super useful for dialing in the first layer height. You can even compensate for added blue tape with about 10 clicks: #define BABYSTEPPING #define BABYSTEP_MULTIPLICATOR 2 This is a new feature that attempts to keep extruder pressure (rate) more accurately synced with head speed. This is a big issue on bowder printers, where the print head can change speed much faster than extruder pressure. This causes under-extrusion in regions of acceleration and over-extrusion when decelerating. According to the devs, Slic3r generates compatible gcode, but newer Cura does not. I am working with the Marlin devs to improve / find the issues with Cura gcode, because I really prefer Cura. Feel free to test and contribute to the discussion: https://github.com/MarlinFirmware/Marlin/issues/8827 More info on LIN ADVANCE: http://marlinfw.org/docs/features/lin_advance.html Calibration method: http://marlinfw.org/tools/lin_advance/k-factor.html Code to enable: #define LIN_ADVANCE #define LIN_ADVANCE_K 0 (you can pre-populate a value here. '100' is something you can test the waters with, but you can change this via the controller menu and save later. Or change via gcode) This should get you going. First test each axis direction with "move axis". Then you can give an M119 command to check the status of the endstops. Very important that they are working correctly. Then you can command some increasing temps for the nozzle and bed, making sure you get stable readings there. Then print something and report back!
  19. Hi guys, I have been running a hot end of my own design for a while now, but using an external power supply for my hot end fan, and happened to pick a print fan which has lived at the supplied 19v. I rev'd up my design to be smaller, lighter, stiffer, and much shorter as well. Now seems like a good time to clean up and integrate the electronics. I am pretty sure that my base electronics are 1.5.7, and I have added the official heated bed kit. I believe this gives me access to constant on 19v and 24v sources. What I am unclear on, is whether I have a 5v extruder fan connection that can be controlled via firmware (on when the hot end is above a set point). For the hot end fan, I see 3 potential options: Use the 5v lead if I have it. Could I use this to step the voltage up to 12v? DC Step up Piggyback, in parallel, on the 12v leads that power the control board fan and hope not to overload it with an additional ~0.1 amps Grab the always on 19v or 24v leads, and run a step down converter: DC Step down Any thoughts on this? For dual print fans: I will be running 12v 30mm fans (same as above @ ~0.1 amp). I can either wire them in parallel and hope they don't burn up. But I think using the step-down converter above on the normal fan output would be a better solution. My biggest question on that, is if wiring that converter inline with the fan output would cause issues in the PWM fan signal. Any help is appreciated!
  20. Hex guys don't care about such things.
  21. I think the idea of honeycomb is not speed but the marginal increase in strength where sturdiness is required, not speed. Kinda like saying 0.1MM is slower and will not print as fast as 0.2MM no matter what you do. Just a different set of priorities. Take it or leave it, but I am a mechanical engineer and even if they add hex, I'll print triangles for my structural parts. Triangles are stronger.
  22. I think triangular infill wins in strength and print efficiency.
  23. Glad you are liking them! I haven't had to run tensioners since switching to GT2, so I didn't evaluate the headroom too much.
  24. Thanks for testing Titus. What material are you printing with? Are you printing directly on glass? For my tests, I am using PLA, and printing on a thin layer of glue, with only a little warmth on the bed. Everything stuck nicely. I really avoid going to full bed heating on PLA prints, as it makes it impossible to get the same level of print cooling, and you lose a lot of crispness and overhang ability in the print. It looks like, from your photos, that there were still adhesion issues. This makes it hard to compare results objectively. Especially, the 4th print. The .4mm overlap looks very similar in the photos, but the blue color makes it hard to see. Your eyes will probably be able to see better than the camera.
  • Create New...