I don't usually comment, but your great exposition followed by that crystal clear and explained code deserves at least my like and sub. Thanks for your hard work.
First of all thank you so much, you explained the stuff very clearly. I have a doubt after watching the first video again.... We started with index zero. How do we know the relative stator-motor position? Will it just start with a random torque value , between max torque(when magnets and energised coils out of phase by 90 degrees) and 0 torque (neutral position-when magnets are in line with the energised coils.) .
Correct... in open loop you dont know the position of the rotor so it will start with a random value until they align. My other videos explain the closed loop approach, hope they are useful :)
thank you for such nice work ...but youre using arduino uno utilizing a atmega 8 chip ? i didnt get the setup part of code ... if somebody could clear things up for me that would be appreciated .
Wow, that's a thorough explanation! In my situation, I'm utilizing the IR2104 drivers, but I'm encountering difficulties grasping the theory. Essentially, there are two methods to control a brushless motor: using PWM, as you demonstrated, and employing full-wave switching to commutate the phases. Initially, I thought employing both methods simultaneously was the correct approach. However, my teacher suggested otherwise. Currently, I'm unsure about how to configure the Arduino to send PWM signals and effectively operate the motor. Do you have an idea on how am I supposed to do since there is two IN pins (High, and LOW pins) ?
Any reason you made the sine lookup table length 48 ? I see that 48 is a factor of 1/3 and 1/4 (for the 120 degree and 90 degree shifts). But any other reason? Based on poles or anything?
Only the reasons that you mentioned and the fact that 48 gives a decent resolution, but you may use a larger/smaller number, its not related to poles or anything else.
Thanks for your guide! I also apply the sine wave value table, but I noticed with each rotation, its rotation angle is irregular, for example there is step = 1.5 degrees, there is step back = 3 degrees, please tell me, do so that each stepper rotates, will obtain 1 fixed angle like stepper motor?
thanks for the video. I want to use gimbal motor 2204 260kv to rotate an arrow max 30 degrees left and max 30 degrees right, depending on the car steering wheel position taken from can bus with adafruit board that has can bus integrated. My question is: do I need the encoder? because I don't really need the feedback from the motor, it should run the loop and the motor position will depend on the position of the steering wheel? thank you.
Hello Juan, I love this short series on brushless motors. Which motors are you using in these videos? I'm looking for some brushless motors for a personal project: a basic stabilization platform for Parkinson's patients. The motors in your video seem to be perfect for it, but unfortunately I'm finding a lot of knock-offs online. Your help would be much appreciated 😃
Hey Pablo So I recently bought four ball screw devices at an auction because they were fitted with black motors with encoders, apon inspection at home I realized they are bldc motors also fitted with ESP32 and ODrive boards V3.5. I am having trouble finding the L6234D here in my part of the world and was wondering if you could you maybe provide me with a pinout sketch so I can use it instead of the L6234D ? (Or maybe using the ESP32)The motors I have are also quite large. This BLDC thing Seems pretty cool and would like to start tinkering. Kind Regards.
Yes, these have more number of poles, which gives them higher torque, and lower top RPMs. Also, some of this also include a shaft encoder, which is not normally found on UAV propelling motors. However the application on the video should work for both motors. Thanks for the question.
Thanks a lot for the video. Why do you think the motor can't catch up with the waves when you increase the rpm? To me, there is no load at all and the rpm is pretty low at the time it stalls.
HPB1980 im glad you liked it, check the other videos I made for closed loop :) GM5208 is one of the motors, you can find a variety by googling: “brushless gimbal motor as5048 motor”
very nice job thank you. but one question: if you change the motor positon via hand, what is happing? okay, the µC gets no information but the motor will continue to rotate or what? thank you
Yunus Calagil you can only base the position on the amount of electric revolutions you have sent out, and hope the rotor didnt slip or jumped... its similar to when using stepper motors. You send the stepper motor to a position, but not having an encoder also means not being able to corroborate that it arrived in that position ;) maybe its time to upgrade your setup to closed loop? Good luck!!!
Hello Pablo! I tried this open loop code on your development board, connected pot on Vcc, Ground & A1 but motor just vibrate & humming. I also tried Closed loop Steer-by-Wire code and motors vibrate pretty badly; motors are moving roughly with jitter but are not synching. My motors are iPower gb8108-90t 36n42p motor. (I tried const int PA = 42 & 21 as well) Can you help me to identify what I'm doing wrong please!
Focus on open loop, which mode are you using? Go for speed mode, check that the delay is not too small. Dont try anything else until open loop is working ;)
Using that motor driver, would you be able to somehow connect 3 motors on an Arduino? I see only 6 PWM ports on the Arduino so I would assume then that you would only be able to connect two motors and their respective 3 phases. Is there any way around this? Is there any alternative way to connect three brushless motors to the Arduino?
nope, I only used a P control, that's it, did not experience overshoot not oscillations. Will make a video about it soon, you have a video of your project I can look at?
@@juanpablocanguro I am making a force feedback analog using voice coils liliumjsn.blogspot.com/2020/03/voice-coil-test.html , but the general idea is the same :P . What's your position sampling rate? I think that's the case with mine. You need to sample faster than the return speed of the motor in order to work just with the P control.
Hi. Are you sure this code sets pwm frquency to 31250 Hz? "TCCR2B = TCCR2B & 0b11111000 | 0x01; // set PWM frequency @ 31250 Hz for Pins 11 and 3, (0x03 is default value, gives 490 Hz)." I think it is 62500Hz. Thanks.
@@juanpablocanguro Thanks. It is my mistake because i thought arduino was using "fast pwm" mode. I checked now the datasheet and seen that, Timer2 is in "phase correct pwm mode". So calculation is "fOCnxPCPWM=fclk_IO/(N*510)". So it is not 62500 but it is about 31372Hz. Thanks again.
Reza Danesh its no longer under production... it was a french company making those, but follow the link to our board, it has 6 mosfet drivers to power 2 brushless motors at once and an embedded Arduino Pro ;) ebay.us/a8VE8P?cmpnId=5338273189
Hi Pablo! Greetings from Spain. Is there any way to do something similar (low speed) adding the minimum pieces as possible with a 4-in-1 esc for controlling 4 brushless motors?? Thanks in advance and great job.
Perdona, no entiendo la aplicación. Quieres conectar 4 motores BLDC a una misma tarjeta? No se puede si quieres q se muevan de forma independiente pies requiere 3 puertos con pwm cada motor. El arduino tiene 6 puertos con pwm en total. Podrías hacerlo pero en pares por ejemplo, dos se mueven juntos y otros dos, (solamente funcionaría en lazo abierto). Saludos
@@juanpablocanguro la idea es usar motores de drone con su esc 4-in-1 como si fueran motores actuadores de robótica añadiéndoles un engranaje planetario a cada uno. Me parece que con Arduino y la librería "servo" permite usar los digitales como pwm. El caso es que no puedo controlar la velocidad como lo haces tú en el vídeo ni el torque con solo el esc del drone pero me interesaría mantener el tamaño lo más reducido posible. Mil gracias por tu ayuda y tiempo. Un saludo.
I am confused about motor motorPin1 =9; const int motorPin2 =10; const int motorPin3 =11; I think it would be more clear if you could share like In1, In2, In3 or En1, En2, En3 as used by L623D. Thank you.
Dave Lugtu i guess vibration at lower frequency could come from other sources. For example, if theres a lot of noise in the sensor reading, that will trigger an output that reflects the input noise... so vibration will appear. Also, I noticed when going up to 31khz on the Arduino pro, it looses a lot of resolution on the pwm, this causes the rotation to lose the smoothness. Let me know how it goes ;)
@@juanpablocanguro I am actually using an STM32F103 board (which supports up to 16bit pwm) and DRV8313 drivers with Arduino IDE. The vibrations are still evident even when no sensor or potentiometer is used (just a for-loop looping through the array indices). I am unable to monitor the output waveforms-no oscilloscope :)
@@juanpablocanguro Here is the video: ua-cam.com/video/HZ3P7gBED7c/v-deo.html . I can describe it beeping like your steer-by wire attempt video, accompanied by very low frequency vibrations. is it normal for open loop control? I havent tried any closed loop/foc yet. I can only imagine this when used as a camera gimbal, those vibrations will cause a lot of jerkiness. Thanks for your help!
Sync Prism hi! Yes, here is a link where you can order from :) rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=2&pub=5575378759&campid=5338273189&customid=&icep_item=124316900944&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg&toolid=11111
Greetings! I am doing what you are doing right now but i am wondering... Is it normal for the motor to heat this much? i have the torque set to 0.5 and after few minutes of turning one way and the other (position) its quite hot!
Vid Črešnik well its hard to tell, depends the voltage you are using and the motor itself. The small motors I use get quite hot when fed with 12V... but it really varies a lot... drop the supply voltage or try 0.25, yet a motor should be okey to work even if warm, as an example: Stepper motors can be quite hot and work for years also at 100 ºC / 212 ºF surface temperature.
@@juanpablocanguro Ok thank you, i just noticed it was at 100%, so i guess its ok and if there is no problem for it to be warm than im good! Next question is, can something be done with the noise? The motor is very loud! (in time it gets quite annoying). Also what did you do with the encoder noise? Do you filter it? Thank you very much for your help!
Check the other videos. Pwm default is around 400 Hz if I remember correctly, so lots of noise, but if you change the right registers, then it should be very quiet. If this doesn’t happen, could be another reason. Upload a video an share your links
Maybe increase the torque? (More voltage and change the torque variable value=1 instead of 0.5... does it behave ok at higher speeds or jittery always?
@@juanpablocanguro With the torque value at 1 its not as bad, but the motor gets super hot... here is a Graph of my stepvalues vs the absolutposition from the encoder (0-16383) photos.app.goo.gl/gAranRvv2B6UfHZYA The Position should be a line, but it is super wavy. not sure what i am doing wrong
@@mufassarwaheed6160get rid of all kind of lines that could cause delays, no printf, the only delay allowed is the one that is intended to control the speed. Clean the code from what you are not using, run it, and it it persists, paste your code here And Ill take a look at it (but please clean it first!) ;)
Thank you for replying always so quickly. I tried your code without changing anything major. github.com/Muffin-W/BLDCTeensy3.2/blob/main/BLDCCode_JuanPabloAngulo The only thing i have different now, is that i have different pins and a different method to change the pwm frequency since i am using a teensy3.2 board. Your help is so much appreciated
@@mufassarwaheed6160 maybe its a problem with the teensy. Try the standard pwm settings (490Hz), as the timer affects the pauses, maybe that is the reason. Borrow an arduino uno and test it there. Good luck
I bought that board. I was wondering if you could explain to me how I can spin one of these 'iPower Motors' without an encoder. I want to see if I can get it spinning first. Thank you!
Very impressive low speed smoothness and holding torque. i'm curious on the actual current measurements and also what the motor is rated for, along with the temperature of the motor.. i'm also very interested in your video on closed loop and will be looking for that now! I like the channel name... a derivation of Daft Punk Random Access Memories? (great album)
Jrod FPV the new videos are up, check em out :) yes the name of the channel comes from that album. At 12V the small motor gets hot, the larger motor (see next videos) runs ok on 12 V ;)
Most of the stuff we see in the Arduino demo arena I think represents a pretty fundamental but useful misunderstanding of BLDC and PMSM motors. It's always possible to control 'average' speed of a permanent magnet motor when the voltage is high and the torque load is low, by sequencing the magnetic field. Doing so means hall feedback, sensorless feedback, and FOC are thrown out the window. The motor will transition from one the of the three commutation phases with non-linear accelerations. I suspect it would be more linear with sinusoidal drive. That will be interesting to see. But in doing so you will be guaranteed that the magnetic fields between permanent magnets and induced coil fields are never orthogonal. They can't be because the forces are always trending to 0 with little to no opposing load. With real control, FOC or otherwise, the voltage controls the speed. And with no load (just friction) orthogonal fields (or approximations (ie trapazoidal)) and thus efficiency are still achievable. A brushed motor sets a somewhat constant lead in the permanent versus induced fields someplace a bit less then between 0 and 180. In a BLDC the fields intercept at between 60 and 120 degrees. In a PMSM the lead IS constant at 90 degrees, and therein lies the genius in FOC
Thanks for the great explanation! How would I have to set this up if I want to use seperate gate drivers, like the IR2104? (www.infineon.com/dgdl/ir2104.pdf?fileId=5546d462533600a4015355c7c1c31671 )
Omg, are you an angel?? This is exactly what i needed
wow, after a ton of sinusoidal commutation theory, your video makes it easier to apply!
you ARE an angel - just found your channel today and you are doing ultra cool stuff !
Great Job! Made the project from you, and works well. Looking forward to the closed loop tutorial with the AS5047 encoder.
I don't usually comment, but your great exposition followed by that crystal clear and explained code deserves at least my like and sub. Thanks for your hard work.
Great video and very well explained thankyou so much I learned alot from your explanations that I could not grasp before excellent 👍🏻
awesome cant wait for closed loop control
Amazing video! well explained. Keep up the good work!
Hey! Nice video, looking forward for the next parts too :)
Great Video! Can't wait for the next one. Thanks for sharing!!
Nice work! Did it and it worked!
Great ! looking for next episode
Frank chou the new videos are up, check em out :)
First of all thank you so much, you explained the stuff very clearly. I have a doubt after watching the first video again....
We started with index zero. How do we know the relative stator-motor position? Will it just start with a random torque value , between max torque(when magnets and energised coils out of phase by 90 degrees) and 0 torque (neutral position-when magnets are in line with the energised coils.) .
Correct... in open loop you dont know the position of the rotor so it will start with a random value until they align. My other videos explain the closed loop approach, hope they are useful :)
@@juanpablocanguro Thank you so much sir for the whole series,Your reply to my doubt felt heart warming. Like others said....you are an angel 😁
Thank you, clear explanations in the video 🙏🏼
yes, another pablo
Thank you for sharing, excellent video
Muito bom !!! obrigado !! Vou estudar e trabalhar nesse código !
Very nice video! Will you also refer to space vector pwm in future videos?
Markus hdbfsdhv the new videos are up, check em out :)
This is an excellent video.It's very usefull for me ,Thank you very much!!
Perfect tutorial, thank you!
thank you for such nice work ...but youre using arduino uno utilizing a atmega 8 chip ? i didnt get the setup part of code ... if somebody could clear things up for me that would be appreciated .
ua-cam.com/video/iP_f0KY7lx8/v-deo.htmlsi=h6BghVp1eW0BR_4X
Wow, that's a thorough explanation! In my situation, I'm utilizing the IR2104 drivers, but I'm encountering difficulties grasping the theory. Essentially, there are two methods to control a brushless motor: using PWM, as you demonstrated, and employing full-wave switching to commutate the phases. Initially, I thought employing both methods simultaneously was the correct approach. However, my teacher suggested otherwise. Currently, I'm unsure about how to configure the Arduino to send PWM signals and effectively operate the motor. Do you have an idea on how am I supposed to do since there is two IN pins (High, and LOW pins) ?
These 2 IN pins are for brushed motor, HIGH and LOW for direction only.
Any reason you made the sine lookup table length 48 ? I see that 48 is a factor of 1/3 and 1/4 (for the 120 degree and 90 degree shifts). But any other reason? Based on poles or anything?
Only the reasons that you mentioned and the fact that 48 gives a decent resolution, but you may use a larger/smaller number, its not related to poles or anything else.
@@juanpablocanguro What other values could we use instead of 48?
Hello,
Thank you for this video. I am really interested in your work, especially the part on torque control.
Do you plan to make a video on this part?
Sebastien Prothin will upload it soon!
Thanks for your guide!
I also apply the sine wave value table, but I noticed with each rotation, its rotation angle is irregular, for example there is step = 1.5 degrees, there is step back = 3 degrees, please tell me, do so that each stepper rotates, will obtain 1 fixed angle like stepper motor?
thanks for the video. I want to use gimbal motor 2204 260kv to rotate an arrow max 30 degrees left and max 30 degrees right, depending on the car steering wheel position taken from can bus with adafruit board that has can bus integrated. My question is: do I need the encoder? because I don't really need the feedback from the motor, it should run the loop and the motor position will depend on the position of the steering wheel? thank you.
Hello Juan, I love this short series on brushless motors. Which motors are you using in these videos? I'm looking for some brushless motors for a personal project: a basic stabilization platform for Parkinson's patients. The motors in your video seem to be perfect for it, but unfortunately I'm finding a lot of knock-offs online. Your help would be much appreciated 😃
Great Job
I have a question how can I get this type of BLDC controller??!
Theres a link in the description to order our board, has the power stages included for controlling 2 motors ;)
Great video but does the code defines motorpins as 9, 10 and 11 which look like they're unused on the Arduino board. Can someone clarify this?
Hey Pablo
So I recently bought four ball screw devices at an auction because they were fitted with black motors with encoders, apon inspection at home I realized they are bldc motors also fitted with ESP32 and ODrive boards V3.5. I am having trouble finding the L6234D here in my part of the world and was wondering if you could you maybe provide me with a pinout sketch so I can use it instead of the L6234D ? (Or maybe using the ESP32)The motors I have are also quite large. This BLDC thing Seems pretty cool and would like to start tinkering. Kind Regards.
Sounds fun! If you go into my patreon you will find a way to drive bldc using the very common L298, hope that works for you!
Thank you 4 this video
SV Vela Nautica the new videos are up, check em out :)
Are these gimbal motors different in any way to BLDC motors used, for say UAV applications?
Yes, these have more number of poles, which gives them higher torque, and lower top RPMs. Also, some of this also include a shaft encoder, which is not normally found on UAV propelling motors. However the application on the video should work for both motors. Thanks for the question.
Thanks a lot for the video. Why do you think the motor can't catch up with the waves when you increase the rpm? To me, there is no load at all and the rpm is pretty low at the time it stalls.
Hi! I have the same problem! Did you fix it?
I can't find the motor you're using, I only find BLDC's for drones... have you got a link? Thanks
Edit: they are "gimbal motors"
Are there any specific reason you use 48 values for sine wave?
This is really awesome! Thank you for putting this together. Could you please let me know what motor is that? Can you share the model number?
HPB1980 im glad you liked it, check the other videos I made for closed loop :) GM5208 is one of the motors, you can find a variety by googling: “brushless gimbal motor as5048 motor”
Random Access Projects thank you! Yep I’m already watching those :) I’m trying to build a gimbal for a cycle mounted camera.
very nice job thank you. but one question: if you change the motor positon via hand, what is happing? okay, the µC gets no information but the motor will continue to rotate or what? thank you
Yunus Calagil the motor will skip the original movement and continue to move after you release it :)
And next question is :D wenn i open loop control use, i dont need FOC or?
But how can the MC know the rotor Position?
Yunus Calagil you can only base the position on the amount of electric revolutions you have sent out, and hope the rotor didnt slip or jumped... its similar to when using stepper motors. You send the stepper motor to a position, but not having an encoder also means not being able to corroborate that it arrived in that position ;) maybe its time to upgrade your setup to closed loop? Good luck!!!
Hello Pablo!
I tried this open loop code on your development board, connected pot on Vcc, Ground & A1 but motor just vibrate & humming.
I also tried Closed loop Steer-by-Wire code and motors vibrate pretty badly; motors are moving roughly with jitter but are not synching.
My motors are iPower gb8108-90t 36n42p motor. (I tried const int PA = 42 & 21 as well)
Can you help me to identify what I'm doing wrong please!
Focus on open loop, which mode are you using? Go for speed mode, check that the delay is not too small. Dont try anything else until open loop is working ;)
Using that motor driver, would you be able to somehow connect 3 motors on an Arduino? I see only 6 PWM ports on the Arduino so I would assume then that you would only be able to connect two motors and their respective 3 phases. Is there any way around this? Is there any alternative way to connect three brushless motors to the Arduino?
Can I use an L298N motor driver instead of L6234D? What are other possible replacements?
Did you check the link to our recommended board? That board drives 2 motors at the same time, as demonstrated in the other videos :)
@@juanpablocanguro Yes! But the L6234D driver isn't available in India and I'd like to know if I can use any other driver instead? Thanks.
What motor did you use? Linnk please :)
All info available in Patreon link :)
@@juanpablocanguro ok:)
Thank you verry much
In closed loop, how did you manage to return to position without oscillation? Did you provide damping through position derivative?
nope, I only used a P control, that's it, did not experience overshoot not oscillations. Will make a video about it soon, you have a video of your project I can look at?
@@juanpablocanguro I am making a force feedback analog using voice coils liliumjsn.blogspot.com/2020/03/voice-coil-test.html , but the general idea is the same :P . What's your position sampling rate? I think that's the case with mine. You need to sample faster than the return speed of the motor in order to work just with the P control.
Dimitris Karapatis the new videos are up, check em out :)
You are absolutely amazing man ! I wasn't even into these things but wow ! Superb Content
Keshara Weerasinghe thank you! Dont forget to check the other videos I have on Brushless motors :)
Hi. Are you sure this code sets pwm frquency to 31250 Hz?
"TCCR2B = TCCR2B & 0b11111000 | 0x01; // set PWM frequency @ 31250 Hz for Pins 11 and 3, (0x03 is default value, gives 490 Hz)."
I think it is 62500Hz.
Thanks.
Mikrodunya please check the Arduino official website as there might be a mistake :)
@@juanpablocanguro Thanks. It is my mistake because i thought arduino was using "fast pwm" mode. I checked now the datasheet and seen that, Timer2 is in "phase correct pwm mode". So calculation is "fOCnxPCPWM=fclk_IO/(N*510)". So it is not 62500 but it is about 31372Hz. Thanks again.
Where did you get the l6234d module? I want to purchase some for experiments like what you are doing.
Vince Herman I ordered it from ebay, there is a link in the description. Thanks for your support
@@juanpablocanguro The link doesn't show the breakout board.
Reza Danesh its no longer under production... it was a french company making those, but follow the link to our board, it has 6 mosfet drivers to power 2 brushless motors at once and an embedded Arduino Pro ;) ebay.us/a8VE8P?cmpnId=5338273189
@@juanpablocanguro Great, I just ordered one. Hopefully, I can get it sooner.
Does this work control for all BLDCs ? I noticed the code doesn't take into consideration the number of poles - or is that not a factor
Hi Pablo! Greetings from Spain. Is there any way to do something similar (low speed) adding the minimum pieces as possible with a 4-in-1 esc for controlling 4 brushless motors?? Thanks in advance and great job.
Perdona, no entiendo la aplicación. Quieres conectar 4 motores BLDC a una misma tarjeta? No se puede si quieres q se muevan de forma independiente pies requiere 3 puertos con pwm cada motor. El arduino tiene 6 puertos con pwm en total. Podrías hacerlo pero en pares por ejemplo, dos se mueven juntos y otros dos, (solamente funcionaría en lazo abierto). Saludos
@@juanpablocanguro la idea es usar motores de drone con su esc 4-in-1 como si fueran motores actuadores de robótica añadiéndoles un engranaje planetario a cada uno. Me parece que con Arduino y la librería "servo" permite usar los digitales como pwm. El caso es que no puedo controlar la velocidad como lo haces tú en el vídeo ni el torque con solo el esc del drone pero me interesaría mantener el tamaño lo más reducido posible. Mil gracias por tu ayuda y tiempo. Un saludo.
@@charlesblack7989 q no va a ser posible usando esos ESC. Saludos
@@juanpablocanguro gracias igualmente. Saludos.
I am confused about motor motorPin1 =9; const int motorPin2 =10; const int motorPin3 =11; I think it would be more clear if you could share like In1, In2, In3 or En1, En2, En3 as used by L623D. Thank you.
hello, i want to fix the arduino output is 6 pins PWM is UH UL VH VL WH WL. To be able to run with other drivers. can you help me?
Sorry, I dont know how to do that, Im using a driver that reduces the triple half bridge into only 3 inputs: U V W
Hi! is it normal for the motor to vibrate even at PWM freq=31kHz? or will FOC get rid of this?
Dave Lugtu i guess vibration at lower frequency could come from other sources. For example, if theres a lot of noise in the sensor reading, that will trigger an output that reflects the input noise... so vibration will appear. Also, I noticed when going up to 31khz on the Arduino pro, it looses a lot of resolution on the pwm, this causes the rotation to lose the smoothness. Let me know how it goes ;)
@@juanpablocanguro I am actually using an STM32F103 board (which supports up to 16bit pwm) and DRV8313 drivers with Arduino IDE. The vibrations are still evident even when no sensor or potentiometer is used (just a for-loop looping through the array indices). I am unable to monitor the output waveforms-no oscilloscope :)
Dave Lugtu can you post a video ? Maybe I can help you debug
@@juanpablocanguro Here is the video: ua-cam.com/video/HZ3P7gBED7c/v-deo.html . I can describe it beeping like your steer-by wire attempt video, accompanied by very low frequency vibrations. is it normal for open loop control? I havent tried any closed loop/foc yet. I can only imagine this when used as a camera gimbal, those vibrations will cause a lot of jerkiness. Thanks for your help!
Is it possible to buy one of these single-motor power stage boards?
Sync Prism hi! Yes, here is a link where you can order from :) rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=2&pub=5575378759&campid=5338273189&customid=&icep_item=124316900944&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg&toolid=11111
many thanks
Can I use CD room brushless motor as part ?
Greetings! I am doing what you are doing right now but i am wondering... Is it normal for the motor to heat this much? i have the torque set to 0.5 and after few minutes of turning one way and the other (position) its quite hot!
Vid Črešnik well its hard to tell, depends the voltage you are using and the motor itself. The small motors I use get quite hot when fed with 12V... but it really varies a lot... drop the supply voltage or try 0.25, yet a motor should be okey to work even if warm, as an example: Stepper motors can be quite hot and work for years also at 100 ºC / 212 ºF surface temperature.
@@juanpablocanguro Ok thank you, i just noticed it was at 100%, so i guess its ok and if there is no problem for it to be warm than im good!
Next question is, can something be done with the noise? The motor is very loud! (in time it gets quite annoying).
Also what did you do with the encoder noise? Do you filter it?
Thank you very much for your help!
Check the other videos. Pwm default is around 400 Hz if I remember correctly, so lots of noise, but if you change the right registers, then it should be very quiet. If this doesn’t happen, could be another reason. Upload a video an share your links
@@juanpablocanguro I checked other videos - many times, i have those registers set as you have, but i also use this bgc board, not Arduino Uno.
Hey guys. I tried the same thing, but on slower speeds, the motor is very jittery. Any idea why this might happen?
Thanks for the Video !!
Maybe increase the torque? (More voltage and change the torque variable value=1 instead of 0.5... does it behave ok at higher speeds or jittery always?
@@juanpablocanguro With the torque value at 1 its not as bad, but the motor gets super hot...
here is a Graph of my stepvalues vs the absolutposition from the encoder (0-16383)
photos.app.goo.gl/gAranRvv2B6UfHZYA
The Position should be a line, but it is super wavy. not sure what i am doing wrong
@@mufassarwaheed6160get rid of all kind of lines that could cause delays, no printf, the only delay allowed is the one that is intended to control the speed. Clean the code from what you are not using, run it, and it it persists, paste your code here And Ill take a look at it (but please clean it first!) ;)
Thank you for replying always so quickly. I tried your code without changing anything major.
github.com/Muffin-W/BLDCTeensy3.2/blob/main/BLDCCode_JuanPabloAngulo
The only thing i have different now, is that i have different pins and a different method to change the pwm frequency since i am using a teensy3.2 board.
Your help is so much appreciated
@@mufassarwaheed6160 maybe its a problem with the teensy. Try the standard pwm settings (490Hz), as the timer affects the pauses, maybe that is the reason. Borrow an arduino uno and test it there. Good luck
Hi! Which board did you buy with the L6234D chipset? I can't find any breakout boards out there. I can only find the individual chip. Thanks!
Its no longer available :( but the link in the description takes you to an all integrated board with enough drivers for 2 motors at the same time :)
@@juanpablocanguro thanks for replying! So the eBay dev board has the same performance in your experience?
@@tomtouma correct. Check out my other videos, the Ball and Beam one or the Haptic interface or the drive by wire videos they all use that one board
@@juanpablocanguro Great, I will get one. Do you know of any schematics or further info on the hardware of that board exactly?
I bought that board. I was wondering if you could explain to me how I can spin one of these 'iPower Motors' without an encoder. I want to see if I can get it spinning first. Thank you!
So great!!! works well, but my L298N is really very hot。
Xiongshi Xu try the board on the link, uses very efficient MOSFETS
i will be Very interesting the behaviour from 10:42... how can I do it?
Very impressive low speed smoothness and holding torque. i'm curious on the actual current measurements and also what the motor is rated for, along with the temperature of the motor..
i'm also very interested in your video on closed loop and will be looking for that now!
I like the channel name... a derivation of Daft Punk Random Access Memories? (great album)
Jrod FPV the new videos are up, check em out :) yes the name of the channel comes from that album. At 12V the small motor gets hot, the larger motor (see next videos) runs ok on 12 V ;)
Your link to the code is dead. Maybe use GitHub. That's what it's for.
Thanks, done: github.com/juanpablocanguro/BRUSHLESS-MOTORS/blob/master/open_loop_youtube.ino
Most of the stuff we see in the Arduino demo arena I think represents a pretty fundamental but useful misunderstanding of BLDC and PMSM motors. It's always possible to control 'average' speed of a permanent magnet motor when the voltage is high and the torque load is low, by sequencing the magnetic field. Doing so means hall feedback, sensorless feedback, and FOC are thrown out the window. The motor will transition from one the of the three commutation phases with non-linear accelerations. I suspect it would be more linear with sinusoidal drive. That will be interesting to see. But in doing so you will be guaranteed that the magnetic fields between permanent magnets and induced coil fields are never orthogonal. They can't be because the forces are always trending to 0 with little to no opposing load. With real control, FOC or otherwise, the voltage controls the speed. And with no load (just friction) orthogonal fields (or approximations (ie trapazoidal)) and thus efficiency are still achievable. A brushed motor sets a somewhat constant lead in the permanent versus induced fields someplace a bit less then between 0 and 180. In a BLDC the fields intercept at between 60 and 120 degrees. In a PMSM the lead IS constant at 90 degrees, and therein lies the genius in FOC
is it a sensorless or sensor based control?
Sensorless
Thanks for the great explanation!
How would I have to set this up if I want to use seperate gate drivers, like the IR2104? (www.infineon.com/dgdl/ir2104.pdf?fileId=5546d462533600a4015355c7c1c31671 )