Closed floco closed 1 year ago
Show a schematic and photo of your controller.
Generally we do not provide support for older revisions of the firmware.
Thanks @bdring for the fast reply. I did try 3.6.8 before with the same results. I thought it would easier to troubleshoot with 3.6.7/with the old syntax as closer to the provided examples. But I can flash 3.6.8 and provide new config/new logs.
In the meantime here is the photo from product page:
mine:
the schematic looks similar if not identical to 3.1 https://wiki.fysetc.com/Silent2209/#v31
Thanks again
You might have TX and RX backwards.
We can't help too much with DIY wiring. We know the firmware works. It is likely your wiring or config.
I know it "works" with the other firmware, but the firmware works for me on many different PCBs with TMC2209.
Thanks again. I tried inverting tx and rx, but then the other code does not work, which tends to indicate the wiring is correct. Must be something with the config like you said. I will try reducing the parameters to what is stricly required to see if I can isolate what's happening. Do I understand correctly that the ESP32 is supposed to receive 0x21 via UART to identify it is a TMC2209 but in my case it's receiving something else? Is there a way to bypass this check to see if it goes further? I also ordered that one, to be able to compare: http://wiki.fluidnc.com/en/hardware/3rd-party/fysetc_e4
You inverted the tx and rx. Did FluidNC work?
nope, same message.
There is no way to bypass the test without hacking the firmware.
Try seeing what the other firmware gets with
driver.version()
ok will check that tomorrow and report back. Thanks and have great evening or day ;-)
well that's interesting:
uint8_t version=driver.version();
Serial.print(F("Version : ")); Serial.println(version);
Gives: Version : 0 I will reach to fysetc and/or the vendor to see what they have to say.
I will otherwise try to change this and see what happens:
Thanks again for your help
Does your alternate firmware report back settings correctly if you change them?
uint16_t msread=driver.microsteps();
Serial.print(F("Read microsteps via UART to test UART receive : ")); Serial.println(msread);
uint8_t version=driver.version();
Serial.print(F("Version : ")); Serial.println(version);
uint32_t coolconf = driver.COOLCONF();
Serial.print("CoolStep Current: "); Serial.println(coolconf, BIN);
uint32_t drvStatus = driver.DRV_STATUS();
Serial.print("DRVSTATUS: "); Serial.println(drvStatus, BIN);
Read microsteps via UART to test UART receive : 256 Version : 0 CoolStep Current: 0 DRVSTATUS: 0
I thought the first one proved the UART was receiving, but I guess 256 is just the default value :-( Looks like this is back to being an HW or wiring issue. I have pin 17/TX connected to RX on the driver and 16/RX connected to TX (which on S2209 3.1 or 4.0 is supposed to be connected to RX via the resistor). But anyway, nothing to do with FluidNC then. Sorry about that Back to the drawing board. Thanks again for your help
Please donate to this project!
Controller Board
esp32 dev kit c v4
Machine Description
Just a diy project to move rods on a linear axis
Input Circuits
Configuration file
Startup Messages
User Interface Software
FluidTerm
What happened?
My driver is not detected with the config file I provided, receiving "TMC driver not detected - expected 0x21 got 0x0". Note I'm using FluidNC 3.7 (where the uart settings is still part of the motor definition). The connections are correct as the driver works fine with another code using uart. Using an esp32 devkit c V4 from AZdelivery, TM2209 driver from fystec v4.0, stepperonline 17HS19-2004S1
It must be a stupid mistake but I can't figure it out.
Any help would be great. Thanks so much and thanks for this awesome software.
Other Information
I tested the circuit (esp32, TM2209 driver from fystec v4.0, stepperonline 17HS19-2004S1) with the below code and working fine.