Utilisation des pilotes pas à pas TMC2130 avec Megatronics

This topic will help you use the Stepstick TMC2130 Stepper drivers with Megatronics. The setup is fairly easy, but the wiring may become a bit messy, as there is quite some extra wires necessary. The TMC2130 use SPI to allow the Microprocessor to communicate with the driver and set Microstepping settings for example. For more information on the features of the chip, please check the TMC2130 datasheet.


First you need to hook up the wirring. SPI works with four wires: Data (Master -> Slave or MOSI), Data (Slave -> Master or MISO), Clock (SCK) and Chip Select (SS, CSN or CS). The Chip select wiring determines which device is active, only one device can be active at a time, so if you are using SD and a LCD for examples, they should be quiet and not listen when talking to a stepper driver. There is one chip select wire for each device, while the MISO, MOSI and SCK wire can be connected in parallel. The Stepsticks have a description on the back on how to connect them: Data in (SDI), Clock (SCK), Chip select (CSN) and Data out (SDO). Note that Data In is to be connected to the master data out (MOSI), while Data Out should got to MISO.

Megatronics support SPI in the SDOUT header, but it can be used to hook up a external SD or LCD, so it it more convenient to use the ICSP header. Chip select can be connected to any digital I/O and can be changed in the firmware. So you may use the I/Os from the keypad header too. But in this example we will use AUX3. Review the following wiring schema:

 The blue wire is MOSI, purple is Clock,green is MISO and the orange wires are Chip select.The Chip select wire go to AUX3 pins 3-6 in this example.

That's it for the wiring. In the firmware we need to setup some things. In this example we will look at MK4Duo, but other firmwares work about the same. In the Megatronics v3 pin mapping files (MK4duo/src/boards/703.h) change the CS_PIN definitions for each stepper driver to the I/Os you choose. If you used the wiring above, this will work:

#define ORIG_X_STEP_PIN            58
#define ORIG_X_DIR_PIN             57
#define ORIG_X_ENABLE_PIN          59
#define ORIG_X_CS_PIN              49

#define ORIG_Y_STEP_PIN             5
#define ORIG_Y_DIR_PIN             17
#define ORIG_Y_ENABLE_PIN           4
#define ORIG_Y_CS_PIN              48

#define ORIG_Z_STEP_PIN            16
#define ORIG_Z_DIR_PIN             11
#define ORIG_Z_ENABLE_PIN           3
#define ORIG_Z_CS_PIN              46

#define ORIG_E0_STEP_PIN           28
#define ORIG_E0_DIR_PIN            27
#define ORIG_E0_ENABLE_PIN         29
#define ORIG_E0_CS_PIN             47
#define ORIG_SOL0_PIN              NoPin

In configuration_feature.h, find the driver types section and change the driver type for each axis you want to TMC2130, like this:

 ******************************** Driver types ******************************
 *                                                                          *
 * Set driver type:                                                         *
 *  - A4988                                                                 *
 *  - A5984                                                                 *
 *  - DRV8825                                                               *
 *  - LV8729                                                                *
 *  - L6470                                                                 *
 *  - TB6560                                                                *
 *  - TB6600                                                                *
 *  - TMC2100                                                               *
 *  - TMC2130                                                               *
 *  - TMC2130_STANDALONE                                                    *
 *  - TMC2208                                                               *
 *  - TMC2208_STANDALONE                                                    *
 *  - TMC26X                                                                *
 *  - TMC26X_STANDALONE                                                     *
 *  - TMC2660                                                               *
 *  - TMC2660_STANDALONE                                                    *
 *  - TMC5130                                                               *
 *  - TMC5130_STANDALONE                                                    *
 *                                                                          *
 * See Configuration_Motor_Driver.h for configuration Motor Driver          *
 *                                                                          *
#define  X_DRIVER_TYPE  TMC2130
#define  Y_DRIVER_TYPE  TMC2130
#define  Z_DRIVER_TYPE  TMC2130
#define X2_DRIVER_TYPE  A4988
#define Y2_DRIVER_TYPE  A4988
#define Z2_DRIVER_TYPE  A4988
#define E0_DRIVER_TYPE  TMC2130
#define E1_DRIVER_TYPE  A4988
#define E2_DRIVER_TYPE  A4988
#define E3_DRIVER_TYPE  A4988
#define E4_DRIVER_TYPE  A4988
#define E5_DRIVER_TYPE  A4988

That's it. If you get a compilation error, verify that the TMCStepper driver library is installed. Connecting to the Megatronics board shoul give message that the stepper drivers got connected upon startup:

echo:Last Updated: Nov 13 2018 16:23:14 | Author: (none, default config) 
echo:Compiled: Nov 13 2018 
echo:Free Memory: 4121 PlannerBufferBytes: 1184 
echo:stepperX connect! 
echo:stepperY connect! 
echo:stepperZ connect! 
echo:stepperE0 connect! 
echo:Factory Settings Loaded 
Config:  G21    ; Units in (mm)

Pourquoi ReprapWorld ?
  • Commandes expédiées le même jour ouvrable
  • 3.000+ produits dans notre assortiment
  • Plus de 45 000 clients satisfaits dans plus de 40 pays
  • Paiement sécurisé pour toutes les options de paiement
  • Support technique professionnel (plus de 10 ans d'expérience 3D)
Payez en toute sécurité avec

Copyright 2009 - 2023 | ReprapWorld