Tmc connection error marlin

Description TMC UART seems to be broken with 2.0.X bugfix build pulled today from Marlin official repository, at least on BIGTREE_SKR_MINI env. The build compiles all right, but there is now "...

Comments

@salacpavel

Description

TMC UART seems to be broken with 2.0.X bugfix build pulled today from Marlin official repository, at least on BIGTREE_SKR_MINI env. The build compiles all right, but there is now «TMC CONNECTION ERROR» displayed on info screen once this FW image is flashed onto the board.
Adittionally, M122 issues «Bad response» for all TMC drivers:
Driver registers:
X 0x00:00:00:00 Bad response!
Y 0x00:00:00:00 Bad response!
Z 0x00:00:00:00 Bad response!
E 0x00:00:00:00 Bad response!
Testing X connection… Error: All LOW
Testing Y connection… Error: All LOW
Testing Z connection… Error: All LOW
Testing E connection… Error: All LOW

Same configuration, is working with image build some two weeks ago.

Steps to Reproduce

Download current build, replace platformio.ini, configuration.h and configuration_adv.h with those attached. Build and flash image on Bigtreetech Mini DIP board, with 4x TMC2209 in UART mode.

Expected behavior:
No rerror message on screen, normal response from M122

Actual behavior:
as above

Additional Information

platformio.zip
Configuration.zip

@boelle
boelle

changed the title
TMC2209 UART connection error

[BUG] TMC2209 UART connection error

Aug 21, 2019

@antibyte

I am facing the same errors, tried with TMC2208 and TMC2209 on SKR1.1
On the Scope i can see data beeing sent to the drivers, but LCD says connection error.

@antibyte

Installed Klipper on the same Board, 2 x TMC2209 + 1X TMC2208 on a single wire working without problems. So it is a bug in Marlin.

@GizmoTheGreen

afaik SKR Mini baords and btt boards with stm32 mcus need BTT version of TMCStepper.
what exactly it changed I don’t know but I know it works on my SKR Mini e3 DIP when the normal one does not… https://github.com/bigtreetech/TMCStepper/
also to compile with that lib you need to ass -DHAVE_SW_SERIAL to build flags.

@ManuelMcLure

Hmmm… I’m having a similar problem on RAMPS/Re-ARM but since this is the first time I’ve used TMC drivers I don’t know if it’s a bug or something I’m doing wrong.
I’m using a single pin for both RX and TX which should work…

@ManuelMcLure

My problem seemed to involve using 1-wire. It didn’t work for me at all — I had to use a Y lead and two separate pins on the board for the connection to succeed.

@TheZoker

+1

If I replace TMCSteppers with the one from BigTreeTech, I get an error and the build fails:

collect2: error: ld returned 1 exit status
*** [.pio/build/BIGTREE SKR MINI/firmware.elf] Error 1

@GizmoTheGreen

+1

If I replace TMCSteppers with the one from BigTreeTech, I get an error and the build fails:

collect2: error: ld returned 1 exit status
*** [.pio/build/BIGTREE SKR MINI/firmware.elf] Error 1

did you also add -DHAVE_SW_SERIAL to build flags? this seems to be a must if you have bigtreetechs tmcstepper lib

@TheZoker

No with the flag it worked, thank you :)

@matheusmbar

The TMCStepper library from BTT implements the software serial library methods. This is required to comunicate with the TMC uart drivers I their boards.
The HAL STM32F1 in Marlin firmware implements dummy methods for this library.

  • Using original Marlin firmware without replacing the TMCSTEPPER library will result in connection error due to the dummy software serial methods
  • Using BTT TMCStepper library in original Marlin firmware results in build errors due to redefining Software Serial library methods

Adding -DHAVE_SW_SERIAL to build flags as stated earlier in this issue ignores the Dummy software serial library from Marlin so the build works and the TMC Connection error goes away.

Should Marlin implement the real software serial library for STM32F1 ?

PS: my test case is running SKR E3 DIP with tmc2208s

@Grogyan

I followed the same steps.
Get the same errors

SKR1.3 + 2209

@lightface79

Same error on SKR 1.3 lcd says tmc connection error
If i do a M122 It reads the 2208 drivers but get X 0x00:00:00:00 Bad response!
Testing X connection… Error: All LOW

only have 1 2208 driver in my test bench

and cant jog my X axis from lcd.

Latest build of today fresh DL

@lightface79

@Grogyan

I don’t know
There are the same issues raised on teemuatlut’s GitHub

As well as on the Discord channel

@Grogyan

@lightface79 Board needs to be powered externally not from USB

@samnangor

SKR1.3 + 2209
Same problem 0x00:00:00:00 Bad response!

@samnangor

SKR1.3 + 2209
Same problem 0x00:00:00:00 Bad response!
with 24V external power supply.

@Grogyan

@samnangor Please provide configs.
I tested the SKR 1.3 + 2209 last night with the Marlin Bug Fix from that time

@samnangor

Here is my config
Thanks for your help.
Marlin.zip

@Grogyan

@samnangor

@Grogyan

Configuration_ADV.h is needed too

@samnangor

@Grogyan

#define SERIAL_PORT 0
Should be -1

@samnangor

Thanks Grogyan,
How about SERIAL_PORT 2?

@samnangor

Compile with
SERIAL_PORT_0 -1
Run Pronterface command M122
Driver registers:
X 0x00:00:00:00 Bad response!
Y 0x00:00:00:00 Bad response!

@LastDragon-ru

@randellhodges

I’m compiling with SKR 1.3 + 2208 with commit e6055dc. Using TMCStepper library 0.5.1 (I haven’t changed any pio configuration options and not using bigtree tmcstepper fork. I haven’t printed yet, but it moves all the axis and homes fine.

@LastDragon-ru

but it moves all the axis and homes fine.

Please try M122, because drivers will work even without uart…

@randellhodges

It’ll be later tonight before I can try that.

@randellhodges

but it moves all the axis and homes fine.

Please try M122, because drivers will work even without uart…

Works
NOTE: This is TMC2208 UART on SKR 1.3. Posted in reference to LastDragon-ru’s build issue. Not really related to the OP.

Send: M122
Recv: 		X	Y	Z	E
Recv: Enabled		true	true	true	false
Recv: Set current	1200	1200	1200	980
Recv: RMS current	1160	1160	1160	939
Recv: MAX current	1636	1636	1636	1324
Recv: Run current	20/31	20/31	20/31	16/31
Recv: Hold current	10/31	10/31	10/31	8/31
Recv: CS actual	10/31	10/31	10/31	8/31
Recv: PWM scale	24	25	24	10
Recv: vsense		0=.325	0=.325	0=.325	0=.325
Recv: stealthChop	true	true	true	false
Recv: msteps		16	16	16	16
Recv: tstep		max	max	max	max
Recv: pwm
Recv: threshold	49	49	82	31
Recv: [mm/s]		100	100	3	30
Recv: OT prewarn	false	false	false	false
Recv: OT prewarn has
Recv: been triggered	false	false	false	false
Recv: off time	4	4	4	4
Recv: blank time	24	24	24	24
Recv: hysteresis
Recv: -end		2	2	2	2
Recv: -start		1	1	1	1
Recv: Stallguard thrs
Recv: DRVSTATUS	X	Y	Z	E
Recv: stst		*	*	*	*
Recv: olb
Recv: ola
Recv: s2gb
Recv: s2ga
Recv: otpw
Recv: ot
Recv: 157C
Recv: 150C
Recv: 143C
Recv: 120C
Recv: s2vsa
Recv: s2vsb
Recv: Driver registers:
Recv: 		X	0xC0:0A:00:00
Recv: 		Y	0xC0:0A:00:00
Recv: 		Z	0xC0:0A:00:00
Recv: 		E	0x80:08:00:00
Recv: 
Recv: 
Recv: Testing X connection... OK
Recv: Testing Y connection... OK
Recv: Testing Z connection... OK
Recv: Testing E connection... OK
Recv: ok P63 B31

@LastDragon-ru

Works

Yep. My bad… Forgot about jumpers under drivers 🤣 (2209 seems also fine)

@boelle

@LastDragon-ru

@boelle, skr 1.3 + 2209/2208 = all fine :)

@boelle

i will assume the issue is not present anymore and close

if issue is still there we can reopen

@Djinn1

how is this fixed? I having same problem, All LOW TMC connection error.

@dinamitemic

Hi, I’ve an SKR MINI v1.1 (not E3) with TMC2209 and I’m looking for more detailed infos. I’ve everything up to date, using standard libs coming with marlin. I’ve tried defining serialtx and rx pin on pins..-.h then connecting jumpers between that pin and the PDN_UART pin on stepper and I was getting TMC CONNECTION ERROR.
Can I use every pin available on the board (obviously not the filtered ones)? Have I to add the -DHAVE_SW_SERIAL flag?

@LeChuck71

Sorry but I can see no fix.
BTT SKR 1.3 board with BTT TMC2209 V1.2 drivers — still get the

X 0x00:00:00:00 Bad response!
Y 0x00:00:00:00 Bad response!
Z 0x00:00:00:00 Bad response!
E 0x00:00:00:00 Bad response!
Testing X connection… Error: All LOW
Testing Y connection… Error: All LOW
Testing Z connection… Error: All LOW
Testing E connection… Error: All LOW

Quite new to Marlin 2.0 and 32bit boards, so I followed the YT videos but I couldnt find a solution to my problem, please help

@RavaszEmber

Thought I’d bump this, having the same issue and don’t see a clear fix in this thread.
TMC2209 SKR 1.3 Marlin 2.0

@sjasonsmith

@RavaszEmber & @Lechuck7, I suggest you use one of the available support forums to seek help solving your problem. You are using a very common hardware combination so it seems most likely this is a configuration problem and not a Marlin issue. Make sure you are using Marlin 2.0.1, then seek help on Facebook, Discord, RepRap, etc.

I wouldn’t expect any action on this closed issue. Even if the result of support attempts is that there is a Marlin bug, I think it should be a new issue rather than attached to the tail of an old closed issue.

@RavaszEmber

@RavaszEmber & @Lechuck7, I suggest you use one of the available support forums to seek help solving your problem. You are using a very common hardware combination so it seems most likely this is a configuration problem and not a Marlin issue. Make sure you are using Marlin 2.0.1, then seek help on Facebook, Discord, RepRap, etc.

I wouldn’t expect any action on this closed issue. Even if the result of support attempts is that there is a Marlin bug, I think it should be a new issue rather than attached to the tail of an old closed issue.

Thanks, kinda new to the Marlin github so didn’t know where to look for help.
Found the solution if anyone’s wondering, I was running the board on usb power when it needed the external power supply.

@sjasonsmith

Thanks, kinda new to the Marlin github so didn’t know where to look for help.

The README.md at the root of the Git Repo has links for several support resources. They are also displayed when you try to create a new issue. Glad you figured out the problem. I know I’ve done exactly the same thing.

@petrzmax

Hi I have some question about mks_robin_nano board. I have managed to connect and successfully set up four TMC2209 on this board using bigtreetech TMCStepper library and -DHAVE_SW_SERIAL flag. But this library is outdated… I don’t get why SoftwareSerial or similar methods can’t be implemented while it’s working when using a different library with it.

Will this be resolved somehow in the future, so we can use latest TMC library? Or am I missing something and I should use hardware serial on this board?

@sjasonsmith

@pertzmax, I suggest you try using the SoftwareSerialM library, as is done for the STM32F103RC_bigtree environment.

I did not do this for MKS boards because I did not have any of them to test with, and I wasn’t sure if it would work properly. There is a possibility of timer conflicts on boards, and I didn’t know what to select for any MKS boards.

The SoftwareSerialM timer number is defined by adding an -DSS_TIMER=4 item to build flags, as seen in the STM32F103RC_bigtree. If the BTT TMCStepper was working for you than you can probably use the same value (4) as the BTT boards.

If you confirm that SoftwareSerialM works proeprly with your boards, you should open a pull request to add that configuration for your environment, so others can benefit from it.

@petrzmax

@sjasonsmith Thank You for tips, I will test Your solution and report soon!

EDIT: That was easy — It worked like a charm! I will share it soon :)

Best regards from Poland,
Artur Petrzak

@slf495

can anyone walk a layman through the process of adding this -dss timer=4 line? I am also getting the tmc connection error, and I cannot figure things out

@sjasonsmith

@slf495

@ManuelMcLure

SKR 1.3 should not need that — that setting is specific for STM32 processors and does not apply to the LPC1768 on the SKR 1.3.

@ManuelMcLure

Come on to the Marlin Discord and we’ll try to help you get it working.

@slf495

@Kawasalto

I have the same error with the integrated drivers 2209 in the SKR mini E3 V1.2 Board. I do not dig into programming, so it is difficult for me to understand when you talk about some libraries, etc. Just tell me what need to write to make it work. If you know.
With the original firmware, the motors worked, moved, but after installing the latest Marlin, this error appeared. So I suspect that the Board is connected correctly. Unfortunately I don’t have the original firmware =((

@Kawasalto

I fixed it. Most likely, the problem was in the wrong name of the Board(although I’m not sure, I didn’t return it). I wrote the name like this — #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2

@github-actions

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

kostyansd

Идет загрузка
Загрузка

26.02.2020

8244

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

2

Привет.

Купил у bigtreetech плату и драйвера.

tmc2208 v3.0 + skr 1.3

tmc2208 v3.0 + skr 1.3

Драйвера «DYI» для подключения по UART.

При установке с marlin 2.0 прошивка выдавала ошибку «tmc connection error».

Нигде не нашел дельного ответа, кто-то меняет драйвера, кто-то добавляет какие-то строки в прошивку.

Я же решил проверить сначала железо. С платой все отлично.

А вот с драйверами вышла накладка. Смотрим даташит на камень:

tmc2208 v3.0 + skr 1.3 Проверяем схему драйвера:

tmc2208 v3.0 + skr 1.3

Тут явно видно лишний резистор.

Запаяв перемычку J2 согласно инструкции и выпаяв резистор R1 все заработало.

tmc2208 v3.0 + skr 1.3

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

2

Комментарии к статье

Еще больше интересных статей

Wash and Cure and… DRY? Своими руками.

Viknikvvk

Идет загрузка
Загрузка

05.02.2023

1566

46

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

       Всем доброго чего там у вас сейчас:)

     …

Делаю из обычного горла нормальное

Just0

Идет загрузка
Загрузка

29.01.2023

3503

24

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

На днях имел несчастье сломать биметаллический термобарьер.

На замену из старых зап…

Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!

3dmaniack

Идет загрузка
Загрузка

20.11.2018

97859

248

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

Добрый день.

Решил я тут попробовать перейти с 8 бит на 32.

Готовы…

Читайте в блогах

Содержание

  1. tmc2208 v3.0 + skr 1.3 «tmc connection error» мое решение
  2. Подпишитесь на автора
  3. Подпишитесь на автора
  4. [BUG] SKR 2: TMC connection error if DISABLE_DRIVER_SAFE_POWER_PROTECT commented-out (i.e. protection is enabled) #22701
  5. Comments
  6. Did you test the latest bugfix-2.0.x code?
  7. Bug Description
  8. Bug Timeline
  9. Expected behavior
  10. Actual behavior
  11. TMC2208 [TMC CONNECTION ERROR] #17
  12. Comments
  13. [BUG] [Bugfix 2.0.x] TMC Connection Error when using TMC2208 with DUE. #15821
  14. Comments
  15. Description

tmc2208 v3.0 + skr 1.3 «tmc connection error» мое решение

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Купил у bigtreetech плату и драйвера.

Драйвера «DYI» для подключения по UART.

При установке с marlin 2.0 прошивка выдавала ошибку «tmc connection error».

Нигде не нашел дельного ответа, кто-то меняет драйвера, кто-то добавляет какие-то строки в прошивку.

Я же решил проверить сначала железо. С платой все отлично.

А вот с драйверами вышла накладка. Смотрим даташит на камень:

Проверяем схему драйвера:

Тут явно видно лишний резистор.

Запаяв перемычку J2 согласно инструкции и выпаяв резистор R1 все заработало.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Источник

[BUG] SKR 2: TMC connection error if DISABLE_DRIVER_SAFE_POWER_PROTECT commented-out (i.e. protection is enabled) #22701

Did you test the latest bugfix-2.0.x code?

Yes, and the problem still exists.

Bug Description

In Configuration_adv.h , one finds this section:

This is the normal state. But, it also keeps TMC drivers from working at all.

At first I couldn’t figure out why, then I looked at the SKR 2 schematic today (my board is a Rev. B and matches it):

MOT_POWER is the control line from the µC, PGND is the power supply ground rail.

Clearly, the driver power control MOSFET Q1 cuts the ground connection to the motor drivers when it’s turned off. I mean, ALL of the driver modules’ ground circuits, the lot of them, and not just whatever’s needed for motor power (though I’m not sure if a TMC chip «splits» its grounding in this fashion, not that it matters)

No ground to the driver means unreliable UART comms, which means TMC connection errors (UART generally requires both +V and ground) or gibberish data being fed to the drivers.

It also means trying to turn a motor on can start to BURN UP the chip! I’m guessing here that the motor drive circuitry is trying to pull a ground reference through the rest of the driver chip from somewhere else inside it other than its primary ground rail. I am 100% certain that this is what killed three of my TMC2208 drivers.

In my not so humble opinion, this is a major hardware design flaw. However, that’s out of Marlin’s hands.

If I uncomment that line, the drivers work, UART works, etc., presumably because the ground connection is turned on by default in this case. However, my TMC2208’s then can’t be disabled — idle timeout and M84 do nothing on them (my two A4988’s do turn off, however). I’m not sure why that is, but Marlin’s doing it, as they start out turned off, and only turn on when Marlin finishes its boot logo animation.

Marlin appears to be calling upon the TMCstepper code until before it does its anti-SNAFU checks and has turned the power control circuit on.

So, don’t try to query the drivers, and definitely do not allow any STEP/DIR/EN output to a driver that doesn’t report all good, until after the anti-SNAFU code is happy and the Q1 power control circuit has been turned on, and thus chip has a valid ground reference.

If that means that some user can’t print anymore because some other issue makes their drivers throw UART errors (that they’ve perhaps been ignoring), then so be it. They need to fix their hardware. If they’re in a hurry, they could of course put those axes into A4988 or standalone mode.

Bug Timeline

Unknown timeline, but new to me since I’m working with new hardware.

Expected behavior

As described above.

Actual behavior

Bad UART comms causing TMC connection errors, high risk of driver burn-out.

Источник

TMC2208 [TMC CONNECTION ERROR] #17

I configured marlin and SKR1.3 to work in uart mode but i have the same message on the display.
The driver are BIGTREETECH TMC2208 SKU:UUU001758
The board is SKR V1.3, i follow the instruction here: https://www.youtube.com/watch?v=oaXfXkPYHpw
But i have the same message on display.

Attached a photo of my driver.

Here is the output of my M122:
X Y Z E Enabled false false false false Set current 800 800 800 800 RMS current 1436 1436 1436 1436 MAX current 2025 2025 2025 2025 Run current 25/31 25/31 25/31 25/31 Hold current 12/31 12/31 12/31 12/31 CS actual 0/31 0/31 0/31 0/31 PWM scale 0 0 0 0 vsense 0=.325 0=.325 0=.325 0=.325 stealthChop false false false false msteps 256 256 256 256 tstep 0 0 0 0 pwm threshold 0 0 0 0 [mm/s] — — — — OT prewarn false false false false off time 0 0 0 0 blank time 16 16 16 16 hysteresis -end -3 -3 -3 -3 -start 1 1 1 1 Stallguard thrs DRVSTATUS X Y Z E stst olb ola s2gb s2ga otpw ot 157C 150C 143C 120C s2vsa s2vsb Driver registers: X 0x00:00:00:00 Bad response! Y 0x00:00:00:00 Bad response! Z 0x00:00:00:00 Bad response! E 0x00:00:00:00 Bad response! Testing X connection. Error: All LOW Testing Y connection. Error: All LOW Testing Z connection. Error: All LOW Testing E connection. Error: All LOW ok

The text was updated successfully, but these errors were encountered:

Have you solder bridged the option pads on the TMC2208 driver boards to connect the UART pin on the TMC2208 to the UART driver board pin ?

I made no solder, I place jumpers in the board and attached these drivers.
I have no idea of what to solder/connect

Try soldering these two little pads together on each of your TMC2208 driver boards ..

I asked also to the supplier, and he give me that image as reference for soldering two pins.
Are the same or i am confused?

oh ok, go with what they say. If that doesn’t work try the other two pads.

Nope, i soldered these pads but the trouble still remain.
And now its difficoult for me de-solder and solder the other two pads.
Do you think i could solder every three pads?
I send photos, please tell me if you see something wrong.



You soldered the pads BigTreeTech said to solder. Try soldering the pads I showed you instead.

You need to apply 12 or 24v for it to work

I have the same issue
the jumper on the driver is soldered and works properly with FTDI serial to USB
but not on skr 1.3 board powered by USB or 12v from power supply

Hi, i’ve soldered the pads together (because i have not good skill) and now it works!
Thanks to all of you!

Источник

[BUG] [Bugfix 2.0.x] TMC Connection Error when using TMC2208 with DUE. #15821

Description

Trying to test TMC2208 with DUE and I’m getting TMC Connection Error.
The TMC2208 drivers are good for sure as they work standalone, and I can connect to them via serial using a ftdi adapter + Script Communicator. If I move the rx/tx lines from the ftdi board to the DUE I get the connection error message on the display.
I tried with two different TMC2208, and I also tried using any serial1/serial2/serial3 ports but nothing.
The serial ports are working for sure as I tested with the serial console.

M122 reports this:

I have the resistor between RX/TX lines.

The text was updated successfully, but these errors were encountered:

Can anyone else with a DUE and TMC2208 confirm this?

@bob808 i assume this is still an issue?

Yes, at least for me.

This is what’s on RX/TX when talking to tmc2208 via ftdi with scriptcommunicator:

And this is what’s on RX/TX when DUE is trying to talk to tmc2208:

@bob808, those look so different because the top picture is a read, and the bottom picture is a write.

Try capturing while executing an M122 command, to capture some reads through Marlin.

Here’s how it looks when issuing M122 X

The two consecutive commands are constant retries to the tmc2208, they happen constantly. In the middle is the M122 command.
This is the first info in the M122 command:

@sjasonsmith do the new captures make any bells ring?

I just realized that the bottom picture shows a slave address of 1 being sent, when for a 2208 this should always be zero. The CRC is correct for those bytes, which tells me that address was intentionally sent, and this isn’t just a timing error.

My first guess was that Marlin was misconfigured for a TMC2209 with a slave address set, but that is not the case according to the posted configs.

@bob808, are you sure the configs you posted are what you are currently running?

Can you also make sure you are using the latest version of bugfix-2.0.x? If Marlin or TMCStepper is actually causing a slave address to be added that is not in your configuration file, this issue would be much more widespread.

I’ll try again, I did tinker with the settings since and I want to test again fresh, just to make sure.

I used a fresh version from a couple of days ago, only modified Configuration.h, Configuration_adv.h and the pins file, all added in the archive.
config.zip

Still doesn’t work, TMC connection error on display, serial says:
Testing X connection. Error: All LOW
And logic analyzer shows this as the first command after issuing M122 X

Also just to make sure I removed the cables from the DUE and I inserted them into the FTDI just the same as into the DUE, and used scriptcommunicator and could read the tmc2208.

OK, that looks better, it has a ‘0’ for the slave address, as it should.

Where are your probes attached? Their position relative to any resistor(s) in the line is important.

Where is the resistor attached? There should be a resistor between the TMC UART pin and your TX pin. There should be a direct connection between the TMC UART pin and the RX pin (no resistor).

When I see a valid read command going out with no response, it makes me think that the resistor is connected to RX instead of TX.

Also, can you verify that you are powering your stepper drivers? If you are only powering with USB they will not respond.

Right now it seems like a possible wiring problem. This is what I would expect to see if the resistor it attached to the RX pin instead of the TX pin.

I don’t have HV, I feed it 5V, and seems to be able to talk with scriptcommunicator. But I can add the required higher voltage.
I have a 1K resistor between RX/TX.
Ah, ok, had RX/TX swapped. Just noticed, I wanted to be sure it’s ok before finishing my reply 🙂
Thank you for your help!
I think I tried swapping RX/TX before but apparently it was that extra bit that was messing things up then.

Glad to hear it worked! I have a Due here, but I don’t have a shield I can actually use with it, so I wasn’t able to try it myself!

I finished designing mine and apparently everything should work.
I have 3xUART capable driver slots (hardware UART), all 5 capable of SPI. One with UART has two connectors for motors, for Z axis.
8 thermistor inputs, one max31865 sensor.
6 PWM fans, 3 of which can be powered by 24V/12V/5V
2 servos and one bltouch connector
3 endstops
two extruder heater connections, car fuses for VMOT/extruders/bed. poly fuses for lower current rails. bigger mosfets are properly driven, most comms are also buffered, and I managed to get it pretty decent on two layers:

Everything should work. I’ll see when I get it.
Oh, and I’m using two of those small dc/dc converters for 12V/5V to servo. If they burn I can just replace them. But they should be fine.
Also put an esp8266 socket for when some code for spi gets out. I can still use it on rx/tx as it is but the file transfer is slow af. Added the SPI connection to SD for future code.

@bob808 nice looking board are the files for that published anywhere? i assume its a shield for a due

i tried to make a Ramps-FD v2.2 but i gave up on it as it was to expensive and to much surface mount

not yet.
I tried remaking a ramps-fd but I figured I should start from scratch since I have a different configuration.
Basically all pins are used/broken out or both. I think there’s one pin left (for filament runout sensor) if using software SPI for tmc drivers/max31865. I have a jumpered setup for that. if using hardware then there’s 3 extra pins left.
there’s also a precise voltage reference for the analog stuff, and I tried to keep it somewhat isolated. I don’t know how much that matters, hope I find the time to take a look at the performance between with and stock.
ground looks like this:

there are a few unconnected tracks that show but I was lazy in correctly labeling the different 5V supplies etc.
being 2 layers and 100mmX100mm it’s pretty cheap to make. and the surface mount stuff is not that hard to solder. I’ve used 0805 smallest parts.
edit: yes, it’s for DUE.
as cost I think the max31865 chip is the most expensive. there’s 3x hc125 buffers, 1x74HC02 for properly driving the extruder/bed mosfets, and the extruder/bed mosfets should have a low rds on.
used AOD240 for bed (for 220W bed at 24V that is 9A and a bit, and mosfet would generate about 0.3W heat) and AO4430 for extruders (for a 2.5A heater, mosfet generated heat is irrelevant).
voltage reference could drive up cost depending on precision.
there’s also an eeprom, with footprints for both dip and sop footprints
both sevos + data to bltouch + display data line are buffered with a hc125 powered by 5V.
display encoder is translated with resistors, to 3.3V, so I can use the stock ender 3 display on 5V.
the other two display lines are driven at 3.3V, and the whole display works on 3.3V anyways so shouldn’t be a problem.
z-probe stop is buffered to 3.3V, mosi/sck for tmc spi is buffered, and the whole SD SPI is also buffered. so comms should work.
also max31865 is 2/3/4 wires selectable. I only got a two wire atm but wanted to have the option of using a four wires variant later on.
for the two buck converters I’m using these things:

they cost around 1$ and they can be set for either any of the fixed voltages on the back, either can be adjusted with a small pot on the top side. they brag about being 3A output capable, but I wouldn’t trust them for more than 1A. they also have an enable pin. and they are 24V input capable. pretty small as well.
one is for 5V needed for servo and bltouch and the optional 3 fans. the other is a 12V one powering (if wanted) the three fans, and permanently supplying VIN to the DUE. If needed, this one can be set to anything between 12V (max supply for VIN on DUE) and 6V or so, using it’s adjusting pot. This way there’s nothing I can’t pwm on the three fan headers (voltage wise).

I am really curious if I will be able to directly control a lower powered 405nm laser diode with the 5V regulator. I won’t be needing bltouch or any servo so I can adjust that converter to something comfortable for a 100mA laser diode. I got one that’s rated for 190mA or so, running it at 100mA would be more than enough for presensitized pcb work. as it happens this diode runs at about 5V for 100mA. sure there might be some drift but there’s plenty room both ways for presensitized pcb. I’d be practically using my fun 405nm pointer for this.

Источник

RepRap forum

Hello,
I have home made 3D printer, Ramps board with latest 2.0.4.4 Marlin release and Bigtreetech TMC2209 drivers on X and Y axis. I am able to move axis, but UART connection don’t work. «TMC connection error» is shown on LCD all the time.

I checked all connections multiple times, ask for support on FB page, seeking for solution on internet but infortunately, after one month, I still didn’t manage to solve it. So I am asking you for some help.

Regards,
Luka

Attachments:

open | download —
TMC_issue.zip
(64.1 KB)

Why didn’t you include all the information?

For anyone looking see the following for many more details
[github.com]

Please take a picture on how you have it all wired up on the ramps. high enough res that we can see where you have plugged in the wires.

Edited 1 time(s). Last edit at 03/11/2020 12:31AM by Dust.

See attached images. 1K resistor is under shrinktube, connected to brown wire.

Regards,
Luka

Edited 1 time(s). Last edit at 03/11/2020 05:44PM by Lupek.

How are you powering the RAMPS? Via USB or via the main power supply? If you are powering via USB, how do you turn on the main power supply? If the USB power is provided before the main power the driver initialization will fail and you’ll have to execute M501 to reinitialize the drivers once main power is applied.

Also, ensure that there are no jumpers installed under the drivers. For TMC2209 the jumpers that set micro steps for other drivers instead are used to set an address for the 2209. If the jumper setting does not match the setting of X_SLAVE_ADDRESS, Y_SLAVE_ADDRESS,etc in Configuration_adv.h then the driver won’t respond to the UART data. The default for the addresses is 0 which means no jumpers.

It is powered with 12V power supply from old PC. I meassureed also voltage directly on TMC driver, pins VM and GND and it was 12.2V. All jumpers below TMC drivers are removed on X and Y axis, where I use TMC drivers. But I keeppt them on Z, E1 and E2 where A4988 are used. All slave adresses are set to «0»

Attachments:

open | download —
TMC connection error with TMC2209 drivers — Google Chrome.jpg
(35.5 KB)

Could anyone with more knowledge about UART comunication explain me how this comunication works? I meassured signal on TX and RX port with analog 20MHz osciloscope and all I see is just constant 5V voltage. What is normal comunication frequency? Should driver and arduino comunicate all the time or just from time to time? I am quite suspicious that there is some mistake in arduino program.

Regards,
Luka

With a ramps it just communicates on setup or if you request information via gcode

Thanks. This was very usefull information. I measured signal on TX port when M122 was executed and I see some signal. Therefore at least TX seems to work properly.

Edited 1 time(s). Last edit at 03/14/2020 03:38PM by Lupek.

I still didn’t manage to solve this issue. As mentioned in previous post, I am now sure that TX port gives signal. Next step would be to check if driver gives any signal. If I meassure signal with osciloscope, and grab pint head in order to skip few steps. Should I see signal on driver druring step skipping?

I received the same error. I had chosen tmc2208 and received The same error. It got me thinking, Try the tmc2208 standalone (or something like that) and it WORKED. No more connection errors. I guess that if they don’t have some extra connection they are considered stand alone.

In standalone mode TMC connection error disappear also in my case. But as far as I know, UART connection is disabled in standalone mode and except hidden error message, main issue still remains.

Regards,
Luka

Понравилась статья? Поделить с друзьями:
  • Tmc connection error 2209 mks
  • Tmc connection error 2208
  • Tmac ошибка failed to change mac address
  • Tmac runtime error
  • Tm5 crash thread error handler