Thank you! Love your rockets! I am subscribed for quite a long time :) BTW I am planning to build a new TVC rocket with these servos. I think that I can use current position readings from TVC to build an improved flight simulation. It was hard to tune control algorithm without knowing the exact response characteristics of the TVC mount.
great job! I would advise against using an I²C for communication over long distances. I²C is intended to be used on one single PCB and not in a large network. There it might be better to use CAN, RS485 or Ethernet. They are designed to be robust against induced noise.
considering this is essentially remaking dynamixels he should just look into the dynamixel protocol and utilise it. Half duplex serial. Ive implemented using their protocol for my own servos and other systems. its robust.
I learned about this when I was half-way through the process already. But I think it will work at this scale. Calculations shows that I will fit into 400pf line capacitance limitation. Waveform looks scary (I was also dumb and placed SCL and SDA as adjacent wires in the cable, so there is also a quite bad crosstalk). But despite this I had 0 failures so far. I think I2C could be used like this if you take care about noise and line capacitance a little bit, and not going crazy with wires. I would say up to ~1m should be fine. Also STM32 has an improved current sink, so in theory if host controller is STM32 too, it is possible to use pull-ups with much lower values than I2C standard suggests. That will help with waveform and capacitance. But still no resistance to noise is an issue. I am thinking about CAN too, but there is no CAN in STM32G0 so it will bump up the cost but probably it is worth the money, because CAN is amazing (never used it so far). Thanks for the feedback!
Oh, neat. I'd had the idea for running servos off I2C with an added Vcc line for a while, but I never found the time to implement. Didn't even think about using a hall sensor, but that absolutely makes sense. Really happy to see someone put in the effort! Unless you're planning to make this a salable product (which is absolutely an option you should consider), you should share your schematics and sources so we all benefit!
Awesome work! As soon as i saw how hobby servos worked, and saw how much empty space there was inside, i thought this is useless for robots. Im so glad to see your implementation, id love to see more about the driver circuit.
Great job! One idea to reduce complexity of the wheel assembly: If you‘d use motors with axles on both sides, you could mount the magnet and control board on the inside of the wheel.
Yeah, that's a good advice. I really started to appreciate dual-shaft and hollow shaft motors. They gives a lot of options to simplify the design. But one of the goals is to try to keep everything very cheap. These motors are like 1-3$ piece (from Aliexpress), but this limits my choices. Thank you!
I am very impressed with your design skills. Everything about it is top notch. I love the bearing solution. And the controller and... well everything really. Subscribed
An absolutely amazing video. You can tell there's knowledge, skill, and so much thought in all you do. I will watch it again as inspiration in my projects.
Спасибо что делишься. Сам очень потихоньку строю что-то ровероподобное но чуть побольше раза в 4 с утилитарной целью - мониторить "владения" 14 гектар. Успехов!
Great video and nice explanation. I am an engineer myself and know how hard it is to explain difficult design decisions in a simple way. I also like your approach of integration, some smaller things, like adding a plug for disassembly would be great, but this can be easily added in the next iteration. Looking forward to your next video. Maybe you can tell us a bit about your background, like motivation and education in the next one. Subscribed for sure!
Got insights into some extremely useful information. The feedback control loop was amazing! And I would love to see videos on the design and implementation of the bearing. I am currently working on a rover and I will definitely integrate these into it.
This is a great project indeed. As already written by others, it is better to replace I2C by RS485/CAN or another more industrial type of interface. For small projects I2C may be okay, but I think something like a serial interface as used by Dynamixel (where it is easy to swap between TTL and RS485) would be better. For more generic use, the protocol should add for programming the (PID) parameters, allow for absolute positioning or speed control, current feedback (to get an idea of the load of the motor) and more. Making this open source will allow the community to make this an even more versatile project than it already is. Oh - and add connectors. Connectors are a must have for easy maintenance.
This is so cool! You created a mini brushless motor!! There is a big market for this and I would love to get my hands on a few of these boards. As well, as you asked in the video, you should make more videos of this project and all the gears created. GREAT WORK!
Pretty sophisticated for an everyday hobbyist! That is, love the idea, although (for lack of skills and patience) I probably would not aspire to recreate it myself.
I think it will not be quite good for the camera gimbal. It is made for DC motor and there always will be a gearbox and so a backlash. I mean we can do a camera mount, but it will not be very smooth. I have a plan to make a version for the BLDC motor in future. It will (hopefully) be possible to use special direct-drive BLDC and build a real camera gimbal with it.
In my final year of university, I created an equation to smoothly travel from one position to another with a maximum acceleration, constant speed and low jerk. I have a desmos of it if you are interested. It would be really great to have it integrated in a controller like this
That's cool I will be happy to take a look. I used very simple trajectory and never researched this topic before, but if you have a good answer already I will happily use it.
Looks very nice, good work. You should try make a variant for mini brushless motors as well. For small but fast, high accuracy and/or high torque hobby servos/motors. I think that would work very good (and i don't think there are so many other that have made a DIY hobby brushless servo), but is of cause a more complex and challenging project. Maybe use CAN communication. Its developed for car/machine communication and would be suited for this application and use in robots/machines etc. But stay away from RS485, it often dont work as expected. Its ok on longer timescales where a bad signal can be resent like for example in a temperature regulation situation.
Thank you! Yeah, that could be awesome. I will focus on improving brushed DC motor for now, maybe will bring CAN to the next version as it is a good idea. I have researched BLDC motors before and I think the brushed motors should go away at some point if we can make a good and cheap controllers for BLDC. But this is another layer of complexity on top of what I already have, it was too much to bite at once. But I hope I will get to BLDC servos/ESCs at some point :)
Go for it! Starting could be hard. I probably spent a year thinking about the rover, before I started actually doing something. I was scared of the amount of efforts required to finish it (and I still not very close :) ). But when I started I was making progress way faster than I though. And it is also fine to take breaks if you feel burned out. So I would say that if you have an idea and you are passionate about it, just go for it. The faster you start, the faster you will get to something you will be proud of. Good luck!
You could also use RS-485, very noise resistant, but your intended line length is short, so something simpler probably works... Maybe even just added a drive transistor on each end, with lower resistance pull up.
I HATE the current state of consumer motors. Im making a project that requires very small servos right now and the choises are so sad. I just ordered a couple of those mini linear style servos because i have no experience making boards myself. This seems like exactly what i need and would certainly buy some
awesome project, i've been thinking about doing something similar but never got to it. Please do share your experiences with printing bearings, yours look very good!
Great project! If it not too late, change I2C interface to something else. I made this mistake when building my robot and experienced communication breakdown due to electric interference with I2C sensors for wheel position. I2C is good for communication between ICs on PCB but will fail when use on wires. Especially when close to electric motors.😮
I learned it when it was too late. Hope it will be ok, otherwise I will switch to CAN, but it will take significant effort. For now I reduced the problem by using 3 I2C interfaces instead of 1 as I planned. So now it's 5 servos per bus. And two servos works fine. I hope 5 servos will work too. Thanks for the heads-up!
I'm interested in using your servo motor set up for other builds. I think it can be used to create a very cheap, but powerful robot arm that is better than anything on the market. More details please. Awesome work.
Thank you! I will make a next version with some fixes and will make it open-source. I have a passion for making things cheap too :) This is the way for everyone to have a good stuff. Good luck with your project!
Hey, impressive work 1 more subscriber ! I'm needing custom built servos more and more, and your work possibly will save me days of trial and error this summer. Also definitely interested knowing more about your custom ball bearings, and how you got to the right design - hopefully I'm not alone hoping for that vid ^:D
Great idea, great video! Thanks Just a note on PWM to control the standard servos: it is intended to have a period length of 20ms with T_on of 1.0ms for lowest position up to 2.0ms for the other end position. As long as you stay with this period length your description is correct and you can call it PWM. But in fact the period length is not important, only T_on is considered by a servo. So with another period length one can see not T_on/period is the signal, only T_on is used. The term PWM is a bit misleading here.
If you are talking about the board, the next version will be available. The one in the video has issues. And I will make a video about it when it will be ready.
Oh man I'd absolutely love to use these! Are they going to be open hardware and source? This is a seriously cool design, love that layered control loop
I will 100% open-source it since the next version. The current version has some issues. Not very critical but it could be better. And the firmware is quite sketchy right now.
Fricking absolutely. We're stuck with 1980s technology for servos. Wiper potentiometers, weak, slow, brushed motors and open loop (from the point of view of the microcontroller) control schemes. I can buy a 500W brushless drone motor for $10, a 4096 position, continuous, absolute rotary encoder for $5, an ESC for another $5 but no one anywhere has put these together into a robotics servo that uses I2C or SPI? No. I have to buy a $1000 NEMA whatever AC servomotor and a $2000 controller that runs over RS232 with a proprietary connector and proprietary software that only runs on ****ing Windows NT. This needs to change.
This is so true! That hurts me too. We have so much cheap and great parts but proper BLDC servos are so expensive. I will go for BLDC servo as soon as I complete the brushed servo first. That will be exciting! It is time for brushed motors to go away.
@@Positive_Altitude Standard servos, even the fast ones are also just way, way too unresponsive. I see people using them in guided rocketry and all they get is oscillation. You can get servos that do 60 degrees in 100ms, but most of that is spinning up and spinning down the motor, so it definitely won't do 30 degrees in 50ms or 15 degrees in 25ms. That includes AC servomotors too. They might be fast when they get going, but they're slow to get there. If you get the data, it would be nice to see an RPM vs time curve when you give your controller a move command. I know your rover doesn't really require high speed position changes but it would be nice to see anyway.
Lol. I have made one of these rockets, check the first video on the channel. And that damn delay... I greatly underestimated how badly 40-50ms delay could affect control algorithm stability. That was the reason why I failed my first launch attempts. And what is the most annoying -- there is no position feedback, so it is not possible to measure step response and use it for control system tuning. I ended up just roughly modeling it in the simulation. As the result rocket flies, but with some oscillations that are not present in simulation. It is totally possible to implement a way to capture step response of my servo, it also will greatly help to tune the servo for high performance, but I haven't implemented it yet. But I can say for sure that 400kHz I2C has almost zero communication delay compared to 50Hz PWM :D
Yeah, I decided to not dive too deep into this. But in fact everything is very simple. Position control is just P regulator. Velocity control is PI (well, almost: I term is applied to velocity delta, P term to current velocity, not to the delta). Current control is just PI. So it is like 3 simplified PID regulators chained. And it is not my invention, google for "PIV regulator" that's exactly what I implemented. Maybe I will make a video about it, but not sure if it will be soon.
Thank you! It works like a charm. It is even possible to setup debug in VSCode. There is a project stm32-rs and there is support for all series of STM32. I am very happy with that.
Thank you! Design files for the board will be available when I make the next version. The current one has some minor issues to fix. The rover is still in progress, the "body" is not designed yet. I will share the design files when I will finish.
I love your work, are you planing to make it open source or share/sell files like schematic, layout, gerbers or code? I would really like to recreate it.
Yes, I am going to keep all designs/software from this channel open-source. But right now the board has some minor issues. I will make an updated version and make it available.
I'm very interested in the servo control board! I'm working on walking robots. Off the shelf servos are disappointing and get expensive quick when you use a dozen in one robot. Using N20 motors at each joint could be a big improvement.
Yeah! That's sounds cool! How big is the robot? I am working on the next version of the servo. The version in the video has some issues. I will share design files when it will be ready.
@@Positive_Altitude thanks for the reply. I dabbled with Eagle a long time ago, then played around with Kicad a little and now am looking at EasyEDA. I think if a project comes along where I need a PCB it will be either Kicad or EasyEDA.
Thank you! Not shared on GH yet, because there are issues and no documentation at all. Maybe I will do that during the next few weeks. But anyway I am working on a new, improved version, that will be shared from the very beginning. I hope I will get there in 1-2 months.
Though about it. But I decided that it is too many wires. The sensor requires at least 5 wires that will be very annoying to route. So, instead I tried to make this board very small. It is only 20*20 mm
The great thing about hobby servos is their simplicity and very low cost. Lots of people use them for this reason where they are not really appropriate, like wheel drives and cnc type machines. Makes for cheap toys. You are making a real robot, not a toy. My question is how precise are the magnet position sensors? The hobby servos I've used (cheap ones) have pretty poor precision potentiometers and high backlash gears.
This encoder is 12-bit , so LSB is about 0.1 deg. But there is also a "non-linearity error" that could be somewhere around 1 deg. This error also greatly depends on proper axis alignment. But the good thing is that it is not like noise, it is consistent, the error is is repeatable for every position. So in theory we can assemble the system, then use another encoder or stepper motor as a source of precise angles, collect statistics and offset non-linearity in the software. But I did not do that, for my applications it is good enough.
Wondering if is worth to integrate everything into the wheel and add a slip ring for power and LED and receiver for signal transmission for continuous rotation like a LiDAR
Both your rover and your custom servos are extremely cool projects
Thank you! Love your rockets! I am subscribed for quite a long time :) BTW I am planning to build a new TVC rocket with these servos. I think that I can use current position readings from TVC to build an improved flight simulation. It was hard to tune control algorithm without knowing the exact response characteristics of the TVC mount.
we caught you here!!!!
@@Positive_Altitudecould you provide PCB design of servo controller?
Well done! I've been frustrated by the limitations of standard servos, too. This is a great solution.
great job! I would advise against using an I²C for communication over long distances. I²C is intended to be used on one single PCB and not in a large network. There it might be better to use CAN, RS485 or Ethernet. They are designed to be robust against induced noise.
considering this is essentially remaking dynamixels he should just look into the dynamixel protocol and utilise it. Half duplex serial. Ive implemented using their protocol for my own servos and other systems. its robust.
I have seen some I2C hubs for robots that allow increased signal drive and auto addressing.
I learned about this when I was half-way through the process already. But I think it will work at this scale. Calculations shows that I will fit into 400pf line capacitance limitation. Waveform looks scary (I was also dumb and placed SCL and SDA as adjacent wires in the cable, so there is also a quite bad crosstalk). But despite this I had 0 failures so far. I think I2C could be used like this if you take care about noise and line capacitance a little bit, and not going crazy with wires. I would say up to ~1m should be fine. Also STM32 has an improved current sink, so in theory if host controller is STM32 too, it is possible to use pull-ups with much lower values than I2C standard suggests. That will help with waveform and capacitance. But still no resistance to noise is an issue. I am thinking about CAN too, but there is no CAN in STM32G0 so it will bump up the cost but probably it is worth the money, because CAN is amazing (never used it so far). Thanks for the feedback!
I love can too, but i dont think any small Stm32s have it :(. Major gap. Iirc mmoat small PICs have it.
There is STM32F042 with CAN, very small and DIY solderable.
Oh, neat. I'd had the idea for running servos off I2C with an added Vcc line for a while, but I never found the time to implement. Didn't even think about using a hall sensor, but that absolutely makes sense. Really happy to see someone put in the effort!
Unless you're planning to make this a salable product (which is absolutely an option you should consider), you should share your schematics and sources so we all benefit!
I am thinking about both sharing design files for free and selling these boards in future :)
Your ball bearing design seems to use the strength of 3d printing to its advantage. Would love to see it's design in depth
This is one of the best explained videos I've seen on here. I hope your channel grows as it deserves to.
Thank you! That boosts my motivation to go forward :) Hope you are having a great day
100%
Awesome work! As soon as i saw how hobby servos worked, and saw how much empty space there was inside, i thought this is useless for robots. Im so glad to see your implementation, id love to see more about the driver circuit.
yeah would love to know more about those bearing races, great project thanks for sharing
Great job! One idea to reduce complexity of the wheel assembly: If you‘d use motors with axles on both sides, you could mount the magnet and control board on the inside of the wheel.
Yeah, that's a good advice. I really started to appreciate dual-shaft and hollow shaft motors. They gives a lot of options to simplify the design. But one of the goals is to try to keep everything very cheap. These motors are like 1-3$ piece (from Aliexpress), but this limits my choices. Thank you!
that bearing design with the 3d printed races is very cool. The new servo control scheme is awesome as well obviously. Well done!
I am very impressed with your design skills. Everything about it is top notch. I love the bearing solution. And the controller and... well everything really. Subscribed
An absolutely amazing video. You can tell there's knowledge, skill, and so much thought in all you do. I will watch it again as inspiration in my projects.
Well done ... very interesting.... I liked the idea of attaching magnet to motor axis to detect rotation orientation.
Спасибо что делишься. Сам очень потихоньку строю что-то ровероподобное но чуть побольше раза в 4 с утилитарной целью - мониторить "владения" 14 гектар. Успехов!
I appreciate the need for this as a designer with engineering dreams. I have tried a few times to tackle the complexity myself. This is helpful
Great video and nice explanation. I am an engineer myself and know how hard it is to explain difficult design decisions in a simple way.
I also like your approach of integration, some smaller things, like adding a plug for disassembly would be great, but this can be easily added in the next iteration.
Looking forward to your next video. Maybe you can tell us a bit about your background, like motivation and education in the next one.
Subscribed for sure!
Thank you :)
Got insights into some extremely useful information. The feedback control loop was amazing! And I would love to see videos on the design and implementation of the bearing. I am currently working on a rover and I will definitely integrate these into it.
I am just beginning servo motors this video is excellent TY!
i would very much like to see a video on those printable bearing systems. That looks very cool and very useful.
Very well explained and nice engineering! I'd also be very interested in hearing more about your bearing design.
This is a great project indeed. As already written by others, it is better to replace I2C by RS485/CAN or another more industrial type of interface. For small projects I2C may be okay, but I think something like a serial interface as used by Dynamixel (where it is easy to swap between TTL and RS485) would be better. For more generic use, the protocol should add for programming the (PID) parameters, allow for absolute positioning or speed control, current feedback (to get an idea of the load of the motor) and more.
Making this open source will allow the community to make this an even more versatile project than it already is.
Oh - and add connectors. Connectors are a must have for easy maintenance.
This is so cool! You created a mini brushless motor!! There is a big market for this and I would love to get my hands on a few of these boards. As well, as you asked in the video, you should make more videos of this project and all the gears created. GREAT WORK!
I would love to see these schematics for that control board. This servo module looks really useful and pretty cheap
Excellent project, great job on the design and two thumbs up on your video presentation skills!
Pretty sophisticated for an everyday hobbyist! That is, love the idea, although (for lack of skills and patience) I probably would not aspire to recreate it myself.
very cool,
please do share your experience making those bearings!
a fantastic job - I look forward to seeing your future work.
My god you have made a perfect DIY pan&tilt camera gimbal.
I think it will not be quite good for the camera gimbal. It is made for DC motor and there always will be a gearbox and so a backlash. I mean we can do a camera mount, but it will not be very smooth. I have a plan to make a version for the BLDC motor in future. It will (hopefully) be possible to use special direct-drive BLDC and build a real camera gimbal with it.
YES, would love to see more about your ball bearing design, and would be great to have you post the files for download!
In my final year of university, I created an equation to smoothly travel from one position to another with a maximum acceleration, constant speed and low jerk. I have a desmos of it if you are interested. It would be really great to have it integrated in a controller like this
That's cool I will be happy to take a look. I used very simple trajectory and never researched this topic before, but if you have a good answer already I will happily use it.
Very cool system, I’m definitely interested In the bearings. I am looking forward to trying to make something similar myself
Looks very nice, good work.
You should try make a variant for mini brushless motors as well. For small but fast, high accuracy and/or high torque hobby servos/motors.
I think that would work very good (and i don't think there are so many other that have made a DIY hobby brushless servo), but is of cause a more complex and challenging project.
Maybe use CAN communication. Its developed for car/machine communication and would be suited for this application and use in robots/machines etc.
But stay away from RS485, it often dont work as expected. Its ok on longer timescales where a bad signal can be resent like for example in a temperature regulation situation.
Thank you! Yeah, that could be awesome. I will focus on improving brushed DC motor for now, maybe will bring CAN to the next version as it is a good idea. I have researched BLDC motors before and I think the brushed motors should go away at some point if we can make a good and cheap controllers for BLDC. But this is another layer of complexity on top of what I already have, it was too much to bite at once. But I hope I will get to BLDC servos/ESCs at some point :)
Very nice video and project. Similar to a dynamixel but your use of remote sensing allows for backlash compensation which is great
This was an easy sub! Love the printed bearings. Very cool.
Also: yes, would buy this in a heartbeat.
Excellent work.
Subscribed and will be following this project.
Might have a go at making something inspired by this later in the year.
Go for it! Starting could be hard. I probably spent a year thinking about the rover, before I started actually doing something. I was scared of the amount of efforts required to finish it (and I still not very close :) ). But when I started I was making progress way faster than I though. And it is also fine to take breaks if you feel burned out. So I would say that if you have an idea and you are passionate about it, just go for it. The faster you start, the faster you will get to something you will be proud of. Good luck!
Great project! I am really interested in the 3d printed bearings you made. It would be awesome if you could share some tips on how they were designed.
It would be awesome It you could go deeper in how the bearing works and also provide some experimental data to see if they are worth it
Very clever design. Well done. Yes, I would like to know how did the ball bearings very much
Looking forward to know more about those bearings and gears at 13:16.
Nice project and design. Thanks for the explanation and breakdown.
I love all the thought and design work. Fantastic.
Cool design!
Amazing work and explanation!
You could also use RS-485, very noise resistant, but your intended line length is short, so something simpler probably works... Maybe even just added a drive transistor on each end, with lower resistance pull up.
I HATE the current state of consumer motors. Im making a project that requires very small servos right now and the choises are so sad. I just ordered a couple of those mini linear style servos because i have no experience making boards myself. This seems like exactly what i need and would certainly buy some
awesome project, i've been thinking about doing something similar but never got to it. Please do share your experiences with printing bearings, yours look very good!
Very nice project, do you have more details about it? It's also interesting to see how you have done the ball bearing.
Great work. Really well thought out and explained.
Great Project! I did the LibreServo project. It's quite similar at your project but for standard Servomotors. Take a look 😊
Oh! Cool! Do you mind if I contact you some day? I would love to talk with you about servos :)
The bearings are nice, I made slew bearings once with 6x6 dowel pins but its always hard to get the tolerance right
Nice work! Yeah a ball bearing design video would be great 👍
Actually this might become a very famous OpenSrc Servo , which may as well replace the cheap ones
Looks like some great engineering going on here😀 btw if you ever do an V2 of the controller, canbus would be perfect for this i think👌
True, I hope I will find a more or less cheap and suitable MCU with CAN support.
Great project! If it not too late, change I2C interface to something else. I made this mistake when building my robot and experienced communication breakdown due to electric interference with I2C sensors for wheel position. I2C is good for communication between ICs on PCB but will fail when use on wires. Especially when close to electric motors.😮
I learned it when it was too late. Hope it will be ok, otherwise I will switch to CAN, but it will take significant effort. For now I reduced the problem by using 3 I2C interfaces instead of 1 as I planned. So now it's 5 servos per bus. And two servos works fine. I hope 5 servos will work too. Thanks for the heads-up!
this is a great option, another one is using simple FOC with brushless motors
Very cool. Thanks for sharing 😊
great job, just like always. looking for further projects and videos :3
That's so cool. I would be also interested in the design of the rover chassis, if you run out of ideas for videos. Keep up the good work. I subscribed
Thanks for your inspiration!
I'm interested in using your servo motor set up for other builds. I think it can be used to create a very cheap, but powerful robot arm that is better than anything on the market. More details please. Awesome work.
Thank you! I will make a next version with some fixes and will make it open-source. I have a passion for making things cheap too :) This is the way for everyone to have a good stuff. Good luck with your project!
Hey, impressive work 1 more subscriber ! I'm needing custom built servos more and more, and your work possibly will save me days of trial and error this summer. Also definitely interested knowing more about your custom ball bearings, and how you got to the right design - hopefully I'm not alone hoping for that vid ^:D
잘만들었다, 잘만들었어. 똑똑하다 똑똑해.
Interesting, one day I might build one.
Great video! .. Thank you!
Nice. I’m doing what I can to help bump up the views.
Much appreciated :)
Great idea, great video! Thanks
Just a note on PWM to control the standard servos: it is intended to have a period length of 20ms with T_on of 1.0ms for lowest position up to 2.0ms for the other end position. As long as you stay with this period length your description is correct and you can call it PWM.
But in fact the period length is not important, only T_on is considered by a servo. So with another period length one can see not T_on/period is the signal, only T_on is used. The term PWM is a bit misleading here.
Yeah, that's right. I did not want to overcomplicate things and said that is just a PWM, which is almost true. But I got your point, thanks!
Very nicely done
You are really brilliant. 👍👍👍
very cool project! please do share the 3d printed bearing design
Выглядит футуристично. Продолжайте дальше, чтоб был больше охват аудитории нужны такие же видео на русском.
Very cool design. You have one subscriber more 🙂.
I would love to see how you designed these. Do you consider making the design available?
If you are talking about the board, the next version will be available. The one in the video has issues. And I will make a video about it when it will be ready.
Very nice clean work...
Крутая разработка спасибо что выложил попробую повторить упростив соединение
Oh man I'd absolutely love to use these! Are they going to be open hardware and source? This is a seriously cool design, love that layered control loop
I will 100% open-source it since the next version. The current version has some issues. Not very critical but it could be better. And the firmware is quite sketchy right now.
@@Positive_Altitude awesome! I can't wait to see it
Nice content!
please share how you design those bearings! very cool
Fricking absolutely. We're stuck with 1980s technology for servos. Wiper potentiometers, weak, slow, brushed motors and open loop (from the point of view of the microcontroller) control schemes. I can buy a 500W brushless drone motor for $10, a 4096 position, continuous, absolute rotary encoder for $5, an ESC for another $5 but no one anywhere has put these together into a robotics servo that uses I2C or SPI? No. I have to buy a $1000 NEMA whatever AC servomotor and a $2000 controller that runs over RS232 with a proprietary connector and proprietary software that only runs on ****ing Windows NT. This needs to change.
This is so true! That hurts me too. We have so much cheap and great parts but proper BLDC servos are so expensive. I will go for BLDC servo as soon as I complete the brushed servo first. That will be exciting! It is time for brushed motors to go away.
@@Positive_Altitude Standard servos, even the fast ones are also just way, way too unresponsive. I see people using them in guided rocketry and all they get is oscillation. You can get servos that do 60 degrees in 100ms, but most of that is spinning up and spinning down the motor, so it definitely won't do 30 degrees in 50ms or 15 degrees in 25ms.
That includes AC servomotors too. They might be fast when they get going, but they're slow to get there.
If you get the data, it would be nice to see an RPM vs time curve when you give your controller a move command. I know your rover doesn't really require high speed position changes but it would be nice to see anyway.
Lol. I have made one of these rockets, check the first video on the channel. And that damn delay... I greatly underestimated how badly 40-50ms delay could affect control algorithm stability. That was the reason why I failed my first launch attempts. And what is the most annoying -- there is no position feedback, so it is not possible to measure step response and use it for control system tuning. I ended up just roughly modeling it in the simulation. As the result rocket flies, but with some oscillations that are not present in simulation.
It is totally possible to implement a way to capture step response of my servo, it also will greatly help to tune the servo for high performance, but I haven't implemented it yet. But I can say for sure that 400kHz I2C has almost zero communication delay compared to 50Hz PWM :D
very nice, thanks for the video!
Great diagram
Crazy! I Imagine you can build much smaller and precise parts using a Resin 3D printer
very cool project
Great work man ❤
It would be really nice if , you just made a video on the control schema of the motors , as I saw you werent using PID , cause that was really cool.
Yeah, I decided to not dive too deep into this. But in fact everything is very simple. Position control is just P regulator. Velocity control is PI (well, almost: I term is applied to velocity delta, P term to current velocity, not to the delta). Current control is just PI. So it is like 3 simplified PID regulators chained. And it is not my invention, google for "PIV regulator" that's exactly what I implemented. Maybe I will make a video about it, but not sure if it will be soon.
Oh , thanks
instant sub! amazing work!
Awesome project, thanks for sharing. Which IC did you use for current sensing?
Thank you, it is Texas Instruments INA180A2. It amplifies the voltage across 10mΩ resistor x50 times and then I read the value with ADC.
Thanks , very good explanation
Please share about how to build those bearings!
Fantastic project!
How can you program the stm32 with rust?😮 So cool
Thank you! It works like a charm. It is even possible to setup debug in VSCode. There is a project stm32-rs and there is support for all series of STM32. I am very happy with that.
Nice work from a developers view. Where can i download the stl and gerber files? Is there any documentation available?
❤ that!
Thank you! Design files for the board will be available when I make the next version. The current one has some minor issues to fix. The rover is still in progress, the "body" is not designed yet. I will share the design files when I will finish.
I love your work, are you planing to make it open source or share/sell files like schematic, layout, gerbers or code? I would really like to recreate it.
Yes, I am going to keep all designs/software from this channel open-source. But right now the board has some minor issues. I will make an updated version and make it available.
I'm very interested in the servo control board! I'm working on walking robots. Off the shelf servos are disappointing and get expensive quick when you use a dozen in one robot.
Using N20 motors at each joint could be a big improvement.
Yeah! That's sounds cool! How big is the robot?
I am working on the next version of the servo. The version in the video has some issues. I will share design files when it will be ready.
The assembly/wiring issue could be resolved with clip-in connectors, instead of soldering wires to the boards.
Yeah, going to add them in the next version
Really cool and well-done. Which PCB design software do you use?
Thank you! I am using KiCad. I think it has the right balance of features/complexity for hobby projects.
@@Positive_Altitude thanks for the reply. I dabbled with Eagle a long time ago, then played around with Kicad a little and now am looking at EasyEDA. I think if a project comes along where I need a PCB it will be either Kicad or EasyEDA.
I am impressed by the presentation and the mechanical/hardware/software design.. Where is the github.. and how do I order the PCB ?
Thank you! Not shared on GH yet, because there are issues and no documentation at all. Maybe I will do that during the next few weeks. But anyway I am working on a new, improved version, that will be shared from the very beginning. I hope I will get there in 1-2 months.
very good job. maybe its better to put hall sensor on separate board?
Though about it. But I decided that it is too many wires. The sensor requires at least 5 wires that will be very annoying to route. So, instead I tried to make this board very small. It is only 20*20 mm
The great thing about hobby servos is their simplicity and very low cost. Lots of people use them for this reason where they are not really appropriate, like wheel drives and cnc type machines. Makes for cheap toys. You are making a real robot, not a toy. My question is how precise are the magnet position sensors? The hobby servos I've used (cheap ones) have pretty poor precision potentiometers and high backlash gears.
This encoder is 12-bit , so LSB is about 0.1 deg. But there is also a "non-linearity error" that could be somewhere around 1 deg. This error also greatly depends on proper axis alignment. But the good thing is that it is not like noise, it is consistent, the error is is repeatable for every position. So in theory we can assemble the system, then use another encoder or stepper motor as a source of precise angles, collect statistics and offset non-linearity in the software. But I did not do that, for my applications it is good enough.
Wondering if is worth to integrate everything into the wheel and add a slip ring for power and LED and receiver for signal transmission for continuous rotation like a LiDAR
Great job!