High-performance 3-axis stepper motor controller

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024
  • Check out PCBWay's website for rapid prototyping of printed circuit boards, CNC and 3D printing services and many more! pcbway.com/g/m...
    In this video, I show you my new development which is a high-performance 3-axis stepper motor control board. It is high-performance because it uses the super-fast Teensy 4.0 microcontroller and it also uses a modern TMC429 stepper motor ramp generator controller together with three TMC2209 stepper motor drivers. The board can be controlled via buttons and a joystick, and I also programmed it to be fully controllable by sending commands and parameters via the serial terminal.
    TMC2209 library: github.com/jan...
    TMC429 library: github.com/jan...
    Support me on Patreon:
    / curiousscientist
    Check my article for more info:
    curiousscienti...
    Check my PCBWay project page for the PCB:
    www.pcbway.com...
    Check my website for the relevant parts:
    curiousscienti...

Комментарии • 40

  • @baxbanni2226
    @baxbanni2226 6 месяцев назад +3

    Very nice, so accurate and well-engineered. I feel your passion for what you do. 👍👍

    • @CuriousScientist
      @CuriousScientist  6 месяцев назад

      Thank you! Yes, I absolutely love these projects!

  • @temyraverdana6421
    @temyraverdana6421 6 месяцев назад +2

    Wow, a great work! Thanks a lot for share

  • @pgabrieli
    @pgabrieli 7 месяцев назад +2

    very interesting, thanks for continuing to post such interesting projects! about moving the resistor on the aliexpress driver board, I have a question: you could have designed your board to use those without having to move the resistor, correct? is that because you realized that difference after you had designed it? or is that because it was important for you to be able to use the original TMC board and the cheaper one interchangeably? thank you very much and looking forward to the next installment of the series! 🙂

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад +1

      Thanks! The reason is that the original TMC2209 can not have the uart pin on pin 13 where the Aliexpress module has it originally. The original module can only have it on pin 11 or 12, dependingon how I short the solder tab. So, as a compromise, I designed the board this way. The board is not only made for myself but also for a customer who wanted to use the original TMC2209 board. On the other hand, I wanted to use it with the cheaper Aliexpress module.

    • @pgabrieli
      @pgabrieli 7 месяцев назад

      @@CuriousScientist makes perfect sense, thank you very much for explaining! great job, keep 'em coming!! 👍

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Thanks, I will try my best!

  • @ferencszabo3504
    @ferencszabo3504 6 месяцев назад +1

    Klassz, lehet hogy megépitem csak a tensy elég drága nekem😮

    • @CuriousScientist
      @CuriousScientist  6 месяцев назад

      Köszönöm! Akkor van egy rossz hírem, mert a TMC429 se olcsó.

  • @MCurian
    @MCurian 7 месяцев назад +1

    ❤ Wonderful, sir it worked perfect. It should find place with circuitry of 3d printer, I suppose ?? Myself being alien to the world of pcb design

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад +1

      Thanks! Yeah, actually it could control the three axes of a 3d printer. But its main task will be something different. If everything goes well, you will see the project towards the end of next week. Stay tuned! 😉

  • @codybetsill4820
    @codybetsill4820 6 месяцев назад +1

    This is awesome! Any plans on integrating a display?

    • @CuriousScientist
      @CuriousScientist  6 месяцев назад

      If you check the video, there's a specific mention of the i2c connection I specifically made for that purpose. 😎

    • @codybetsill4820
      @codybetsill4820 6 месяцев назад

      I didn't catch that part but I'll rewatch it for sure! Thanks

    • @CuriousScientist
      @CuriousScientist  6 месяцев назад +1

      No worries! Maybe in a future iteration, I will put a display in the system. I put the circuit in a large enough enclosure to accommodate a display. Check my Instagram, I just recently shared a post about it.

    • @codybetsill4820
      @codybetsill4820 6 месяцев назад

      I just checked out your Instagram post and it looks good! Also if I was to add the i2c display, would I need to edit the code? Sorry about all the questions

    • @CuriousScientist
      @CuriousScientist  6 месяцев назад

      Hi! Yes, of course, if you want to display something, you need to implement code for it.

  • @wolpumba4099
    @wolpumba4099 7 месяцев назад +1

    *ELI5 Abstract*
    *What's the Project About?*
    I'm building a special control board! It's like a brain that helps
    move robot parts. Imagine a robot with three arms that can move up and
    down, side to side, and even twist. My control board is what makes
    those arms move smoothly.
    *How Does it Work?*
    * *Tiny Brain:* The board has a tiny, super-smart computer chip as its
    brain.
    * *Switches and a Joystick:* I can control it with special switches or
    a joystick, like in a video game!
    * *Colorful Light:* There's even a light that changes color to tell me
    what the board is doing.
    * *Fixing Mistakes:* I made a tiny mistake in the board's design, but
    don't worry, I'll fix it!
    * *Secret Project:* This cool board is actually just a part of a much
    bigger, secret project I'm working on. Stay tuned!
    *Abstract*
    This project focuses on the design and development of a
    high-performance, custom PCB for controlling 3-axis stepper motors
    with precision. The core of the design is the TMC429 microcontroller,
    which handles step and direction signals, offloading tasks from the
    main microcontroller. The board, designed for manufacturing through
    PCBWay, includes several other key components:
    * *TMC2209 Stepper Motor Drivers:* These drivers (both original and
    modified AliExpress versions can be used) control the X, Y, and Z
    axes.
    * *Step-Down Power Converter:* This module efficiently provides the
    required 3.3V power supply.
    * *Input and Feedback:* The design incorporates buttons, a joystick,
    and an RGB status LED for various control modes and visual
    feedback. I2C headers and limit switches provide further expansion
    options.
    The project encountered some challenges, including a minor PCB design
    error (to be fixed in the next iteration) and the need to modify the
    AliExpress stepper motor drivers. Despite this, the demonstrated
    functionality shows that the board successfully enables joystick or
    button-based control over the stepper motors.
    While the code is complex and not covered in detail in these segments,
    future updates will include code explanations, project information,
    and the corrected PCB design. This PCB is the foundation for a larger,
    exciting project that remains under wraps for now.
    *Summary*
    *Introduction*
    * *0:13* - Sponsorship by PCBWay.
    * *0:21* - Project introduction: high-precision, high-performance
    3-axis stepper motor driver.

    • @wolpumba4099
      @wolpumba4099 7 месяцев назад

      (continuation of summary)
      * *0:34* - PCBs will be designed and manufactured with PCBWay.
      * *1:02* - Purpose of the PCB.
      * *1:10* - Plan to build and test one of the PCBs.
      * *1:23* - This project will be covered in multiple videos.
      *PCB Overview*
      * *1:54* - Acknowledges PCBWay's services and capabilities.
      * *2:28* - PCBWay offers PCB manufacturing and assembly services.
      * *2:51* - Core component is the TMC429 microcontroller.
      * *3:32* - Discussion of the TMC429 stepper motor driver (more in
      later videos).
      * *4:00* - TMC429 reduces main microcontroller workload by generating
      step and direction signals.
      * *4:36* - PCB uses three TMC2209 stepper motor drivers for X, Y, and
      Z axes.
      * *4:55* - RGB LED for status indication.
      * *5:26* - DC Barrel Jack for power input.
      * *5:48* - Step-down module (MP2359) for 3.3V power.
      * *6:00* - LED and test points for voltages.
      * *6:33* - I2C header for optional display.
      * *6:50* - PCF8574 I/O expander for button inputs.
      * *7:08** - Buttons/switches for:*
      * *7:18* - Axis selection (X, Y, Z)
      * *7:30* - Modes: Joystick, Button, UART/Serial
      *PCB Assembly*
      * *9:57* - Board has been pre-assembled to save time.
      *Component Descriptions*
      * *10:50* - TMC429 microcontroller: Powerful, fast, with many
      features.
      * *12:24* - TMC429 stepper motor driver module: Handles step/direction
      signals, limit switches, controlled via SPI.
      * *13:53* - PCF8574 I/O expander: Provides additional input pins for
      mode selection.
      *Stepper Motor Drivers*
      * *15:10* - Introduction to the stepper motor drivers used in the
      project.
      * *15:15* - TMC2209 Silent StepStick drivers.
      * *15:29* - Description of tabs (pins) on the TMC2209 for UART
      configuration
      * *15:59* - Importance of correctly configuring the UART pins for
      board compatibility.
      * *16:05* - Discussion of cheaper AliExpress versions of the TMC2209
      driver.
      * *16:16* - Key difference: a resistor is in an incorrect position on
      the AliExpress version.
      * *16:36* - Instructions on how to modify the AliExpress TMC2209 by
      moving the resistor (R7).
      * *18:52* - Demonstration of the modification process.
      * *19:25* - How to desolder and reposition the resistor.
      * *19:55* - The extra pins on the AliExpress version are not used.
      * *20:02* - Both driver types (original and modified AliExpress) will
      now work with the board.
      *Step-Down Power Converter*
      * *20:32* - Discussion of the step-down module.
      * *20:38* - Using a pre-made module is more cost-effective.
      * *20:54* - High-performance step-down converter capable of delivering
      several amps.
      * *21:16* - Selectable voltage, but the goal is a fixed 3.3V supply.
      * *21:28* - Instructions on modifying the module for fixed 3.3V output.
      * *22:09* - Preference to solder the module directly.
      * *22:30* - Demonstration of modifications.
      * *22:49* - Testing the module's output.
      * *23:47* - Using blue tack for positioning before soldering.
      *Three-Way Switch Demonstration*
      * *25:10* - Three-way switches are "on-on-on" type.
      * *25:32* - Switch will select X, Y, Z axis, or input modes (Joystick,
      Button, USB).
      * *25:52* - Explanation of how the three-way switch can short multiple
      pins together for different outputs.
      * *26:31* - Demonstration setup: Switch connected to three LEDs.
      * *26:50* - The input to the switch is through a resistor for safety.
      * *27:20* - Detailed explanation of switch positions with
      corresponding LED outputs.
      * *30:02* - Recap of the demonstration.
      * *30:45* - Promises a diagram and explanation on the website.
      *Assembly and Component Overview*
      * *31:32* - Wiring the on-on-on switches for X, Y, Z axis selection.
      * *31:53* - Introduction of a high-quality joystick component.
      * *32:24* - Reworking the joystick wires.
      * *33:01* - Description of "abort", "backward", and "forward" buttons
      and their wiring.
      * *33:58* - Common cathode RGB status LED with resistors.
      * *34:39* - Limit switches with standard connections.
      * *35:30* - Motor connections and potential polarity adjustments.
      *Troubleshooting and Fixes*
      * *37:29* - Assembly took longer than expected due to small components
      and a discovered error.
      * *37:40* - Error: SDA and SCL pins on the microcontroller were mixed
      up, preventing communication with the I2C devices.
      * *38:10* - Fix: Trace had to be cut and wires re-routed directly to
      the chip.
      * *38:33* - Version 1.1 of the PCB will contain this fix.
      *System Setup*
      * *39:00* - Joystick connection.
      * *39:13* - Three button connections (forward, backward, abort).
      * *39:34* - Two on-on-on switches for mode selection (X/Y/Z and
      Joystick/Button/USB).
      * *39:40* - See previous video for detailed wiring explanation of
      three-way switches.
      * *40:05* - Limit switch attachment for the X-axis.
      * *40:26* - Nema 17 pancake stepper motors used.
      * *40:51* - Status LED programming.
      *Demonstration*
      * *41:14* - Close-up view of the setup.
      * *41:20* - Explanation of the mode selector switch positions and
      functionality.
      * *42:03* - Joystick mode selected for demonstration.
      * *42:41* - Important: Power supply must be connected first.
      * *42:47* - Teensy microcontroller requires USB connection for power,
      even with separate 3.3V supply.
      * *43:48* - USB for future computer control.
      * *44:07* - Explanation of a 90-degree micro USB connector for
      enclosure mounting.
      * *45:40* - Importance of minimizing strain on the Teensy's micro USB
      connector.
      * *45:55* - Power supply plugged in, then USB to activate the board.
      *Introduction and Setup*
      * *46:40* - Power supply connected (12V, 2A).
      * *46:53* - Basic standby power consumption is 290mA.
      * *47:05* - USB connection made, and some default motor movement.
      * *47:17* - Status LED is blue in standby mode.
      *Joystick Mode Demonstration*
      * *47:31* - Mode switch is set to joystick control.
      * *47:45* - Joystick successfully moves X, Y, and Z axes.
      * *47:59* - Status LED turns green when a motor is active.
      * *48:26* - Z-axis movement demonstrated.
      * *48:40* - Joystick controls all three axes simultaneously.
      *Button Mode Demonstration*
      * *48:53* - Status LED blinks to indicate a mode change (button mode).
      * *49:20* - Button mode is active, controlling the X-axis.
      * *49:52* - Forward and backward buttons control X-axis movement, the
      status LED turns green.
      * *50:15* - Status LED blinks again to indicate a mode change, Y-axis
      is selected.
      * *50:51* - Y-axis control with buttons is successful.
      * *51:04* - The Z-axis is selected and controlled.
      * *51:24* - "Abort" button blinks the LED rapidly while held down.
      *Compatibility and Code Notes*
      * *52:03* - A minor error in the PCB design will be corrected.
      * *52:15* - The board is compatible with both the AliExpress TMC2209
      modules and the original TMC2209 stepper motor drivers.
      * *52:36* - Motor pin layouts differ between the driver types.
      * *53:34* - The code is complex (around 2000 lines)
      * *54:11* - Code walkthrough will be in a future video.
      * *54:29* - Pictures, information, and an updated PCB design will be
      shared on the speaker's website.
      *Project Teaser and Closing*
      * *55:01* - This board was designed for a larger, exciting upcoming
      project.
      * *55:14* - Thanks to viewers and encouragement to visit the project
      links in the description.
      I used gemini

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Haha, nice! Did you fire up ChatGPT again? 😄

    • @wolpumba4099
      @wolpumba4099 7 месяцев назад +1

      @@CuriousScientist This time I used Google Gemini.

    • @DanteTheWhite
      @DanteTheWhite 7 месяцев назад +1

      Nice, but it is way too detailed. Needs to be tunned down a bit

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Or maybe I make too long videos and that confuses the AI. 😅

  • @markycholo5502
    @markycholo5502 7 месяцев назад

    Hello! I watched your video about thermoelectric peltier coolers. We have a research about the cooling of cloud chamber, and we've chosen tec's. Now, we do not know the thermal conductivity of TEC1-12703 and TEC1-12704 and I was wondering if you could tell the thermal conductivity. It's hard to find it on the internet.

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Hi! I have videos both on Peltier coolers and also on Peltier cooler-based cloud chambers. But this video is about a stepper motor controller board. I don't see how it is relevant here, but anyway, I don't have any information.

  • @0ADVISOR0
    @0ADVISOR0 7 месяцев назад

    Looks nice, but why not go and make the joystick pins - + s, so that it is safe to polarize it the wrong way around.

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Even if you mess up the polarity and connect the 3.3 V on the signal, all you will see is that the ADC is reading a maximum value. However, if I flip the 3 pin connector according to my design, all you see is a mirrored joystick behavior. I see nothing wrong with that.

  • @noanyobiseniss7462
    @noanyobiseniss7462 7 месяцев назад +1

    Will that micro controller run kiipper?

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      I am not planning to use it with Klipper, however, it could be able to do that. I am developing my own firmware with the help of a few libraries.

    • @noanyobiseniss7462
      @noanyobiseniss7462 7 месяцев назад +1

      @@CuriousScientist With klipper support this would be great, how many other pins are available for addon drivers and controls and I see you already have them broken out. Nice work.

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Well, actually the board is not designed to have more than 3 stepper motor drivers. The reason for it is that the driving of the stepper motor drivers is done by the TMC429 ramp generator which can only drive up to 3 motors. Sure, you could add more motors using the broken out pins, but then the purpose and the beauty of the board would disappear.

    • @noanyobiseniss7462
      @noanyobiseniss7462 7 месяцев назад

      @@CuriousScientist Ahh IC, so an updated ramp generator with more outputs would allow for expandability?

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      @@noanyobiseniss7462 You can add more ramp generators. It is easy to expand that way because the ramp generator uses SPI communication protocol.

  • @andrewmack4830
    @andrewmack4830 6 месяцев назад

    Very interesting video. Thank you

    • @CuriousScientist
      @CuriousScientist  6 месяцев назад

      Thanks! I am glad to hear that you found the project interesting. Stay tuned! A cool application of the board is coming soon.

  • @mumbaiverve2307
    @mumbaiverve2307 7 месяцев назад

    Very nice !! Thanks.

  • @evugar
    @evugar 7 месяцев назад

    Tack, det var mycket givande!

    • @CuriousScientist
      @CuriousScientist  7 месяцев назад

      Hej! Jag är glad att höra det! Det nästa projektet kommer att vara mer spännande.