VOXL 2 ESC Calibration Custom motors and battery
-
@Alex-Kushleyev said in VOXL 2 ESC Calibration Custom motors and battery:
./voxl-esc-spin.py --id 0 --power 50 --ramp-time 3 --timeout 4
this is what i received, this is at 70% i think if i go any higher it fly away... we dont plan to use this much power, i think the most we will use is 60%, its for close to ground flights and indoor testing. what are your thoughts?
also we chose these motors and propellers so it could have a clean takeoff and hover easily, weve tried with lower sizes and 7 inch propellers and found that this size and propeller would be better for our use cases. i can definitely add more cooling if necessary
-
OK, that looks like it is reasonable. To be safe, you should perform the calibration with maximum pwm 70 instead of 95 which is the default (using
--pwm-max 70
option). Also in the esc param file, you can limit your rpm to about 14000, so that ESC will not try to go over 14000.So you should follow these steps:
- calibrate the motor with propeller with max power 70
- use the following xml file as starting point: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/dev/voxl-esc-params/old/esc_params_modalai_4_in_1_revb_holybro2216_880_half_kp.xml
- update the rpm curve from your calibration results
- set max rpm to 14000 for safety (for now)
- set min rpm to whatever RPM the motor spins at about 10% power with propeller
- set kp and ki to 0 for now to make the controller softer so that you dont have large current spikes
- set max_rpm_delta to 1500 or so (this kind of a slew rate limit on how fast the motor should jump from one rpm to another).
- save xml and upload it to the ESC
- perform a few rpm-based tests (voxl-esc-spin.py --rpm <desired_rpm>).
- note that if you use the
--timeout
feature and--enable-plot
, the rpms will be be plotted usingplotly
- may need to install it usingpip3 install plotly
Once you have done basic tests, spin up all 4 motors and test ESC temperature at different rpms. The MCU is rated to 105C internal temperature, but you should not push it. I would say 80-90C is a good maximum to try to achieve. With good cooling, hopefully that wont be an issue. ESC temperature is printed by the test script, as you have probably seen already. To check steady-state ESC temps at different motor rpm, you should run it for 1 minute or so, if you see ESC temp going above 100C, probabaly should terminate the test and evaluate results.
If you command high rpm in the spin script, maybe use
--ramp-time
option to avoid all 4 motors just jumping to like 14000 rpm which could draw huge currents (probabaly over 100A total for a short period of time, if all 4 motors are spinning)To spin all 4 ESCs at the same time, use
voxl-esc-spin.py --id 255 --rpm <desired_rpm>
, then all 4 motors should spin and feedback from all 4 will be printed -
Note that in the xml param file, you keep the 7 pole pairs, as already set in this param file, because your motor has 14 poles (7 pole pairs):
-
@Alex-Kushleyev thank you! im going to follow your instructions and will update you when finished
-
This post is deleted! -
@Alex-Kushleyev Update: it looks as though during my testing, 2 mosfets unsoldered themselves. I think it may be best to try something else, im glad we went through this, as we plan on getting a second voxl2 and plan on making very small and compact compared to this one.
We want to try again with calibration, but it looks like we will need the voxl2 i/o if we want to use these motors with 40 amp escs. Is there setup necessary? And Do you have a gitlab link for esc calibration steps regarding voxl 2 i/o?
And Once again, thank you
-
Hello @Luis-Fernando-Landivar ,
Sorry to hear that the ESC overheated. It must be due to the high currents. Usually in this condition you would want direct airflow from propellers over the mosfets. Out of curiosity, can you share what test you ran, for how long and what temperature and currents did ESC report?
I will check regarding status of voxl 2 I/O board. What protocol will your ESC use? Standard PWM / OneShot125, Dshot, etc..
Alex
-
@Alex-Kushleyev we ran 70%, had a 12v cooling fan attached, 50% and 60% went well temperature was below 80c for full minute runs. 10 seconds in for 70%, 130c , it unsoldered itself, i knew it was a possibility and these things happen so no harm at all, simply means we must try another approach. As for the data you were asking, is there a log somewhere, so i can give you detailed information? and we plan on using standard pwm.
-
in the folder where you ran the
voxl-esc-spin.py
command, there should be a logs folder with txt logs. You should be able to find your log by looking at 9th column which is temperature in deg C, look for 130 :). If you are able to provide, the log, it would be great, i can use it to check if the ESC performed as expected. Please email the log file to me (email address in my profile. thanks!) -
By the way, you mentioned that you used 12V cooling fan.. That is not typically how the ESC cooling is done for high current applications on drones. The ESC is usually placed near direct airflow from propellers, which provide a huge amount of air flow, so ESC can be cooled effectively. Maybe this will help in the future..
-
@Alex-Kushleyev hello again, ive tried to locate your email, but could not find it, im not too familiar with the forum i think, but i have uploaded it to a link from file.io so you can download it. here it is https://file.io/APX5CPUzx56I also, have you had the time to check the voxl 2 i/o board?
let me know, thank you for all your help
-
my email is akushley (at) modalai . com
Sorry, i thought it was visible.
By the way, the file you uploaded is no longer available, so could you please email the log to me? thanks!
PX4 IO currently supports only 1-2ms PWM output, but it is better to use OneShot125 or DShot, which we are working on as well. Do you have the VOXL2 I/O board? I am still checking if we have a better option for you.
Alex
-
@Alex-Kushleyev we have ordered the voxl2 i/o board and we will receive it the 21st of this month and Thank you for taking the time, we appreciate any help you can provide.
just want to mention we are loving the voxl 2 so far, we cant wait to begin test flying, your team has done great work!
-
Hello @Luis-Fernando-Landivar ,
I plotted the data from your log, please see below. I do see something strange that happened that ESC ID 0 started spinning at about 36K RPM after initially spinning at about 14K RPM for 9 seconds. This is quite strange - did you notice anything strange about that motor?
Another strange thing is ESC temperature 3 is much cooler than others, maybe you had the 12V fan blowing closer to that MCU?
There are varying currents seen in all 4 ESCs - maybe the airflow from all the motors was interfering with the load on propeller (did you have the quadrotor in an enclosed space like a box?)
Alex
-
@Alex-Kushleyev The area we tested it was on a table and we held it down using some straps. The ID 0 ESC that changed in rpm is the one that became unsoldered, we noticed something wrong immediately since it would spin the propeller 2 rotations slowly then stop and repeat.
as for the fan, it was covering the whole 4-in-1 esc, one thing that mightve been an issue, maybe that it might’ve been too close and airflow couldn’t have been pulled efficiently.
-
Thank you for the details. Quick question: did 12V fan blow on the Mosfets or on the side with MCUs?
-
@Alex-Kushleyev yes, it was blowing air away from the esc board, it was the side with the mcus, looks like
-
OK, then I think I understand what happened. The 12V Fan was cooling the MCUs, but since the temperature measurement is done inside the MCU itself, the temperature of Mosfets is not known.
In general it is always better to put air flow on the Mosfets, not MCU, because Mosfets produce heat.
I think this explains the behavior when MCU was reading about 90C but ESC started behaving strangely -- the Mosfets were likely much hotter and got de-soldered..
Alex