Building a USB PD Powered Stepper Driver (PD Stepper)

Поделиться
HTML-код
  • Опубликовано: 11 сен 2024
  • PD Stepper is a USB PD Powered Nema 17 stepper driver and controller built using a Silent Trinamic driver and an ESP32-S3 for IoT and other applications.
    Kits are available for pre-order now: thingsbyjosh.c...
    Source files and more info available on the project GitHub: github.com/jos...
    PCBWay provided the initial prototype boards order your own here: pcbway.com/g/h...

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

  • @ProjectsbyBrian
    @ProjectsbyBrian 21 день назад +202

    My first thought was "why would you want this?" and then my jaw dropped when you put it on the blinds as a motor. Love this idea, very well implemented.

    • @sonictor
      @sonictor 21 день назад +5

      I went through the same thought process haha!

    • @shaggygangst
      @shaggygangst 19 дней назад +1

      same here ahah

    • @jakeengland1430
      @jakeengland1430 18 дней назад +4

      Oh hey Brian fancy seing you here haha

    • @andreasm8391
      @andreasm8391 17 дней назад

      Same thoughts here too. Got the same geared motor here already and was thinking about a use case. Think I found one. 🙂

    • @artemnikitin2806
      @artemnikitin2806 16 дней назад

      put liion charge controller on the same board with boost to make it wireless.

  • @ellafoxoo
    @ellafoxoo 20 дней назад +102

    I was gonna say it could be improved with closed loop control. But it looks like you're one step ahead (pun intended). Amazing work

    • @jeevanarya2951
      @jeevanarya2951 19 дней назад +2

      That pun is fire

    • @ray-charc3131
      @ray-charc3131 19 дней назад

      he sticked a magnet at the end of motor shaft, what is the use of it?

    • @damani662
      @damani662 18 дней назад

      ​@@ray-charc3131He using magnetic encoder ic to know motor postion

    • @JJSnel-uh3by
      @JJSnel-uh3by 18 дней назад +2

      @@ray-charc3131 He is using a magnetometer or hall effect sensor to measure the magnetic field. With that he is able to check the current rotation of the shaft of the motor.

    • @flyingmonkey3822
      @flyingmonkey3822 16 дней назад

      It a diamagnetic encoder
      Hyhpsjiee 6pcs AS5600 Magnetic... www.amazon.com/dp/B0BS1LCSR8?ref=ppx_pop_mob_ap_share

  • @marsgizmo
    @marsgizmo 8 дней назад +4

    Excellent development! I was waiting for something like this for a while! Great work 👏😎

  • @xidameng
    @xidameng 15 дней назад +27

    I really like when I see a good engineer also has a good sense of product and aesthetics 👍

  • @HBDE.official
    @HBDE.official 20 дней назад +47

    This is simply amazing! I want this to be mass produced!
    Imagine a 3D printer without the need of a control board! Just USB and logic to the separate micro controller.
    Motorize anything anywhere easily.
    This invention is pure gold ❤

    • @hexidev
      @hexidev 20 дней назад +11

      Would add too much delay which will ruin a print. Maybe communicating through the usb protocol might work? But not sure

    • @HBDE.official
      @HBDE.official 20 дней назад +2

      @@hexidev The board lacks a realtime clock to work, but sync over network is still feasible I think.
      Couldn't you feed the gcode in pieces (buffered) kind of like video streaming works? The gcode then must have wait markers which makes the ESPs ask before they continue.
      I know this is absolutely not realtime per definition, but with some checks in place I think it could still control the printer

    • @glabifrons
      @glabifrons 20 дней назад +14

      @@hexidev Every printer running Klipper firmware works this way. You can have as many microcontroller boards you want connected to a Raspberry Pi host. Being an ESP-32, this would probably be pretty easy to set up too. The microcontrollers run a real-time OS that's synchronized with the host. The host sends a stream of commands of what to do and when and they all dance together nicely. :) The most common connection method in Klipper is most likely USB, but it can work over many different connections and protocols, with the more advanced systems using CAN-bus.

    • @eatthedead1ify
      @eatthedead1ify 20 дней назад +2

      ​@glabifrons or even a thin client or laptop running a Debian linux. This stuff is so kool!!

    • @Rozbujnik_Rumcajs
      @Rozbujnik_Rumcajs 19 дней назад +5

      You just proposing moving stepper drivers from one neatly designed place to at least five places that are hotter and harder to cool down. And on top of that adding weight to places where every gram matters.

  • @chiparooo
    @chiparooo 20 дней назад +5

    Beautiful design and implementation! Don’t need one right now but will keep it in mind for projects. Thanks for sharing!

  • @AFI4541
    @AFI4541 17 дней назад +4

    Everything hits with this video, unique product, excellent info, and beautiful editing.

  • @SoftQuartz
    @SoftQuartz 16 дней назад +1

    This is INCREDIBLE. the first thing i'm going to do with one is make a watch winder for my dad and this will let me make it so unbelievably compact!

  • @Aldo.flores
    @Aldo.flores 19 дней назад +3

    Incredible job, it has un countless uses for precision tasks

  • @TommyHoughton
    @TommyHoughton 19 дней назад +2

    I love the design, amazing work! I can't wait to see more projects utilize this. Cheers

  • @nikscha
    @nikscha 20 дней назад +7

    Very very very cool project!
    I've worked with those magnetic encoders before, and I might have an improvement for v2:
    I noticed that you mounted the encoder on the underside of the pcb, and that you had to use a spacer to create clearance for it.
    The magnetic encoders work also when placed "the wrong way around".
    So instead, you can mount the encoder on the top of the pcb, make a hole through the pcb and use a longer magnet that reaches through the hole and sits below the encoder.
    You might also consider making a version that allows for a "2 sided shaft", although I'm not sure what the use case could be

    • @ThingsbyJosh
      @ThingsbyJosh  20 дней назад +1

      Thanks for the suggestions, would definitely be a squeeze to fit it on the top side it is pretty crowded as is haha. Also a spacer or something would still be required as you would risk shorting out the tracks/vias mounting it directly onto the motor

    • @nikscha
      @nikscha 20 дней назад +1

      @@ThingsbyJosh Yeah it would be a tight fit indeed.
      In order to get rid of the spacer problem you could use a 4 (or 6) layer pcb with no tracks on the bottom.
      I'm guessing 4 (or 6) layers would still be cheaper than machining a spacer, and you could probably save some additional space on the top of the board.

    • @ThingsbyJosh
      @ThingsbyJosh  19 дней назад

      @@nikscha It is currently a 4 layer board and going to 6 means I would be able to remove tracks from the bottom layer however it also uses PTH vias which could still short out on the metal. Blind vias could solve this or a layer of insulating heat pad or something. Something to think about for the future

    • @nikscha
      @nikscha 19 дней назад

      @@ThingsbyJosh good points.
      I'm really on the fence of buying a board. I like the idea a lot and I want to support you, but I also don't have an application for the board at all. Do you have any smart home related suggestions?

    • @ThingsbyJosh
      @ThingsbyJosh  19 дней назад +1

      ​@@nikscha A few ones people have mentioned are blinds, pet feeder, cupboard door for robot vacuum and a TV lift

  • @GCODETRADING
    @GCODETRADING 2 дня назад +1

    This is a big deal. Really damn cool. Well done!

  • @danrusu2378
    @danrusu2378 6 дней назад

    As Kevin Hearth would say: "DAMN!!". This is some impresive engineering highlighted very nicely with the production quality. Can't wait to have an excuse of a project to order this :)

  • @gabriel3437gfcxg
    @gabriel3437gfcxg 17 дней назад +1

    Sick man love to see where this goes, and hopefully buy a kit at some point

  • @Ruhgtfo
    @Ruhgtfo 5 дней назад

    Times to mass production!!!!! OOOO yeaaah Very nice project. Bravo

  • @mikeydk
    @mikeydk 19 дней назад +1

    Hell yea!!! Ordered one, just to get started, but I will most likely need more later. :) The first project is a curtain, with a twist.... literally

  • @DrTimmay
    @DrTimmay 20 дней назад +5

    Very cool. Next step is to integrate USB 2.0 HS on the same connector ;) What USB PD IC did you end up using? Been toying around with the TPS25751D - integrated FETs are a great space saver.

    • @ThingsbyJosh
      @ThingsbyJosh  20 дней назад

      Full schematic is on the project GitHub if you want to check it out. This is just a PD sink so no switching FETs are required for the PD on this board. The TPS25751 does look nice for a PD though

  • @evilsushi1
    @evilsushi1 17 дней назад +13

    A POE version would be awesome

    • @flyingmonkey3822
      @flyingmonkey3822 16 дней назад +3

      Then get to work😅

    • @electricburning
      @electricburning 11 дней назад

      What’s a POE?

    • @dromerdev
      @dromerdev 11 дней назад

      @@electricburning Power Over Ethernet, its like ethernet with a power cable

    • @electricburning
      @electricburning 11 дней назад

      @@dromerdev Thanks!!! I’d like to see a POE version too

    • @dromerdev
      @dromerdev 11 дней назад

      @@electricburning Welcome :) 🤗

  • @flyingdogsoft
    @flyingdogsoft 17 дней назад

    Amazing and I am waiting for years for such a PCB! I will order two of these. These will be drop-in replacement for my tower clock. I am using a Bigtreetech board (also with absolute encoders) in combination with own firmware and external ESP at the moment. It is very hard to program these. This will be super easy with that solution.

  • @skanderbelhaj2278
    @skanderbelhaj2278 8 дней назад +1

    awesome work

  • @MohammadRezaSiam
    @MohammadRezaSiam 16 дней назад +1

    awesome idea, awesome work. well done.

  • @beachwat
    @beachwat 8 дней назад +1

    You won a subscribe, dope/clean work

  • @cookedaudio
    @cookedaudio 8 дней назад +1

    Beautifully done.

  • @tonywharton5220
    @tonywharton5220 17 дней назад +1

    This is absolutely amazing ✌️

  • @astronautinsubmarine
    @astronautinsubmarine 9 дней назад +1

    Simply beautiful.

  • @user-pk7db2my3i
    @user-pk7db2my3i 11 дней назад

    Thats a beautiful design. Great work.

  • @yashrajshah7766
    @yashrajshah7766 11 дней назад

    This thing is great for astrophotography as you could make your own autofouser bcoz its compact design. This could be a great DIY alternative to the ZWO EAF

  • @BrainSlugs83
    @BrainSlugs83 18 дней назад +2

    Man just think with USB PD, you would only have to run 4 wires to a stepper motor to fully control it... 😅
    Jkjk I had to. This is actually really cool. 👌

  • @TSAlpha2933
    @TSAlpha2933 17 дней назад +1

    omg hello new focus motor controller 😻

  • @Scrogan
    @Scrogan 9 дней назад

    Nice work. Could benefit from a RiscV logo.

  • @mikevegeto1101
    @mikevegeto1101 16 дней назад

    Awesome project. Excited to try it out

  • @leapnlarry
    @leapnlarry 17 дней назад

    I can think of a bunch of uses for this around the rv. Larry

  • @amandahugankiss4110
    @amandahugankiss4110 17 дней назад +1

    this is very clean.
    just lovely.

  • @dummypg6129
    @dummypg6129 15 дней назад +1

    i'd like to see someone build a 3dprinter for this, would be expensive for sure, but imagine having a USB-C power rails only to control the whole thing..
    OR load it with powercells or battery packs and you have stand alone mechanism driven by wireless comms. lol
    sounds like a fun but expensive project.

  • @m_IDEX
    @m_IDEX 18 дней назад

    Amazing. I've wanted something like this for my 3D printer extruder. I just need to add thermistor and heater power.

    • @ThingsbyJosh
      @ThingsbyJosh  18 дней назад +1

      There are solder pads on the back for a thermistor input meant for sensing motor temperature which could be repurposed

    • @m_IDEX
      @m_IDEX 18 дней назад

      @@ThingsbyJosh WOW. perfect! Now i just need to steal a few watts for the heater and i have a perfect 3d printer toolhead control board. Wheat is your USB PD voltage? 24V?

    • @ThingsbyJosh
      @ThingsbyJosh  18 дней назад

      It is software or hardware configurable for either 5V, 9V, 12V, 15V or 20V. There are also some pads underneath where you can directly access it, although I would be careful about drawing too much current running a heater off of it. Technically you can draw upto 100W but I would definitely not want to do this continuously.

  • @m14_gamer12
    @m14_gamer12 20 дней назад +1

    Amazing work keep it up one day i will make it😅

  • @SpecialeW
    @SpecialeW 15 дней назад

    Stunningly beautiful

  • @inoid724
    @inoid724 15 дней назад

    It would be nice if it had two inputs for hall sensor switches or simple microswitches. Nice Project

    • @ThingsbyJosh
      @ThingsbyJosh  14 дней назад +2

      It does! There is a 3 pin AUX connector that has two GPIO's and a GND reference

  • @charloxd7791
    @charloxd7791 19 дней назад +1

    Incroyable! Je cherchais justement une solution pour motoriser un bureau assis debout

  • @Clark-Mills
    @Clark-Mills 13 дней назад

    Very nicely done project (& video!) :) Thanks!

  • @gokhanozdemir8970
    @gokhanozdemir8970 12 дней назад +1

    subscribed right away.

  • @ThingEngineer
    @ThingEngineer 19 дней назад +1

    VERY nice bro!

  • @youngmonk3801
    @youngmonk3801 8 дней назад +1

    USB all the things

  • @joshmdmd
    @joshmdmd 13 дней назад +1

    i dont write things like ima bust but jesus fuck this video goes hard. as soon as i saw the esp32 it was over ong

    • @joshmdmd
      @joshmdmd 13 дней назад +1

      ive been outjoshed homie ICANT

  • @NewedEngine
    @NewedEngine 18 дней назад

    Absolutely love the design quality of the PCB and the componentry :). If you don't mind me asking, where were you able to get such a nice custom foam insert? It looks very professional and I would like to have some custom ones made for a linux business card. Thanks!

    • @ThingsbyJosh
      @ThingsbyJosh  18 дней назад +1

      Thanks! The foam is cut out and engraved using a diode laser on a CNC machine

    • @NewedEngine
      @NewedEngine 18 дней назад +1

      ahh I see, thank you for the info and I wish you great luck on this venture my friend :)

  • @huben_1337
    @huben_1337 6 дней назад

    Very cool i could never. But the soc is a bit overkill, no?

  • @smarzony
    @smarzony 20 дней назад +1

    looks great

  • @NexGen-3D
    @NexGen-3D 6 дней назад

    Awesome work Josh, shame you couldn't cram Zigbee in it, Id be all over these if they supported Zigbee, I made it a point to remove all things Bluetooth and Wifi from my smart home environment.

  • @fogfestival
    @fogfestival 19 дней назад +1

    If this supports ARTNET, it could be a great help for artists

    • @JJSnel-uh3by
      @JJSnel-uh3by 18 дней назад +1

      You can probably code a library for that, I'm asuming the creator wont implement that but I'm sure some tech savvy person can/will create it.

  • @missko1962
    @missko1962 12 дней назад

    A question regarding the application for roller blinds, is the motor completely turned off in the up and down positions or is it energized to be able to hold on? What engine size and gear ratio are you using?

  • @robbief1
    @robbief1 19 дней назад +1

    That’s cool!

  • @AnthonyTaylor
    @AnthonyTaylor 10 дней назад

    Do you have a BOM for pcbway for this project? This is something Id love to get a few made.
    Thanks

  • @missko1962
    @missko1962 20 дней назад +1

    I really like the project! Do you have the 3D files for the wall mount and chain drive used for the roller blind project in the video?

    • @ThingsbyJosh
      @ThingsbyJosh  20 дней назад +2

      I can add them to the GitHub if you would like. However the mount is very specialized to my setup as it is using an existing mounting hole in the wall previously used as a guide for the chain.

    • @missko1962
      @missko1962 20 дней назад

      @@ThingsbyJosh It would be nice to see the chain drive if you can add that.

  • @theardrone2
    @theardrone2 9 дней назад

    I absolutely love this project and have always wanted to build something similar! Is it possible to detect the end stop of blinds using feedback so that the motor stops automatically? For example, if I pull the blinds up and the motor starts stalling, can it detect that and stop, ensuring the blinds go fully up or down with automatic detection?

    • @ThingsbyJosh
      @ThingsbyJosh  8 дней назад +1

      Yes this should be doable using the stall guard feature on the TMC2209 driver

  • @TheHinditempel
    @TheHinditempel 21 день назад +1

    love it!
    U +130BA

  • @sachintharavindu3356
    @sachintharavindu3356 11 дней назад +1

    I hope u sell a lot of these and I hope the price will go down abit 😂

  • @mattmejia6998
    @mattmejia6998 15 дней назад

    When using the ESP32 module, do you have to manually enter bootloader mode to flash new firmware? I am working on a project with the same ESP32-S3 and I want to be able to just plug in the usb and flash without having to manually enter the mode to do so. Super cool project, I am excited to start workign on some of my own!

    • @ThingsbyJosh
      @ThingsbyJosh  15 дней назад

      Do not have to manually put it into bootloader mode every time, just for the first upload. Although I have found with the Arduino IDE when/if you call Serial.begin() can affect its ability to automatically enter bootloader mode.

  • @Dartheomus
    @Dartheomus 17 дней назад

    Are you supplying the board, aluminum offset, and acrylic portions all for $50? All handmade?! Or do you outsource for the preorder units. This seems like way too much time & work for a $50 unit, but damn you did a beautiful job with it!

    • @ThingsbyJosh
      @ThingsbyJosh  17 дней назад +1

      Thanks, for the pre-orders/production certain parts are being outsourced such as the PCB being assembled by a fab house.

  • @veqv
    @veqv 18 дней назад

    That is one sexy project.

  • @galanonim3959
    @galanonim3959 11 дней назад

    Beautiful finish, nice design. What country is this at 2:33 ?

  • @1234LEE-fm8ek
    @1234LEE-fm8ek 13 дней назад

    so cool

  • @ninjalemon_Squash
    @ninjalemon_Squash 18 дней назад +1

    Cozy

  • @mobies341
    @mobies341 19 дней назад

    @Things by Josh
    Is there any reason why this wouldnt be suitable for a modular usb cnc router or printer machine?
    Are the pulses on multiple nema axes safley controlable in syncronisation?

    • @ThingsbyJosh
      @ThingsbyJosh  19 дней назад +1

      Depending on what you use to control each unit you may have slight synchronisation issues between axis. The ESP32-S3 is pretty fast so it may not be noticable not 100% sure without trying

  • @hussaingadli
    @hussaingadli 15 дней назад +1

    Awesome Idea. How to buy one.

  • @aloooox
    @aloooox 16 дней назад +1

    Nice job :) #queenstown

  • @DrZylvon
    @DrZylvon 18 дней назад

    now this is an amazing idea. Could you possibly design a similar solution, be it as some sort of "dongle" for smaller sized nemas? nema8 :D?

    • @ThingsbyJosh
      @ThingsbyJosh  18 дней назад

      This doesn't have to be mounted on the back of a motor if you don't care about position sensing. Could just 3D print a case for it and use it with a Nema 8

  • @MaxR52
    @MaxR52 17 дней назад +1

    Dreaaammmyyyy

  • @misimik
    @misimik 16 дней назад

    Super cool, but too expensive for me.

  • @GremlineQPl
    @GremlineQPl 16 дней назад

    2:39 how does it work when the motor on the right isn't connected?

    • @ThingsbyJosh
      @ThingsbyJosh  16 дней назад +1

      The motor on the right is not being driven, the encoder on the rear is just being used to detect the current position and sent it wirelessly to the other motor

  • @Doyle69
    @Doyle69 20 дней назад

    Amazing

  • @vincentjonathan8381
    @vincentjonathan8381 20 дней назад

    what mill did you use on the video, looks very nice

    • @ThingsbyJosh
      @ThingsbyJosh  20 дней назад

      It's a custom one I designed it myself, probably most similar to the Cindymill

  • @LoganDark4357
    @LoganDark4357 11 дней назад

    this looks like assembling, I think

    • @clonkex
      @clonkex 11 дней назад

      Assembling after designing, yes. That's what building is.

    • @LoganDark4357
      @LoganDark4357 11 дней назад

      @@clonkex sure, I just expected this video to include the design process as well. this title is annoying because it's not even trying for shock value as in clickbait, it straight-up just implies something that is not there

  • @sirtobi9006
    @sirtobi9006 16 дней назад +1

    Which Nema17 do you recommend/are you using? Can‘t decide on one of the many options 🤷🏻‍♂️

  • @georgeherman7846
    @georgeherman7846 17 дней назад

    Queenstown?

  • @kpurintun
    @kpurintun 21 день назад +5

    i accidentally bought 2 :)

  • @genericgarbagegamingchanne9466
    @genericgarbagegamingchanne9466 22 дня назад

    The full and partial kit are the same price, is that intentional?

  • @marinamarinx7655
    @marinamarinx7655 8 дней назад

    Is the app included??

    • @ThingsbyJosh
      @ThingsbyJosh  6 дней назад +1

      It is a webserver running on the PD Stepper so no app needed. And the source code is on GitHub

  • @FusselCNC
    @FusselCNC 8 дней назад

    hmmmm no paypal? :( but awesome project

  • @user-kv2cl5xl5s
    @user-kv2cl5xl5s 18 дней назад

    How can i order this?

  • @MiesvanderLippe
    @MiesvanderLippe 21 день назад +1

    I get why you’re able to afford that view with those skills 😉

  • @Ruhgtfo
    @Ruhgtfo 5 дней назад

    ruclips.net/video/qECEGUZE04s/видео.html Is this magnet?

  • @dablet
    @dablet 14 дней назад

    my project used TMC2208 ruclips.net/video/NSV8zTLBukQ/видео.html can you confirm i can use your TMC2209 without changing any codes? just flash my fw onto your chip and it's ready to deploy? pls confirm. thanks!

  • @themastereal8345
    @themastereal8345 15 дней назад

    Would have enjoyed a explanation instead of music, thanks anyways

  • @maxhouseman3129
    @maxhouseman3129 20 дней назад +1

    I do not really get the use cases for that.
    Stepper motors are made for precise and fast movement in machines. With the integration of USB as a control interface, you loose all benefits of state of the art systems like low latency, realtime capability, high dynamic etc. You proved that in your video with the sensor/actor example. Plus the fact, that most probably the filtering of the drive is not that good why you are coupling a lot of noise on the bus.
    Presentation is nice, but that’s the case for most of the embedded „products“ on RUclips.

    • @ThingsbyJosh
      @ThingsbyJosh  20 дней назад +5

      I'm obviously a bit biased because I designed it but I think there are lots of cases where people want to move something a set amount and this allows for that in one simple board. There are many ways to control this board (WiFi, step/dir, USB, i2c, serial, etc) and for example GRBL which some of the most popular software for stepper motor control uses serial over USB for it's primary input.
      The sensor/actor example was more an example of wireless communication between devices using ESPNow rather than a precise motion control system.
      Also for if you really need super fast and precise movements a servo motor is better than a stepper anyway.

    • @hyacinthtiger62
      @hyacinthtiger62 20 дней назад +1

      ​@@ThingsbyJoshIf you designed it, there must have been a reason. I see a lot of cool applications for this.

    • @orangezeroalpha
      @orangezeroalpha 20 дней назад

      Are there a ton of people needing all you describe with a $10 nema 17 motor? They almost exclusively seem to be used with usb in some way, 3d printers, small cnc machines, laser cutters, etc. Have you designed a similar board that has lower latency or realtime capabilities?

    • @orangezeroalpha
      @orangezeroalpha 20 дней назад +1

      @@ThingsbyJosh Thanks for showing this off. Have you done any type of testing to see what happens with four or six of these boards using espnow and all linked to a master esp32 for control? I haven't even learned how to connect two boards together at this point.

    • @ThingsbyJosh
      @ThingsbyJosh  20 дней назад

      ​@@orangezeroalpha Haven't personally used more than a couple at a time but should be pretty easy to do. ESPNow supports direct pairing upto 20 devices and broadcasting to an "unlimted" number of boards