Lots of people in the comment section give a lot of criticism and doubts but I think what you do for other people is amazing, providing an info and solutions for complex problems for free! Keep it up, you are doing great.
A few comments: 1) You can put V-grooves on your PCB so they break off easier and cleaner. Putting a slot is a lot less aesthetic 2) See if some of your PCBs can be partly pre-assembled 3) Phoenix CNC on tindie has an arduino 328p bootloader burner that burns QFP chips in less than 3 seconds - definitely check it out so you don’t have to waste arduino boards 4) superglue is super temporary on anything that moves. Love your videos
Don't worry about a magnet that would stay on a steel shaft anyway! The superglue is effectively permanent unless it gets above 150C or takes a large shock.
Two cents from my side for anyone watching this cool video and reading this comment 😊 First of, this is a nice introduction to the world of motor control, it covers some of the basics. Second, some people said that FOC needs position sensor. Thats not true. There are sensorless FOC (read about BEMF or SMO observers) Third, what we seen here its not even 5% of FOC, but is a good basis to build a basic FOC (im not saying its bad, im just saying that FOC is much more than setting PWMs based on angle input) Fourth, having high pole-pairs is disadvantage, if you want to do FOC with uC which cost below 100€. Why? Angle sensor is measuring rotor mechanical position with some inaccuracy, which is only greater with more pole-pairs, since you need to do conversion to electrical domain. Fifth, proper motor control (current, torque, speed) in proper closed-loop is one of the hardest things in embedded systems you can do, if you develop HW and SW from scratch. Sixth, as much as this video is cool, please note, this is barely an introduction (stress on barely). For anyone trying to do these things professionally, keep in mind that you can only cover part of the field and not entire motor control. Field is just to vast. Lastly, dont be discururaged when you fail. But also dont attempt such projects without having either immesne motivation to learn a few years or enough Control-Theory/Electronics/Firmware/Inverter knowledge to finish in one.
Video is missing core parameters for FOC, like: Direct axis force and current (Id), Quadrature axis force and current (Iq), Space vectors etc. Happy to see in the next video.
Content is allready super interesting! If you take it one step further and control currents and use them in another control loop that would be so awesome. I've been trying to do it with no success😅
In the end, FOC is all about having your current vector being orthogonal to your magnetic field vector. If you can build your 3-phase signal without having to use transforms, then that's fine too. I.e. you don't exactly need these parameters.
Can you put via's under the controller chip, then make a larger ground plane (or even a 4 layer board) so the internal copper pours can act as heatsinks spreading the heat out away from the chip...use the copper and PCB as a heatsink Very cool design...take a file or low grit sand paper and scuff the end of the shaft and back of the magnet before applying the glue, give is a rough surface to bond to. Keep em coming!!!!
Love your channel and videos... please keep them coming. One possible content suggestion. I'm a novice about ready to dive into my first PCB from PCB way. I'm struggling a little with KiCad. Maybe a playlist with more detail for beginners / novice hobbyists on how to design a PCB and maybe a walkthrough with KiCad or open source equivalent. Anyway, great content as always. thank you.
I added this video to favorites as soon as I saw the thumbnail! What a great video! You always do a great job explaining the concepts and showing how everything works, really neat pcb designs btw! I wonder if you could add some thermal vias below the IC that gets hot to help with heat dissipation. Thanks for the video!!!
good job but I don't see the essence of FOC there. how did you solve the current measurement when you talk about torque regulation. I would also be interested in how he mastered the park and clark transformation atmga. finally, I would recommend you to increase the pwm frequency above 20khz, you wouldn't have strange sounds there either.
The transforms are doable on ATMega if you use tables or CORDIC for the trig functions and fixed point math of course. But he doesn't measure phase currents so no way to do the transforms without that.
Additionally, there is no way to use this ATMEGA for FOC @ 20kHz Clock frequency is just too slow to be able to read angle, process currents, perform corrections, calculate DQs, do the PI, apply svpwm and repeat. I mean you can do it in most basic form, but it's like putting lawnmower motor to a child toy chassis and call it a car.
This IS FOC since the orientation of the magnetic field is explicitly controled by rotor position feedback. This isn't a complete FOC because there aren't explicit Iq and Id current loops, so it's open-loop with position PI as feedforward. So this design does benefit a bit from the concept of FOC, but not much. However it's hobbist-friendly and could serve as an entry project for any who wants to dive into real FOC.
This cannot work for angle input, as it will result in phase shifts which is for proper FOC (current control) undesirable. Except if you then implement correction algorithms
Good job.... Just a side note the more practical your content( not that you know how we would use it but rather how easy it if to take from you and then for us to implement it) the more obvious it is for us to subscribe like share... ect. No need to ask us to do this when the content is good.
Congratulations for the very interesting project of FOC driver controller. With the posibilty of a precise positioning, brushless motors can be a very good substitute for servos in apllications where quickly movment changes are ncessary. I looked the system control routine of the program and noted that it implements in fact a PD controller instead a PID (lacks the integral gain and also the intergral term calculation). For applications where quick corrections are nedded it is the appropriated kind of controller to be used, and it is the case here. Anyway it would be interesting make a test adding the integral parcel and see the behavior of the motor positioning, after all the integral parcel remove the steady-state error.
FOC relates to a coil-magnet interaction. What you made is a position reader. It could be made as an optical device, variable capacitor, counting of pulses, etc. which “field” then it would? Posted.
Hi, I have a question about shunt feedback commonly used below H-bridges. I noticed that your design doesn’t include this shunt. Could you explain its purpose? Many setups place shunt resistors below the bridge for current measurement, and stepper motor bridges often use these shunts for adaptive control, adjusting based on the torque demands of the stepper motor. Could you clarify the role of this shunt and why it’s not included in your design?
Para contar las vueltas puedes utilizar este algoritmo: Sabiendo que el AS5600 tiene una resolución de 4096 puntos por revolución, entonces: * dif --------> diferencia entre pasado y presente. * num -------> Valor actual del encoder. * last ---------> Valor anterior del encoder. * turns -------> número de vueltas. * steps -------> Pasos totales. dif = num - last; // Guarda la diferencia entre el valor nuevo y el valor anterior (pasado). last = num; // Y ahora guarda el valor actual como pasado.
if (dif < -2048) turns = turns + 1; // Comprueba si ha pasado por cero para contar una vuelta (cuando pasa de 4096 a 0) o descontar una vuelta (cuando pasa de 0 a 4096). else if (dif > 2048) turns = turns - 1; // Esto se consigue si en la lectura del encoder el valor anterior y actual cruza ese umbral y está dentro del rango del "if". steps = (long)(turns * 4096L) + (long)num; El problema lo vas a encontrar si cuentas vueltas de forma muy rápida, probablemente deje de contar bien. No es problema del algoritmo de contar vueltas, sino de la lentitud en la ejecución. Se necesitaría acceder al AS5600 por interrupción.
Hi, Have you by any chance updated your SimpleFOC V2 PCB design to include ISP pins for loading the bootloader? I ordered some of your V2 boards from PCBWay but it is awkward get the bootloader on the bare ATMEGA329P. If not would it be possible to have your original design files so I could try and modify it? Ernie
You need to replace the AS5600 with a better sensor. It's not really meant to be used to way you're using it, with a spinning device, and is ideally meant to be used in an object with a fixed rotation of under 360 degrees, with the hard angles recorded in the one write PROM for permament use. Try the MT6701 :D
Please make this into a product! A bldc Arduino server motor that can either be used as an Arduino servo to play around directly or as cheap and quiet servo modules that get commands via serial or can bus. Would be amazing for some projects 😄
could you do a part 2, where you implement other control schemes and using z domain to properly implement a difference eq as a compensator? very entertaining video
This is a good video for FOC basics well done man. A request, Please can you make a tutorial for SimpleFOC library? If possible for esp32 it would be of so much help.
Hi! In one of your previous videos, you mentioned that using the INA3221 is a great choice for measuring each phase of a BLDC motor. I'd like to use it to create a custom ESC for a drone, but I'm not sure how to wire this sensor in EasyEDA. Could you guide me through the process? Can I send you an email for more details?
Is the code displayed on your tutorial page, the most up to date code? I've built out your schematic on protoboard and all the hard ware is working correctly however motor does not react to the potentiometer turning accept for a tiny twitch at one point. The motor also doesn't return to its original position if I turn it by hand. The hardware does work with your original code without feedback. I noticed will printing out the values for "SPMValueA = ElectricalPosition + RotationDirection + SyncOffset;" that the value goes up to 7471 but if value B and C are adding 120 to this then they realistically make no difference when changed to %360
I know the as5600 communicates over i2c. What if this motor driver has to taklk to something else. Now the i2c bus is constantly being use. Is there another position sensor or another bus that can be used?
Doesn't FOC mean the motor is controlled with a current that is always in a phase such as to maximize torque? I can't verify that, but i see that there is a position feed back.
i have a question: what are the inputs and outputs of the PID? Since you used a sine wave, you were able to precisely control the position of the rotor, right?
Nice job exactly what I am currently working on. This is helpful. Do you intend to expose the SPI on a 2.2 revision of your gerber, because I don't feel like butchering some arduino dev boards just in order to get this cheap part.
Internal sensored motors just have Hall effect sensor inside them. They tend to be more expensive too, just attaching a magnet to the back of the motor shaft is usually a better option.
Quick question: How do you design your PCB use MOSI and MISO, SCL and CS to burn bootloader? Do you use jumpers to select these pins as inputs for burning bootloader (from Arduino Nano) and then when its the job is done select these jumpers to whatever you need in the project?
Hi, congratulations! What do you think about to add an external Floating Point Unit, or a cheaper 32bit microcontroller(stm32f103c8t6) for the math calculations with SPI communciation?
If you plan to use current control, forget about SPI, it's too slow. If you want to find cool ready-to-use HW, then check STM32G431 ESC. It's perfect for proper FOC
Hi, I found your FOC V2 project very interesting, so much so I have ordered a few of your PCB boards from PCBWAY to try. But if you don’t mind I would like to ask a couple questions as I am new to the world of SMD PCM manufacturing. Q1) I think R3 (NTC) is a temperature sensor! Does it have a value? And where did you source it from? Q2) R4 on your schematic does not have a value what should it be? Q3) Diodes D1 & D2 did you source them from Aliexpress? Q4) Where did you source the LED1 from? Thanks for a great insight into FOC. Ernie
I don't think foc (field-oriented control) could be used for positionn control since foc maintains a 90 deg between d and q axis of voltage or current which requires constant speed to maintain However, i still like this video for demonstrating position control Foc usually requires reading phase currents then converting them to d and q axis forms using park and clarke transforms, then having PI controller for the command of voltage d and q axis then converting it back to phase voltages through park and clarke transforms I don't think arduino could handle such calculations in high speeds unless theres a library for that
Привет! Извини, что пишу по-русски, по-английски не умею:) Я купил ту же микросхему, что и у вас, но в dip корпусе. Собрал по той же схеме, но она работает не конкретно. С маленькими моторами она вообще не работает: моторы дёргаются, сильно греется мотор и драйвер и все. С большим мотором, подобным вашему работает, но он крутится очень медленно в режиме установки скорости. Я даже модернизировал код, но ничего не помогает :( Даже большой мотор начинает дорожать и дёргаться при таких же скоростях, как у вас в видео. Само движение тоже рваное, мотор заметно дёргается при движении. Пробовал даже ставить конденсаторы в различные места, но ничего не помогает. В чем может быть проблема? P.S. посмотрел видео немного дальше. Вы сказали, что схема не будет работать с моторами от дронов. Ок. Мой большой мотор имеет 18 катушек. Неужели этот мало?
Brother I m really Grateful for your video, Can you please try Closed Loop control In Simple FOC mini Board I tried so much But i couldn't make it work, Thanks ❤
Don’t PCB manufacturers not like you having snap off parts? Don’t they charge extra for that since it is separate circuits? With PCBWay don’t you need to select “Panel by Customer” and set the number of different designs which in this case is 3?
What a beautiful project! Andrei, I want to be your friend - would you?🤣Contact me! I spent a week playing with the AS5048A - the one that communicates over SPI, instead of I2C. It communicates way faster than the AS5600 (roughly 10x faster) - but the readings were more nosy. I still don't know if that's just because it has a 14 bit resolution instead of a 12 bit... Also, the AS5600 has 2 internal modes: when it is rotating fast, it is also noisier - when the speed reduces, it uses some filtering to provide more steady readings.
That's a really really bad way to panelise the PCBs, they will draw a square around it which will contain large gaps and they will charge you for all that area. The driver IC got hot because you have no ground pour underneath the thermal pad and also 0 stitching vias.
Lots of people in the comment section give a lot of criticism and doubts but I think what you do for other people is amazing, providing an info and solutions for complex problems for free! Keep it up, you are doing great.
Thank you for making code, the schematic, the PCB files open source!
A few comments: 1) You can put V-grooves on your PCB so they break off easier and cleaner. Putting a slot is a lot less aesthetic 2) See if some of your PCBs can be partly pre-assembled 3) Phoenix CNC on tindie has an arduino 328p bootloader burner that burns QFP chips in less than 3 seconds - definitely check it out so you don’t have to waste arduino boards 4) superglue is super temporary on anything that moves. Love your videos
A lot of PCB manufacturers charge you extra if you have snap off parts on your boards since they count them as separate circuits.
Don't worry about a magnet that would stay on a steel shaft anyway! The superglue is effectively permanent unless it gets above 150C or takes a large shock.
Two cents from my side for anyone watching this cool video and reading this comment 😊
First of, this is a nice introduction to the world of motor control, it covers some of the basics.
Second, some people said that FOC needs position sensor. Thats not true. There are sensorless FOC (read about BEMF or SMO observers)
Third, what we seen here its not even 5% of FOC, but is a good basis to build a basic FOC (im not saying its bad, im just saying that FOC is much more than setting PWMs based on angle input)
Fourth, having high pole-pairs is disadvantage, if you want to do FOC with uC which cost below 100€. Why? Angle sensor is measuring rotor mechanical position with some inaccuracy, which is only greater with more pole-pairs, since you need to do conversion to electrical domain.
Fifth, proper motor control (current, torque, speed) in proper closed-loop is one of the hardest things in embedded systems you can do, if you develop HW and SW from scratch.
Sixth, as much as this video is cool, please note, this is barely an introduction (stress on barely). For anyone trying to do these things professionally, keep in mind that you can only cover part of the field and not entire motor control. Field is just to vast.
Lastly, dont be discururaged when you fail. But also dont attempt such projects without having either immesne motivation to learn a few years or enough Control-Theory/Electronics/Firmware/Inverter knowledge to finish in one.
Can you make a project like this and make a video
@@anasdaggag3431 hey there! Gladly but it would take quite some time and I think I dont have enough audience to benefit from it 🥲
Thanks, after hour of research in the internet, you are the only one giving a clear response to how to do it simply
I guess the algorithm is working. video came up top on my feed. and its only 15mins old!
Loved the content, I just learned some new stuff today.
Just when im about to include FOC into a new project! :) Thanks!
Video is missing core parameters for FOC, like: Direct axis force and current (Id), Quadrature axis force and current (Iq), Space vectors etc. Happy to see in the next video.
Current sensing will ne next. For now it doesn't control the current value...
Content is allready super interesting! If you take it one step further and control currents and use them in another control loop that would be so awesome. I've been trying to do it with no success😅
Great job, but still not a FOC but you are doing a great job.
In the end, FOC is all about having your current vector being orthogonal to your magnetic field vector. If you can build your 3-phase signal without having to use transforms, then that's fine too. I.e. you don't exactly need these parameters.
Thank you!
I'm a fan of FOC drivers
so nice to see you revisit this! thanks!
Always a pleasure to watch your videos, always a highlight to see what you have what you have come up with.
Can you put via's under the controller chip, then make a larger ground plane (or even a 4 layer board) so the internal copper pours can act as heatsinks spreading the heat out away from the chip...use the copper and PCB as a heatsink
Very cool design...take a file or low grit sand paper and scuff the end of the shaft and back of the magnet before applying the glue, give is a rough surface to bond to.
Keep em coming!!!!
Ladies and gentleman, he really did it!!!
This is the product I've been looking for. Wonderful 👍 Hand soldering is tough, so I'd be thrilled if this becomes available as a PCBA or in shops.
Thank you so much, this video was very amazing and informative 😁 Would love to see more brushless motor content soon 👍
Interesting concept! Like it! Thx for sharing.
Love your channel and videos... please keep them coming. One possible content suggestion. I'm a novice about ready to dive into my first PCB from PCB way. I'm struggling a little with KiCad. Maybe a playlist with more detail for beginners / novice hobbyists on how to design a PCB and maybe a walkthrough with KiCad or open source equivalent. Anyway, great content as always. thank you.
I added this video to favorites as soon as I saw the thumbnail! What a great video! You always do a great job explaining the concepts and showing how everything works, really neat pcb designs btw! I wonder if you could add some thermal vias below the IC that gets hot to help with heat dissipation. Thanks for the video!!!
Amazing, thats give me an idea for a gauge, now only need to find small motors with a lot of poles
Loved the start. 😂😂
good job but I don't see the essence of FOC there. how did you solve the current measurement when you talk about torque regulation. I would also be interested in how he mastered the park and clark transformation atmga.
finally, I would recommend you to increase the pwm frequency above 20khz, you wouldn't have strange sounds there either.
The transforms are doable on ATMega if you use tables or CORDIC for the trig functions and fixed point math of course.
But he doesn't measure phase currents so no way to do the transforms without that.
Additionally, there is no way to use this ATMEGA for FOC @ 20kHz
Clock frequency is just too slow to be able to read angle, process currents, perform corrections, calculate DQs, do the PI, apply svpwm and repeat.
I mean you can do it in most basic form, but it's like putting lawnmower motor to a child toy chassis and call it a car.
@@AljazJelen1992 might be able to do the algorithm at 1kHz repetition rate, but yeah. Should go to some ARM CPU.
This IS FOC since the orientation of the magnetic field is explicitly controled by rotor position feedback. This isn't a complete FOC because there aren't explicit Iq and Id current loops, so it's open-loop with position PI as feedforward. So this design does benefit a bit from the concept of FOC, but not much. However it's hobbist-friendly and could serve as an entry project for any who wants to dive into real FOC.
Apply a low pass filter to both of your inputs into PID. That will help with runaways and shaking. Learned from FPV drones :)
This cannot work for angle input, as it will result in phase shifts which is for proper FOC (current control) undesirable.
Except if you then implement correction algorithms
I was waiting for this project and tutorial ! thanks
Good job.... Just a side note the more practical your content( not that you know how we would use it but rather how easy it if to take from you and then for us to implement it) the more obvious it is for us to subscribe like share... ect. No need to ask us to do this when the content is good.
Congratulations for the very interesting project of FOC driver controller. With the posibilty of a precise positioning, brushless motors can be a very good substitute for servos in apllications where quickly movment changes are ncessary. I looked the system control routine of the program and noted that it implements in fact a PD controller instead a PID (lacks the integral gain and also the intergral term calculation). For applications where quick corrections are nedded it is the appropriated kind of controller to be used, and it is the case here. Anyway it would be interesting make a test adding the integral parcel and see the behavior of the motor positioning, after all the integral parcel remove the steady-state error.
Good stuff! More vids like that please.
Love this channel! 🎉 Could you do a video on controlling a hub motor with the sensorless esc? 😊
could you add more MOSFETs in parallel to get more current?
Good job! Smart knob is based on this technology!
Like others have said, I look forward to state space implementation. :)
FOC relates to a coil-magnet interaction. What you made is a position reader. It could be made as an optical device, variable capacitor, counting of pulses, etc. which “field” then it would? Posted.
great tutorial on FOC, thanks for the tutorial!
This still isn’t really FOC is it? Doesn’t FOC control the current through the coils rather than just setting a PWM duty cycle?
Hi, I have a question about shunt feedback commonly used below H-bridges. I noticed that your design doesn’t include this shunt. Could you explain its purpose? Many setups place shunt resistors below the bridge for current measurement, and stepper motor bridges often use these shunts for adaptive control, adjusting based on the torque demands of the stepper motor. Could you clarify the role of this shunt and why it’s not included in your design?
This just so happens to be my research topic at uni.
Para contar las vueltas puedes utilizar este algoritmo:
Sabiendo que el AS5600 tiene una resolución de 4096 puntos por revolución, entonces:
* dif --------> diferencia entre pasado y presente.
* num -------> Valor actual del encoder.
* last ---------> Valor anterior del encoder.
* turns -------> número de vueltas.
* steps -------> Pasos totales.
dif = num - last; // Guarda la diferencia entre el valor nuevo y el valor anterior (pasado).
last = num; // Y ahora guarda el valor actual como pasado.
if (dif < -2048) turns = turns + 1; // Comprueba si ha pasado por cero para contar una vuelta (cuando pasa de 4096 a 0) o descontar una vuelta (cuando pasa de 0 a 4096).
else if (dif > 2048) turns = turns - 1; // Esto se consigue si en la lectura del encoder el valor anterior y actual cruza ese umbral y está dentro del rango del "if".
steps = (long)(turns * 4096L) + (long)num;
El problema lo vas a encontrar si cuentas vueltas de forma muy rápida, probablemente deje de contar bien. No es problema del algoritmo de contar vueltas, sino de la lentitud en la ejecución. Se necesitaría acceder al AS5600 por interrupción.
Hi,
Have you by any chance updated your SimpleFOC V2 PCB design to include ISP pins for loading the bootloader? I ordered some of your V2 boards from PCBWay but it is awkward get the bootloader on the bare ATMEGA329P. If not would it be possible to have your original design files so I could try and modify it?
Ernie
Are the files at PCBWAY updated with the programming pins?
You need to replace the AS5600 with a better sensor. It's not really meant to be used to way you're using it, with a spinning device, and is ideally meant to be used in an object with a fixed rotation of under 360 degrees, with the hard angles recorded in the one write PROM for permament use.
Try the MT6701 :D
Thanks so much for the tip!
Waw, this looks really awesome!!
I see motors and circuit boards: can’t help but watch
Another cool project! Thanks!
Please make this into a product! A bldc Arduino server motor that can either be used as an Arduino servo to play around directly or as cheap and quiet servo modules that get commands via serial or can bus. Would be amazing for some projects 😄
could you do a part 2, where you implement other control schemes and using z domain to properly implement a difference eq as a compensator?
very entertaining video
This is a good video for FOC basics well done man.
A request, Please can you make a tutorial for SimpleFOC library? If possible for esp32 it would be of so much help.
What name of BLDC you use in this video
I was about to ask the same question
Tarot 4108
Tarot 4108
Hi! In one of your previous videos, you mentioned that using the INA3221 is a great choice for measuring each phase of a BLDC motor. I'd like to use it to create a custom ESC for a drone, but I'm not sure how to wire this sensor in EasyEDA. Could you guide me through the process? Can I send you an email for more details?
Brilliant video and work ❤
Awesome video as always
Is it rectangular hole to easy cut out 2nd pcb
Is the code displayed on your tutorial page, the most up to date code? I've built out your schematic on protoboard and all the hard ware is working correctly however motor does not react to the potentiometer turning accept for a tiny twitch at one point. The motor also doesn't return to its original position if I turn it by hand. The hardware does work with your original code without feedback. I noticed will printing out the values for "SPMValueA = ElectricalPosition + RotationDirection + SyncOffset;"
that the value goes up to 7471 but if value B and C are adding 120 to this then they realistically make no difference when changed to %360
How can I PERFECTLY center the magnet on the axle?
I know the as5600 communicates over i2c. What if this motor driver has to taklk to something else. Now the i2c bus is constantly being use. Is there another position sensor or another bus that can be used?
Your sensor is the as5048a, which only does SPI and PWM, if you want I2C you need the AS5048b
Doesn't FOC mean the motor is controlled with a current that is always in a phase such as to maximize torque? I can't verify that, but i see that there is a position feed back.
What bldc did you use? Link please :)
Many thanks for your great work!
can we reduce bldc noise sound?
Is it possible to use back EMF to control motor without sensor?
can you share the link for the motor?
What motor are you using, and what torque are you getting?
Thank uou for another awesome video.
i have a question: what are the inputs and outputs of the PID? Since you used a sine wave, you were able to precisely control the position of the rotor, right?
The output is the torque
Did you use SPI or I2C to talk to the AS5048, as this module only supports SPI. It doesn't look like you're able to use SPI with the breakoutboard
Forget about either, if you want higher speed torque control.
Except if you can implement observers
Wonderful video...😊😊
Nice job exactly what I am currently working on. This is helpful. Do you intend to expose the SPI on a 2.2 revision of your gerber, because I don't feel like butchering some arduino dev boards just in order to get this cheap part.
hey! do you need PCB supplier? i can help you.
Nice project!
You are the best
Can we only use internal sensored brusless 3 phase motor? So we can get rid zero crossing sensor and the hall effect sensor?
Internal sensored motors just have Hall effect sensor inside them. They tend to be more expensive too, just attaching a magnet to the back of the motor shaft is usually a better option.
All wishes are with you
Great work man
Quick question: How do you design your PCB use MOSI and MISO, SCL and CS to burn bootloader? Do you use jumpers to select these pins as inputs for burning bootloader (from Arduino Nano) and then when its the job is done select these jumpers to whatever you need in the project?
The atmega328 has those pins as default mosi miso on pins 11 12 ad 13. You Don't need any jumper just add pads dor the pina and that's is
Hi, congratulations!
What do you think about to add an external Floating Point Unit, or a cheaper 32bit microcontroller(stm32f103c8t6) for the math calculations with SPI communciation?
If you plan to use current control, forget about SPI, it's too slow.
If you want to find cool ready-to-use HW, then check STM32G431 ESC. It's perfect for proper FOC
Where can I buy this motor?
Hi, I found your FOC V2 project very interesting, so much so I have ordered a few of your PCB boards from PCBWAY to try. But if you don’t mind I would like to ask a couple questions as I am new to the world of SMD PCM manufacturing.
Q1) I think R3 (NTC) is a temperature sensor! Does it have a value? And where did you source it from?
Q2) R4 on your schematic does not have a value what should it be?
Q3) Diodes D1 & D2 did you source them from Aliexpress?
Q4) Where did you source the LED1 from?
Thanks for a great insight into FOC.
Ernie
hey! do you need PCB supplier? i can help you.
@@Janezeng-v9z Hi, thank you for the offer but I have already ordered and received some PCBs.
I don't think foc (field-oriented control) could be used for positionn control since foc maintains a 90 deg between d and q axis of voltage or current which requires constant speed to maintain
However, i still like this video for demonstrating position control
Foc usually requires reading phase currents then converting them to d and q axis forms using park and clarke transforms, then having PI controller for the command of voltage d and q axis then converting it back to phase voltages through park and clarke transforms
I don't think arduino could handle such calculations in high speeds unless theres a library for that
Awesome work.
I am waiting for your helicopter video. You explained in previous video how the helicopter moves up down back forward.
hi! why are you using a rather expensive driver ($12)? why don't you use DRV8313 ($2) or DRV8323 ($3) or some cheaper ones?
Great content!!
Привет! Извини, что пишу по-русски, по-английски не умею:)
Я купил ту же микросхему, что и у вас, но в dip корпусе. Собрал по той же схеме, но она работает не конкретно. С маленькими моторами она вообще не работает: моторы дёргаются, сильно греется мотор и драйвер и все. С большим мотором, подобным вашему работает, но он крутится очень медленно в режиме установки скорости. Я даже модернизировал код, но ничего не помогает :( Даже большой мотор начинает дорожать и дёргаться при таких же скоростях, как у вас в видео. Само движение тоже рваное, мотор заметно дёргается при движении. Пробовал даже ставить конденсаторы в различные места, но ничего не помогает. В чем может быть проблема?
P.S. посмотрел видео немного дальше. Вы сказали, что схема не будет работать с моторами от дронов. Ок. Мой большой мотор имеет 18 катушек. Неужели этот мало?
Bro i want help to program arduino i am confused plz respond
Sir why you did not use esp32? you always use Arduino
Thank you!
Brother I m really Grateful for your video, Can you please try Closed Loop control In Simple FOC mini Board I tried so much But i couldn't make it work, Thanks ❤
Sir what about ur MPPT SOLAR CHARGE???? Fast finish the changer the make other videos
Don’t PCB manufacturers not like you having snap off parts? Don’t they charge extra for that since it is separate circuits? With PCBWay don’t you need to select “Panel by Customer” and set the number of different designs which in this case is 3?
hey! do you need PCB supplier? i can help you.
What a beautiful project! Andrei, I want to be your friend - would you?🤣Contact me! I spent a week playing with the AS5048A - the one that communicates over SPI, instead of I2C. It communicates way faster than the AS5600 (roughly 10x faster) - but the readings were more nosy. I still don't know if that's just because it has a 14 bit resolution instead of a 12 bit... Also, the AS5600 has 2 internal modes: when it is rotating fast, it is also noisier - when the speed reduces, it uses some filtering to provide more steady readings.
Thanks fot your message, I've seen other posts using it with i2c but I wasn't able to make ir work that's why I've only used the 5600.
👍👍👍
Thanks!
Great video
Отказался от AS5600 в пользу MT6701. Выгоднее по скорости и вариантам вывода данных, да и точность хорошая - 1024 деления на оборот.
I electonoobs i am a fan
brilliant :]
Can you do this on Arduino?
What? This is Arduino code!
@@ELECTRONOOBS What is the name of the motor driver used?
That's a really really bad way to panelise the PCBs, they will draw a square around it which will contain large gaps and they will charge you for all that area.
The driver IC got hot because you have no ground pour underneath the thermal pad and also 0 stitching vias.
Excellent
I’m interest in this
Just to let everyone know
Nice video
Nice!