Anycubic Kossel Klipper Trigorilla TMC Driver UART Upgrade

Home / Kossel / Klipper / Anycubic Kossel Klipper Trigorilla TMC Driver UART Upgrade
Klipper | Kossel | Upgrades

Upgrading your stock A4988 drivers to TMC2208 will bring you comfort and the only thing you will hear will be the fans.

You do not need to buy SKR, you can use original Trigorilla board with TMC drivers and UART mode

You can use TMC2208 in a standalone mode (DIY in this article), but I do not recommend it.
It needs to set V ref via potentiometer on each driver and some more modifications.

The best way how to run more advanced drivers such as TMC2208, TMC2209… is UART mode.

UART mode allows you to configure microstepping, current and other parameters via FW on your LCD, via USB and PronterFace or via Octoprint.

TMC drivers need one more thing and that is an active cooling. You will get serious layer shift without it. These advanced drivers will lower output current if they are really hot and could overheat.

This is what happens without active cooling on.

1. Order BTT TMC2208/2209 UART drivers

You have three options:
TMC2209 with UART
TMC2208 with UART
TMC2208 DIY (without UART pads soldered)

Please order TMC2209 or TMC2208 UART, do not buy DIY version.
Also TMC2209 are better, they do not need so much cooling and can provide larger current.
I use 3x TMC2208 for X, Y, Z and 1x TMC2209 for E (I’ve already had 2208, so there was no reason to buy new set)

Do not buy more expensive drivers such as TMC5160, you do not need them.

Also do not buy Fysetc drivers, my configuration files will not work with them, they use another pins and configuration for UART mode.

2. Order 5015 radial fan for driver active cooling

Click on the picture and order a good quality 12V 5015 radial fan with dual ball bearing for the cooling tunnel.

3. Print a cooling tunnel

Click on the picture, download and print the cooling tunnel.

4. Modify TMC2208 DIY drivers

Skip this step if you have UART version!!!

As you can find in a manual: TMC2208-V3.0 manual.pdf there are two possible options for a UART pin.

If you order UART versions, two pads allowing UART mode are already soldered and you do not have to do anything.

If you have a DIY version (standalone mode) just solder these 3 pads together.

You can see in this picture which pin will be activated for UART communication with soldering 2 different J2 pads.

You can find a lot of posts on the internet saying that you need to solder all 3 pads, but that is a nonsense.
You just need to solder two pads and it is up to you which two, the only difference is what pin you will use for UART connection.

5. Modify TMC2208/2209 UART drivers

The only modification you should do is cutting out these 3 pins, or bending them heading outside.

6. Solder pins/cables on servo pins

Next step is soldering standard pins on servo ports.
You will only need 4 pins, but I reccomend using 5 pins.
We will use servo ports D4, D5, D6, D11, D12 for UART communication.

As you can see on the driver on the left, you can bend those 3 pins instead of cutting them off.

Solder 5 pins on D4, D5, D6, D11, D12 servo position as you can see in the red rectangle on the right side of the picure.

!!!Two servo port options!!!
Please be advised, that there are two different Trigorilla servo port layouts.
D4, D5, D6, D11, D12
D11, D4, D6, D5, D12

7. Driver installation

I recommend starting with stock drivers and only 1 TMC driver, it is better to figure out how to set it up and continue with other drivers.

Insert TMC2208/2209 X tower stepper – stepper_a into the board (with 3-4 stock drivers for Y, Z, E) and use a cable and connect the driver between UART pin on your driver and D4 pin on your Trigorilla board

Please check your UART pin, it depends on J2 pads and how they are soldered together.
This diagram works with BigTreeTech TMC2208/TMC2209 UART drivers.

8. Download printer.cfg for TMC drivers

If you are not sure what you are doing, download this printer.cfg file for TMC drivers and Trigorilla board:

Trigorilla and UART TMC2208 Drivers

Please note that the only thing you need to do use TMC2209 instead of TMC2209 is renaming each driver tmc section:

From [tmc2208 stepper_a] to [tmc2209 stepper_a]

9. FW modifications in printer.cfg

We will start with a stepper_a driver (X tower motor).
This is a standard A4988 stock driver Klipper configuration:

[stepper_a]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar2
homing_speed: 10
# position_endstop: 295.6
# arm_length: 271.50

For UART mode you have to add UART section.
All necessary settings can be modified here.
The most important setting at this moment is uart_pin, in this case ar4 = D4 on Trigorilla board

If you want to use TMC2209 instead of TMC2208, just rename tmc2208 to tmc2209.

[tmc2208 stepper_a]
uart_pin: ar4
microsteps:16
run_current: .8
hold_current: .4
stealthchop_threshold: 250

This is a complete TMC2208 UART stepper_a configuration section.
If you are wondering why position_endstop and arm_length are commented with #, it is because values are stored in save_config section after delta calibration.

The important thing is to change dir_pin logic from !ar55 to ar55, because TMC drivers use direction pin the other way.

[stepper_a]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar2
homing_speed: 10
# position_endstop: 295.6
# arm_length: 271.50

[tmc2208 stepper_a]
uart_pin: ar4
microsteps:16
run_current: .8
hold_current: .4
stealthchop_threshold: 250

You can modify this file with :
OctoKlipper plugin Click HERE
Or notepad + upload via SFTP HERE

After successfull firmware upload via SFTP / OctoKlipper Configuration modification you should see no error in Terminal.

10. Install all drivers

This is my configuration:
X, Y, Z TMC2208 and E TMC2209.

Do the same modifications for all drivers:
stepper_a, stepper_b, stepper_c, extruder

You can use this printer.cfg file:
Trigorilla and UART TMC2208 Drivers

11. Install active cooling

Install active cooling tunnel fith a fan and insert the fan connector into FAN1 – ar7 connector on your board

I did not print the cooling tunnel before this modifications, so I was not able to print without active cooling.

So I applied some “slav science” or also “ghetto solution” and used somedouble sided tape and a 4010 fan.It has been working without any problem for about 8 months.

12. Driver cooling fan FW modifications

Code below controls the driver cooling fan (controller_fan).
This fan is “connected” to extruder – extruder starts heating up, fan start 0.2 second after that at 60% speed.

[controller_fan my_controller_fan]
pin: ar7
max_power: 0.6
kick_start_time: 0.2
idle_timeout: 5
heater: extruder

I have this code under the heater_fan section like this:

Anycubic Kossel Klipper guide

More Klipper guides HERE.

Similar Posts

19 Comments

  1. Hi, firstly just want to say your page is amazing. Secondly I would like to ask your advice over a issue i am having changing to TMC2208 UART. I keep getting the message “Unable to read tmc uart ‘stepper_a’ register IFCNT”. I have swapped pins around and changed drivers (even to 2209) but still the same issue. I also get a issue with my printers screen going blank whilst this is happening. can you help?

  2. Hey Lucas, i have a problem with the configuration of TMC2208 / Extruder. i used the provided printer.cfg, everytime i restart klipper i’m unable to connect the printer. i mentioned that if i comment the extruder tmc2208 section in im able to connect to the printer, but then the extrusion i bad calibrated. any ideas?

      1. exactly like you

        –> Error: Unable to read tmc uart ‘extruder’ register IFCNT” to “Offline (Error: Unable to read tmc uart ‘extruder’ register IFCNT)

      2. Error: Unable to read tmc uart ‘extruder’ register IFCNT” to “Offline (Error: Unable to read tmc uart ‘extruder’ register IFCNT)

        same as in your pictures

      3. i think i got it. the provided file came with uart_pin: ar12, but in the picture it is shown as ar11

        1. There are two Trigorilla versions used in these 3D printers with slightly different pin layouts…
          It should be in the article somewhere around pin definition.

          1. Hi,
            how can I find out, which pin layout applies to me? Is it printed on the board?

          2. Hi, it depends on Trigorilla version.
            But the easiest way is to try it with one driver on a pin where the number changes.
            It is a 2 minute testing.

  3. I have been trying or a long time but cannot seem to get UART communication working in marlin with the Trigorilla V1 board. I have tested multiple pins but am still unsuccessful

    1. Hi, this is a solution for Klipper.
      It is possible that Marlin requires both Rx and Tx pins to work.

      You could use UART3 pins on the board, but I have not tried it.

  4. Hi Lukas,

    can I use TMC2209 in standalone mode? Just omitt uart_pin?

    I have the Fysetc TMC2209 and with Marlin they run fine in standalone.

    Thanks!

    1. Hi, it is possible.
      Delete all [tmc2208 stepper_] sections and just change direction pin logic like this:
      From dir_pin: !ar55 to dir_pin: ar55

    1. Without those pins bended, it sometimes leds to connection problems (some people reported this problem).
      Do the same on TMC 2208/2209 drivers.

  5. Hi !
    On step 12.( Driver cooling fan FW modifications) how would you do that in Marlin 2.0.X ?

    Thanks !

Leave a Reply

Your email address will not be published. Required fields are marked *