Basic Information:
Printer Model: DIY
MCU / Printerboard: DIY STM32F407VET based
Host / SBC: RPI 4b
klippy.log
Fill out above information and in all cases attach your klippy.log
file (use zip to compress it, if too big). Pasting your printer.cfg
is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there
Describe your issue:
Hello
Sorry first time posting here but I googled a lot and didn’t find any info on this. So I’m making a custom DIY board, STM32F407VET board with 9x TMC2209 and I would like to know which pins are OK for STEP signals? I’m thinking it needs to be wired to a Timer? What are the limitations?
Also can someone explain to me the UART wiring of the TMC2209. I know the pins are bit-banged so any pin should be ok, but every schematic I see uses two pins of the mcu via a resistor. Is this still needed or can I just put a pull-up resistor?
Thank you
Maybe @mykepredko can help.
Without any offense meant, this kind of question might indicate that you would have a higher success rate with less financial exposure by using an existing board.
Of course, it depends on whether you are just looking for a learning experience or actually need the board.
No offense taken. This is more of a hobby for me than just buying a board.
But it seems I can’t find any info on pin requrements.
Hi @TadyTheFish
The STEP pins do not have to be wired to a timer output - their signals are produced by Klipper (or Marlin or whatever) in coordination with other actions so setting up a timer to send a predetermined set of pulses is not required.
As for the UART pin, you only need one on the MCU. I recommend putting a 10k pull down to keep the TMC2209 in power down mode until it is required. This information is available in the TMC2209 datasheet - why aren’t you looking there?
I agree with @Sineos in questioning your decision to make your own board, going straight to a nine driver board without a clear understanding how the selected driver chip works has a lot of risk. Along with requiring experience in putting down high speed MCUs and providing communications, you need to have a good plan for power distribution, heat dissipation and how you are going to lay down your traces. Chances are, you’re going to need a six layer board.
Personally, I would recommend starting with something like an Octopus or a Manta M8P (which have eight built in drivers) and adding a CAN toolhead driver, like the EBB42, for the final driver. Much less costly with a much higher probability of success and still provide you with a lot of opportunities for learning how a 3D printer controller board works.
Thank you for the information.
As for building my own board I know the chalanges and alot of pit falls.
4 yeas ago I already made a board that handles 7 steppers ant it works great. But I recently changed some hardware on the printer and added functions so I figured ehay not make another board. I’m building this one from scratch because the first one I made in Eagle and I moved to KiCAD since and porting it is not worth it.
On my previous board I was sticking to the pins for stepper stepping from another schematic so I figured now why not ask if this is needed or not. I didn’t really know if klipper uses hardware to generate pulses or is it all handled in software. And for UART i also copied the wiring (RX and TX via resistor) but now I war setkinking why is this needed if only one pin is defined in the config file.
As for board making I have quite alot experience with PCBs. I’m not a pro by far but I like doing sone projects for fun.
For example building this printer was more fun for me than using it. I’m an electronics guy so for me it makes sense. Also I have been using STMs for a long time.
I even made a EtherCAT slave from scratch so I know the deal with ground planes, decoipling capacitors, reset curcuits, impedance matched traces,…
your info hase been a great help thank you again