Skip to content

CC2 stepper drivers need to be tuned #359

Closed

Description

@jamesturton

Currently all the values are taken from CC1

Activity

  1. jamesturton commented on Sep 27, 2026

    @jamesturton
    CollaboratorAuthor

    Also check run_current

  2. BorjaLL commented on Oct 31, 2026

    @BorjaLL

    Compared COSMOS CC2 machine.cfg with Elegoo's CC2 printer_dsp.cfg.

    Configured currents in amperes, run/hold:

    Motor COSMOS Elegoo stock
    X/Y 1.0 / unspecified 1.2 / 0.8
    Z 0.8 / unspecified 1.0 / unspecified
    Extruder 0.7 / unspecified 0.8 / 0.2

    Both use sense_resistor 0.1. COSMOS also specifies X/Y home_current 0.8; hold_current and home_current serve different purposes.

    Our first-hand stock CC2 notes from firmware 01.03.02.36 independently confirm live X/Y run_current 1.2 and hold_current 0.8. The published Elegoo file has an older 01.01.13.10 header.

    The strongest candidates for testing are X/Y run_current 1.2 and extruder run_current 0.8. #387 reports improved extrusion at 0.8 through CANVAS, Elegoo's multicolor feeder, but that test was on CC1. Z run_current 1.0 also has stock provenance, without evidence here of a COSMOS Z torque problem.

    Adding stock hold_current values deserves separate validation. Klipper's driver guidance generally recommends omitting hold_current because current transitions can cause unintended motion. Stock provenance alone does not establish that adding it improves COSMOS.

    I would leave chopper registers, CoolStep automatic current scaling, homing current and Z mode unchanged pending measurements. COSMOS uses full-time Z StealthChop and driver_SGTHRS 40 (stall-detection sensitivity); stock leaves StealthChop disabled and uses 120. Both configure a physical Z endstop, so this sensitivity difference does not establish a Z homing defect.

    Our stock-firmware X/Y tests produced loud growl at 20000 mm/s^2 with full-time StealthChop. A 50 mm/s resonance occurred in both modes; hybrid mode was tested without establishing a general improvement. Homing succeeded with StealthChop configured, which does not validate COSMOS homing or its current transitions.

    No proposed change has been hardware-tested under COSMOS. Higher currents increase motor/driver heat. StallGuard sensitivity depends on current, temperature and load; retain home_current 0.8 initially, but verify its application and restoration before assuming homing is unaffected.

    These values could support an explicitly untested stock-baseline PR with maintainer hardware validation. They are insufficient to claim #359 is fixed.

  3. jamesturton commented on Nov 1, 2026

    @jamesturton
    CollaboratorAuthor

    Fixed in #458

  4. jamesturton commented on Nov 1, 2026

    @jamesturton
    CollaboratorAuthor

    Sounds good! CC1 and CC2 use the same steppers and drivers so they should be tuned identical. Please let us know the results from your testing 🙂

  5. jamesturton commented on Nov 1, 2026

    @jamesturton
    CollaboratorAuthor

    Sounds good! The CC1 and CC2 have the same steppers and drivers so the tuning should be identical between them. Please let us know results of your testing 🙂

  6. BorjaLL commented on Nov 1, 2026

    @BorjaLL

    Thanks for #458. For the record, after it the CC2 run currents are still the CC1 values (X/Y 1.0, Z 0.8, E 0.7 vs stock 1.2 / 1.0 / 0.8), and X/Y still carry the CC1 chopper and CoolStep block. The extruder side looks like the same fault as #387 (0.7 A under-extrudes, 0.8 fixes it). I plan to test the stock currents on my own COSMOS CC2 (DUMP_TMC before/after, repeated homing, motor temps, noise) and will open a separate PR with the results if they hold up, rather than reopen this issue.

  7. BorjaLL commented on Nov 1, 2026

    @BorjaLL

    First results from my CC2 on COSMOS 26.10.1, as promised. Early data, one printer.

    Override tested (printer.cfg, above SAVE_CONFIG): run_current X/Y 1.2, Z 1.0, E 0.8 (Elegoo stock values), and on X/Y the stock chopper values (TBL 2, TOFF 3, HSTRT 5, HEND 0, IHOLDDELAY 8) with CoolStep off (SEMIN 0). No hold_current, no stealthchop_threshold on X/Y/E. Z keeps the 26.10.1 (#458) settings.

    DUMP_TMC before (26.10.1 as shipped): X/Y run 0.994 A, CHOPCONF 340281a1 (toff 1, hstrt 2, hend 3, tbl 1), COOLCONF 0000c462 (semin 2). Z 0.795 A, E 0.696 A.

    DUMP_TMC after: X/Y run 1.179 A, CHOPCONF 34010053 (toff 3, hstrt 5, hend 0, tbl 2), COOLCONF 0. Z 0.994 A, E 0.795 A. All en_spreadcycle=1, TPWMTHRS fffff.

    Homing repeatability: G28 x3 cold, GET_POSITION mcu steps at X128 Y128: spread X 2, Y 15, Z 5 microsteps, so all within one full step (Y only just).

    Prints with the override: a 10-layer 60x60 wall tower at accel 20000 (no layer shift, G28 agreed afterwards), then a 37 min PLA part. Both finished fine. Motors felt warm but not hot after the tower.

    Not done yet: measured motor/driver temperatures at steady state, noise recordings before/after, a long print. I will add those here, and a PR with the currents only (marked untested on other printers) if they hold up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions