Menu

TMC2209 - The Nema motor is jiggling and make a bell sound

Franck M
2023-10-08
2023-10-13
  • Franck M

    Franck M - 2023-10-08

    Hi Robert,
    Me, again... :(
    So i mounted the arduino board and the bitreetech driver on a breadboard and connected it to myFP2W 2.5.0.8. but when I try to move the motor it rings like a bell and does not turn. Of course I double checked the wirering and it seems to be ok. I also tryed to play with Moto Speed Delay settings as by your documentation, with no result.
    Also I was not able to find the xls file you are mentioning in the documentation (looked in the driver archive and on Trinamic site).
    Any help will be welcome.
    Regards
    Franck

     
    • brownrb

      brownrb - 2023-10-08

      Hi Franck
      The tmc board is probably the most difficult. I attach a number of focuments etc that might help. Apologies for the delay, I needed to put together a document and diagram suitable for bread board use.

      Yes, perhaps 100% probability that the stepper does not move correctly,
      The wiring has to specific
      The software values need to be set,
      12v must be on
      Only then can the motor speed delay value work correctly.

      BUT doing this without the PCB is way too hard, even for me, There are multiple connections that have to be wired and it will be an absolute jungle of wires to do that.

      A stripboard version was never done for the TMCxxx because of the connections.And I would not advise anyone to do that.

      As explained you need the spreadsheet to determine the correct settings before compiling the firmware and uploading it to the controller.

      The reason why each is different from what is in the firmware is because it is very stepper motor dependent.

      It is also important to use the BIGTREE stepper modules, others will not work and there is no support for them.

      For TMC2298 reference pg 30 of myFP2-TRINAMIC-09-4.pdf

      So this could be the path to follow
      Check all connections as per below
      Use spreadsheet to determine the values you need
      Change the values in the firmware file
      Line 207 myFP2F_TMC2209SG_329.ino
      change
      myfocuser.stepmode = 1;
      to
      myfocuser.stepmode = 4;
      In file focuserconfig.h DO NOT ENABLE ANY HOME POSITION SWITCH OPTIONS

      Reprogram the controller
      Once running, you can test motor movement.

      If your intention is to use a home position switch (or stall guard), avoid trying that
      until the motot is moving and every thing works.

      Stall guard is the most difficult. Do not try that until the controller is working and everything works. I have a minefield of documents about stall guard, sometimes bordering on incoherent, and I stopped using these chips sometime ago, so may not be much help now.

      I understand you are using a breadboard. In myBoards.h the pins are defined

      #define TMC2209DIR 3  // TMC2209 control lines
      #define TMC2209STEP 4
      #define TMC2209ENABLE 8
      #define TMC2209DIAG 12  // for stall guard
      

      In myBoardDefs.h there are settings for the TMC2209 chip

      // TMC22xx definitions
      #define TMCRX 10  // tmc2209 interface
      #define TMCTX 11
      #define STALL_VALUE 40          // [0... 255]
      #define TMC2209CURRENT 1000     // 600mA for 8HS15-0604S NEMA8 stepper motor
      #define TMC2209PORTSPEED 57600  // define tmc2209 serial speed, DO NOT CHANGE
      #define TOFF_VALUE 4            // [1... 15]
      #define DRIVER_ADDRESS 0b00     // TMC2209 Driver address according to MS1 and MS2
      #define R_SENSE 0.11f           // Match to your driver
                                      // SilentStepStick series use 0.11
                                      // UltiMachine Einsy and Archim2 boards use 0.2
                                      // Panucatt BSD2660 uses 0.1
                                      // Watterott TMC5160 uses 0.075
      

      The TOFF_VALUE and R_SENSE you get from the spreadsheet and then change the values in the file above,

      The DRIVER_ADDRESS uses the MS1-MS2 pins. With a strip board you will also need to set up the serial comms between the arduino and the tmc chip. The pins are TMCRX (pin10) and TMCTX (pin11), and a 1k resistor, capacitor etc

      The step mode MUST be set to 1/4

      TMC2209 CONNECTIONS
      VMOT to 12V +
      GND1 - Wired to GND2
      - Wired to 12V GND
      - Wired to Nano pin ground
      A2 - to stepper motor coil 1
      A1 - to stepper motor coil 1
      B1 - to stepper motor coil 2
      B2 - to stepper motor coil 2
      VDD - Wired to Arduino 5V

      DIAG - Wired to Nano D12
      ENABLE - Wired to Nano D8
      MS1 - Wired to Nano D7
      MS2 - Wired to Nano D6
      PDN - Wired to Nano D10
      - Wired to 1K resistor
      - Other end of 1K resistor wired to Nano D11
      PDN - not used
      CLOCK - Wired to GND
      STEP - Wired to Nano D4
      DIRECTION - Wired to Nano D3

      100uf 35V Bipolar Capacitor
      - +ve lead to VMOT
      - -ve lead to GND
      - mount as close to the TMC chip as possible

      Regards
      Robert

       
  • Franck M

    Franck M - 2023-10-09

    Challenge accepted :-)
    I'll update you with my progress (if any)
    Regards
    Franck

     
    • DH Lu

      DH Lu - 2023-10-09

      My experience, wrong motor wiring makes motor jiggling.
      for example:
      wrong wiring:
      A2 - to stepper motor coil 1 (black)
      A1 - to stepper motor coil 1 (green)
      B1 - to stepper motor coil 2 (red)
      B2 - to stepper motor coil 2 (blue)

      correct wiring:
      A2 - to stepper motor coil 1 (green)
      A1 - to stepper motor coil 1 (black)
      B1 - to stepper motor coil 2 (red)
      B2 - to stepper motor coil 2 (blue)

       
      • Franck M

        Franck M - 2023-10-10

        Thanks, good advice. I tested the poles conductivity with a multimeter and found that proper wiring was:
        A2 - black
        A1 - red
        B1 - green
        B2 - blue

         
        • DH Lu

          DH Lu - 2023-10-11

          Would you please check the wiring color again? Black and green should be a pair; red and blue should be a pair. I never see the coloring like yours.

          Another my silly experience of A4988, that was Vref of my motor drive board too large, and outout too much current and the chip of A4988 was extremely hot immediately. I think, that may cause thermal shutdown protection of A4988 in that moment. And my stepper motor was jigling til I turned off.

          For TMC2209, here is my sample result, I used a oscilloscope to get step pulse and motor current (1 phase). If the current like sine wave, the motor rotate without vibration. But if the current wave look "ugly", the motor will jiggling.

          BTW, I only fine-tuned some parameters which described on page 24 of myFP2-TRINAMIC-09-4.pdf. No other code was modified of version TMC2209SG_328.

           
          • Franck M

            Franck M - 2023-10-12

            Yes, I was also very surprised, but it works well like that. I may try other combination. Anyway this is a test motor not the definitive one.

             
            • brownrb

              brownrb - 2023-10-13

              Don't forget to set the tmccurrent to match that of the new motor

              #define TMC2209CURRENT 1000
              
               

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.