kostyansd
Загрузка
26.02.2020
8243
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подписаться
2
Привет.
Купил у bigtreetech плату и драйвера.
Драйвера «DYI» для подключения по UART.
При установке с marlin 2.0 прошивка выдавала ошибку «tmc connection error».
Нигде не нашел дельного ответа, кто-то меняет драйвера, кто-то добавляет какие-то строки в прошивку.
Я же решил проверить сначала железо. С платой все отлично.
А вот с драйверами вышла накладка. Смотрим даташит на камень:
Проверяем схему драйвера:
Тут явно видно лишний резистор.
Запаяв перемычку J2 согласно инструкции и выпаяв резистор R1 все заработало.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подписаться
2
Комментарии к статье
Еще больше интересных статей
Wash and Cure and… DRY? Своими руками.
Viknikvvk
Загрузка
05.02.2023
1566
46
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подписаться
Всем доброго чего там у вас сейчас:)
…
Первое обнюхивание мотора с двумя шлангами
eta4ever
Загрузка
18.01.2023
5547
33
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подписаться
Было немножко скучно, и зачесалось шило. А тут ещё немножко подействовали на мозг по поводу векторно…
Собираем 3D-принтер своими руками. Пошаговая инструкция. Часть 1.
197
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подписаться
Всем привет!
Как уже анонсировал Серега, я начинаю публиковать цикл статей по сборк…
Читайте в блогах
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
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.
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!
BigTreeTech are telling people to solder the wrong two pads together .. it should be the other two (as you’ve found out @lospo).
hello, i have done the same thing, but i am getting tmc connection error.
i have soldered all 3 pads together, placed on skr 1.3 with the uart jumpers in place.
set firmware to TMC2208 and turned on TMCDEBUG.
i have my board and lcd at work right now, so cant test from 12 volt, powering from usb can give a tmc connection error?
Yes, USB power is too low.
You need tre 12/24v power
Ok thanks, I’ll reload the firmware and test it from my power supply when I get home.
Just to clarify something I wasent sure about or have heard differing information,
All jumpers should be removed besides uart?
(Black jumpers under driver, and red jumpers to the right side of board)
Ok thanks, I’ll reload the firmware and test it from my power supply when I get home.
Just to clarify something I wasent sure about or have heard differing information,
All jumpers should be removed besides uart?
(Black jumpers under driver, and red jumpers to the right side of board)
I removed all, and it works.
BigTreeTech are telling people to solder the wrong two pads together
No they’re not. You can use either combination, or even solder all 3 pads together. You need to be applying the right voltage to the board in order for the the tmc2208 to allow current to flow. The low voltage from your laptop/PC won’t do the trick.
This was referenced
Jun 20, 2020
I think this has to do with software problem otherwise why I have TMC connection problem with Cura altimaker and Ideamaker but when I use control maker, I don’t have any problem with TMC
Содержание
- tmc2208 v3.0 + skr 1.3 «tmc connection error» мое решение
- Подпишитесь на автора
- Подпишитесь на автора
- [BUG] SKR 2: TMC connection error if DISABLE_DRIVER_SAFE_POWER_PROTECT commented-out (i.e. protection is enabled) #22701
- Comments
- Did you test the latest bugfix-2.0.x code?
- Bug Description
- Bug Timeline
- Expected behavior
- Actual behavior
- ((TMC connection Error)) #46
- Comments
- Eryone 3D
- Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
- Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
- Re: Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
- Re: Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
- Проблема «Сбой связи с TMC», плата SKR 1.3 с TMC2209 v 1.2
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.
Источник
((TMC connection Error)) #46
Dear Friends ,
Since 2 week i work on SKR 1.3 with BLTouach and TFT SKR.
and i have The Original TMC 2130 from WATTEROTT .
when i configured the board with Marlin-bugfix-2.0.x .
i have always ((TMC connection Error)) on / display 12864/,
and on Pronterface With (( M122 Code)) i have:
SENDING:M122 S0
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 2 2 0 0
DRVSTATUS X Y Z E
stallguard
sg_result 0 0 0 0
fsactive
stst
olb
ola
s2gb
s2ga
otpw
ot
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
my mode is: TMC 2130 /SPI Mode/Sensor less homing for X and Y BLTouch.
Of course, i changed the processor name to(LPC1768) and motherboard name to (BOARD_BIGTREE_SKR_V1_3)
So I need your help and suggestions Please
The text was updated successfully, but these errors were encountered:
Источник
Eryone 3D
Here you can share you ideas and we provide professional service
Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
Post by dapostol73 » Mon Mar 29, 2021 2:10 am
Hello, I recently tried upgrading to TMC2209 for my Thinker S V2. It works if I use the HEX file provide, however I need to compile my own to configure Filament Runout and BLTouch. However, when ever I do this, Marlin report «TMC Connection Error» on boot up. The stepper work, but using Sensorless homing fails. If I run GCode M122 I get the following.
Recv: Driver registers:
Recv: X 0x00:00:00:00 Bad response!
Recv: Y 0x00:00:00:00 Bad response!
Recv: Z 0x00:00:00:00 Bad response!
Recv: E 0x00:00:00:00 Bad response!
Recv:
Recv:
Recv: Testing X connection. Error: All LOW
Recv: Testing Y connection. Error: All LOW
Recv: Testing Z connection. Error: All LOW
Recv: Testing E connection. Error: All LOW
I’ve made sure I update the Thinker Rambo config to have setting for Serial and I’m not sure what else to try, help please.
If anyone want to take a look at the config files, they can use my repository here for bugfx 2.0.X
https://github.com/dapostol73/Marlin/tree/bugfix-2.0.x
Re: Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
Post by dapostol73 » Tue Mar 30, 2021 6:29 am
Update: This the expected behavior for TMC2209 with Thinker V2 as outline in this document on GitHub for future reference.
Re: Marlin 2.0.x bugfix with TMC2209 — TMC Connection Error.
Post by William » Tue Mar 30, 2021 10:09 am
Источник
Проблема «Сбой связи с TMC», плата SKR 1.3 с TMC2209 v 1.2
Приветствую коллеги) Помогите пожалуйста, ставлю новую плату BTT SKR 1.3 с драйверами от BTT TMC2209 v1.2, возникает проблема — не двигается ось Y. Подробнее:
1. Провод мотора и сам мотор Y работают исправно — когда его подключаешь к драйверу X, все движется как нужно.
2. Драйвер заранее исправный: когда меняешь драйвера на разных осях местами, не работает только Y.
3. На экране выводится ошибка: «Сбой связи с TMC»
4. Проблема не в сработке концевика, он работает исправно.
5. Нюансик: когда принтер выключен, я двигаю ось X, мотор вырабатывает электричество, которое переходит на плату и на ней загораются светодиоды. Но когда двигаю ось Y, электричество на моторе появляется, но на плате светодиоды не загораются. То есть наверное дело не в прошивке, ведь электричество не проходит на плату через драйвер даже когда она выключена.
Я не спец, вот как я это вижу: проблема кроется в плате, на которой сгорел какой-нибудь кондерчик, из-за чего она не может послать сигналы на драйвер. Но как это проверить и починить?
Прилагаю фотки платы:tmc connection error
Источник
RAMPS 1.4 MArlin 2.0.9.2 + BTT TMC2208 UART — TMC Connection Error
I have a Ramps 1.4 board that I am trying to use with BigTreeTech’s TMC2208 (v3.0) in UART mode with Marlin 2.0.9.2. I was able to get the motors moving correctly with A4988s, as well as TMC2208s in standalone mode.
I then attempted to connect the driver to the Ramps board via UART using the method described in the following instructable, however I consistently get a «TMC Connection Error». M122 confirms that the pins are all low (see below readout) — Please note that I have reverted the x-axis to standalone mode. The extruder driver in the left of the frame has ‘extensions on the pins as as attempt to bypass the UART pin on the bottom side of the board. My Y-cables measure properly as far as I can tell, both in terms of continuity and resistance.
[www.instructables.com]
M122 readout:
I am using pin 4 (from the enable pin) on the TMC2208 as the UART pin, based on BTT’s schematic, and the jumper that was soldered. Please see attached picture of the connection at the Ramps Aux serial pins. The yellow cables are the Tx pins with the 1K resistor.
I may have connected the board to 5V via USB first before 12V, which I read could possible ‘damage’ the driver, but the drivers still work in standalone mode. [learn.watterott.com]
I have attached my config and configuration_adv files. I am using the default pins from pins_RAMPS.h
Thanks in advance. Please let me know if additional information is required.
Attachments:
open | download —
Configuration.h
(113.2 KB)
open | download —
Configuration_adv.h
(166.9 KB)
open | download —
IMG_20211220_072605918_1067.jpg
(91.7 KB)
open | download —
M122 Readout_20211220_2200.txt
(952 bytes)
Bad picture.. cannot see anything
You need 12v first for TMC’s to work correctly.
One thing to check is some particularly nasty ramps come with pcb traces under the micro stepping pins, so even if you remove the jumpers they are still connected.
Check they are really disconnected with a multimeter.
Edited 1 time(s). Last edit at 12/21/2021 09:13PM by Dust.
Quote
Dust
Bad picture.. cannot see anything
Apologies, I thought that the Rx and Tx pin connections on the Ramps were a likely source of error, as opposed to the rest of the board.
Quote
Dust
One thing to check is some particularly nasty ramps come pcb traces under the micro stepping pins, so even if you remove the jumpers they are still connected.
Check they are really disconnected with a multimeter.
I checked the continuity on the microstep/jumper pins, and they are all connected to their adjacent pin even without the jumper installed. I never would have thought to check that, but I see that the wiki does have a line specifically addressing this issue. Will these permanent connections damage the drivers if I try to use UART?
I have another board that does not have any continuity between the jumper pins — I will try that board (with 12 V) and advise.
Thanks
I don’t know if that would damage the stepper driver or not.
Update: I swapped out the RAMPS board with the permanent continuity across the jumper pins, and instead used a RAMPS board with properly isolated jumper/micro-step pins (but without any jumpers). UART appears to work for all axes (no issues according to M122), and the movement appears to be OK (only X-axis was tested).
The drivers seem to be undamaged by the ‘permanent jumpers’ from the previous board, so the only apparent side effect of the jumpers seems to be a lack of UART capability.
Thank you Dust! I never would have thought to check the continuity of the jumper pins. I should be able to get my printer back up and running by this weekend. Hopefully this helps someone else in the future.
Cheers.
I have BTT SKR V1.4 & TMC2208
Here is M122 readout. Please help.
Connecting…
Printer is now online.
>>> M122
SENDING:M122
X Y Z Z2 E
Address 0 0 0 0 0
Enabled false false false false false
Set current 650 800 650 650 800
RMS current 1160 1436 1160 1160 1436
MAX current 1636 2025 1636 1636 2025
Run current 20/31 25/31 20/31 20/31 25/31
Hold current 10/31 12/31 10/31 10/31 12/31
CS actual 0/31 0/31 0/31 0/31 0/31
PWM scale
vsense 0=.325 0=.325 0=.325 0=.325 0=.325
stealthChop false false false false false
msteps 256 256 256 256 256
interp false false false false false
tstep 0 0 0 0 0
PWM thresh.
[mm/s]
OT prewarn false false false false false
triggered
OTP false false false false false
pwm scale sum 0 0 0 0 0
pwm scale auto 0 0 0 0 0
pwm offset auto 0 0 0 0 0
pwm grad auto 0 0 0 0 0
off time 0 0 0 0 0
blank time 16 16 16 16 16
hysteresis
-end -3 -3 -3 -3 -3
-start 1 1 1 1 1
Stallguard thrs 0 0 0 0 0
uStep count 0 0 0 0 0
DRVSTATUS X Y Z Z2 E
sg_result 0 0 0 0 0
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!
Z2 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 Z2 connection… Error: All LOW
Testing E connection… Error: All LOW
//action:notification TMC CONNECTION ERROR
ok P15 B3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
I was getting the same issue/error code, but for my Y2 axis:
TMC2208 or TMC2209 on Y2 requires Y2_HARDWARE_SERIAL or Y2_SERIAL_(RX|TX)_PIN
I’m running Marlin 2.0, on an MKS Gen L V2.1 with TMC2209 (BigTreeTech v1.2) drivers. I have X, Y, Y2 (Running on E1 driver) and E0 for a custom scientific instrument (that is not a 3D printer, but it uses the same firmware and G-Code to move about so it is all the same). I initially tried to get this all going on the MKS Gen L V1, however, it only has UART for 4 Drivers (see the video by Teaching Tech). You can not get 5 drivers controlled by UART moving on this V1.0 board. For this reason, I moved over to the MKS Gen L V2.1. If this V1 board is all you have, I guess you could leave one driver as an A4988 or DRV8825 and accept the loss of the upgrade to the TMC2209 for one axis. This was the firmware that won’t ask for Serial Pins, which is where most of this issue comes from.
SOLUTION:
The above solution by ‘Jiří Maier’ mostly fixed my problem. There are a few things to note and modify though:
In configuration.h
, #define EXTRUDERS 1
defines the number of extruders. This is important here I think (I’m 85% on this). This value will push the ‘extruder’ down onto the next available stepper driver, which will be E0. Therefore I moved my Y2 driver to E1 as E0 was ‘occupied’ by the extruder.
In configuration.h
, make sure the DRIVER_TYPE
axes are all set correctly to the number of drivers you actually have. For example, I am using a driver for X, Y, Z, Y2, and an extra one E0 (for pumping liquids), so 5 total. Here, Y2 will replace the E1 driver, so E1 is commented out. Therefore, all used drivers have the TMC2209 commented in here. Everything else should be commented out.
After this then you can assign the pins as mentioned by Jiří Maier.
In the pins_MKS_GEN_L_V21
file I changed all starts of the code for E1_SERIAL_TX_PIN
to Y2_SERIAL_TX_PIN
, like below:
#ifndef Y2_SERIAL_TX_PIN
#define Y2_SERIAL_TX_PIN 20
#endif
#ifndef Y2_SERIAL_RX_PIN
#define Y2_SERIAL_RX_PIN 12
#endif
Similarly, in the pins_RAMPS
file I changed the E1_STEP_PIN
to Y2_STEP_PIN
and so on, see the image below.
#define Y2_STEP_PIN 36
#define Y2_DIR_PIN 34
#define Y2_ENABLE_PIN 30
#ifndef Y2_CS_PIN
#define Y2_CS_PIN 44
Did you test the latest bugfix-2.1.x
code?
Yes, and the problem still exists.
Bug Description
When building with the default values in stm32h7.ini for platform and platform-packages, the resulting build has UART issues with at least TMC2208, TMC2209 and EZ2209 stepper drivers. Updating to use more current platform and platform-packages resolve those issues.
This was a day one issue for me regardless of the version of Marlin I was building (2.0.x and 2.1.x). Hardware tested was a BTT SKR 3 EZ with EZ2209 as well as TMC2208 v3.0 stepper sticks on an Ender 3 Max (not that it matters).
After doing testing, everything is operating as expected and the MCU is no longer reporting TMC connection errors.
There is very likely a better way to do this, but my successful build that resolved the TMC CONNECTION ERRORS was using the values in STM32h7.ini show below.
...
#
# BigTreeTech SKR V3.0 / V3.0 EZ (STM32H743VIT6 ARM Cortex-M7)
#
[env:STM32H743Vx_btt]
extends = stm32_variant
#platform = ststm32@~14.1.0
platform = ststm32@~15.4.1
#platform_packages = framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/main.zip
platform_packages = framework-arduinoststm32@~4.20200.220530
board = marlin_STM32H743Vx
board_build.offset = 0x20000
board_upload.offset_address = 0x08020000
build_flags = ${stm32_variant.build_flags}
-DPIN_SERIAL1_RX=PA_10 -DPIN_SERIAL1_TX=PA_9
-DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
-DPIN_SERIAL4_RX=PA_1 -DPIN_SERIAL4_TX=PA_0
-DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
-DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
-DSTEP_TIMER_IRQ_PRIO=0
-DD_CACHE_DISABLED
upload_protocol = cmsis-dap
debug_tool = cmsis-dap
Bug Timeline
This has happened from every build I have attempted to compile for this board.
Expected behavior
Firmware would build and operate normally with error free UART communications to the stepper drivers.
Actual behavior
Before making the changes, the MCU would report TMC CONNECTION ERROR message to the display, and M122 command would show ALL LOW errors that would jump around from stepper to stepper. Stepper drivers with errors were also not properly configures as expected for a stepper driver the MCU is not reliably able to communicate with. Output from M122 command is shown below:
M122
X Y Z Z2 E
Address 0 0 0 0 0
Enabled true false false false false
Set current 560 560 560 560 600
RMS current 994 550 550 994 581
MAX current 1402 776 776 1402 819
Run current 17/31 17/31 17/31 17/31 18/31
Hold current 8/31 8/31 8/31 8/31 9/31
CS actual 0/31 8/31 8/31 0/31 9/31
PWM scale
vsense 0=.325 1=.18 1=.18 0=.325 1=.18
stealthChop false true true false true
msteps 256 16 16 256 16
interp false true true false true
tstep 0 max max 0 max
PWM thresh.
[mm/s]
OT prewarn false false false false false
triggered
OTP false false false false false
pwm scale sum 0 10 10 0 11
pwm scale auto 0 0 0 0 0
pwm offset auto 0 36 0 0 36
pwm grad auto 0 14 14 0 14
off time 0 4 4 0 4
blank time 24 24 24 16 24
hysteresis
-end -3 2 2 -3 2
-start 1 1 1 1 1
Stallguard thrs 0 0 0 0 0
uStep count 0 40 40 0 40
DRVSTATUS X Y Z Z2 E
sg_result 0 0 0 0 0
stst * * *
olb
ola
s2gb
s2ga
otpw
ot
157C
150C
143C
120C
s2vsa
s2vsb
Driver registers:
X 0x00:00:00:00 Bad response!
Y 0xC0:08:00:00
Z 0xC0:08:00:00
Z2 0x00:00:00:00 Bad response!
E 0xC0:09:00:00
Testing X connection... Error: All LOW
Testing Y connection... OK
Testing Z connection... OK
Testing Z2 connection... Error: All LOW
Testing E connection... OK
ok
M122
X Y Z Z2 E
Address 0 0 0 0 0
Enabled false false false false false
Set current 560 560 560 560 600
RMS current 994 550 550 994 581
MAX current 1402 776 776 1402 819
Run current 17/31 17/31 17/31 17/31 18/31
Hold current 8/31 8/31 8/31 8/31 9/31
CS actual 0/31 8/31 8/31 0/31 9/31
PWM scale
vsense 0=.325 1=.18 1=.18 0=.325 1=.18
stealthChop false true true false true
msteps 16 16 16 256 16
interp false true true false true
tstep 0 max 0 0 max
PWM thresh.
[mm/s]
OT prewarn false false false false false
triggered
OTP false false false false false
pwm scale sum 0 10 10 0 11
pwm scale auto 0 0 0 0 0
pwm offset auto 36 36 36 0 36
pwm grad auto 0 14 14 0 14
off time 0 4 4 0 4
blank time 16 24 24 16 24
hysteresis
-end -3 2 2 -3 2
-start 1 1 1 1 1
Stallguard thrs 0 0 0 0 0
uStep count 0 40 40 0 40
DRVSTATUS X Y Z Z2 E
sg_result 0 0 0 0 0
stst * *
olb
ola
s2gb
s2ga
otpw
ot
157C
150C
143C
120C
s2vsa
s2vsb
Driver registers:
X 0x00:00:00:00 Bad response!
Y 0xC0:08:00:00
Z 0xC0:08:00:00
Z2 0x00:00:00:00 Bad response!
E 0xC0:09:00:00
Testing X connection... Error: All LOW
Testing Y connection... OK
Testing Z connection... Error: All LOW
Testing Z2 connection... Error: All LOW
Testing E connection... OK
ok
Steps to Reproduce
- Build Marlin with unmodified stm32h7.ini file
- Define either TMC2208 or TMC2209 *_DRIVER_TYPE in Configuration.h
- Build in VSC/PIO/ABM
- Flash firmware.bin to printer and TMC CONNECTION ERROR is displayed on the LCD with M122 showing ALL LOW and misconfigured drivers.
Version of Marlin Firmware
2.0.x and 2.1.x
Printer model
Ender 3 Max
Electronics
SKR 3 EZ motherboard with EZ2209 or TMC2208 v3.0 BTT stepper drivers
Add-ons
Unlikely to be involved, but the printer is also configured with a CRTouch, TFT35 E3 display, BIGTREETECH ESP8266 WiFi Transceiver Module (ESP12S),
Bed Leveling
UBL Bilinear mesh
Your Slicer
Cura
Host Software
OctoPrint
Don’t forget to include
- A ZIP file containing your
Configuration.h
andConfiguration_adv.h
.
Additional information & file uploads
Enabling or disabling other features had not effect on the UART communication errors with the stepper drivers. I attempted builds that just configured the board, and stepper drivers and it still resulted in issued. The attached configurations enable all the features I wanted and produced errors with the default stm32h7.ini, but the errors were resolved with when I modified the file as noted above.
Configurations:
Configurations.zip
There was also discussion of this issue on BTT github:
bigtreetech/SKR-3#13