Page 3 of 7
Re: Balancing during the assembly
Posted: Thu May 16, 2013 6:09 pm
by DesTinY
TheFrog4u wrote:It might be usefull to know which acceleration value is defined as beeig 100% and which 0% (I assume something like 0.6 to 2.0)?
I am still looking for good values, but actually 100% = 0.65-0.77 depends on spin direction (yes different acceleration in different spin direction

) and 0% = >3.2
BAD level is accX>1.6, accY>1.6, accZ>4.0, FAIL level is accX>3.2, accY>3.2, accZ>8.0 (all values in G)
I planning to made a Client Tab for propeller balancing, than it should be possible to calibrate the balancing much better and measure the acceleration of the motor without the propellers and use this as 100% value for next measures (with propellers).
bhuism wrote:Will you be doing a pull request on the official repo?
I'm waiting for some feedback. Good to know were the values of the condition without the propellers from other users. I fear that there are significant quality differences in the motor production as well.
Here is a CF balancing self test FW with higher information level for that.
Code: Select all
SYS: Crazyflie is up and running!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871443555456854966FFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 102 percent
MPU6050: Propeller on M1 [OK]. X_max: 0.687, Y_max: 0.618, Z_max: 0.707
MPU6050: Propeller on M2 [OK] Condition: 102 percent
MPU6050: Propeller on M2 [OK]. X_max: 0.637, Y_max: 0.619, Z_max: 0.610
MPU6050: Propeller on M3 [OK] Condition: 101 percent
MPU6050: Propeller on M3 [OK]. X_max: 0.678, Y_max: 0.653, Z_max: 0.705
MPU6050: Propeller on M4 [OK] Condition: 100 percent
MPU6050: Propeller on M4 [OK]. X_max: 0.642, Y_max: 0.650, Z_max: 0.620
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
NOTE: This version stops printing, if you are not connected during the test, becourse the prints are queued offline and the upper limit of the buffer will be reached. After connection the test will continued.
Source code is on:
Bitbucket Repo Link
Re: Balancing during the assembly
Posted: Thu May 16, 2013 7:12 pm
by bhuism
Good that you will submite, here are my values (tested twice 2 be sure), I think it flies fine, but its a bit banged up
Code: Select all
ng!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [BAD]. Y_max: 2.162 (low: 0.300, high: 1.600)
MPU6050: Propeller on M1 [OK] Condition: 42 percent
MPU6050: Propeller on M1 [OK]. X_max: 1.162, Y_max: 2.162, Z_max: 1.804
MPU6050: Propeller on M2 [OK] Condition: 55 percent
MPU6050: Propeller on M2 [OK]. X_max: 1.281, Y_max: 0.942, Z_max: 1.353
MPU6050: Propeller on M3 [BAD]. Y_max: 2.78 (low: 0.300, high: 1.600)
MPU6050: Propeller on M3 [OK] Condition: 38 percent
MPU6050: Propeller on M3 [OK]. X_max: 1.75, Y_max: 2.78, Z_max: 3.291
MPU6050: Propeller on M4 [OK] Condition: 59 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.209, Y_max: 0.972, Z_max: 1.90
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
ng!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [BAD]. Y_max: 1.946 (low: 0.300, high: 1.600)
MPU6050: Propeller on M1 [OK] Condition: 46 percent
MPU6050: Propeller on M1 [OK]. X_max: 1.181, Y_max: 1.946, Z_max: 1.486
MPU6050: Propeller on M2 [OK] Condition: 50 percent
MPU6050: Propeller on M2 [OK]. X_max: 1.584, Y_max: 1.67, Z_max: 1.231
MPU6050: Propeller on M3 [BAD]. Y_max: 2.214 (low: 0.300, high: 1.600)
MPU6050: Propeller on M3 [OK] Condition: 37 percent
MPU6050: Propeller on M3 [OK]. X_max: 1.94, Y_max: 2.214, Z_max: 3.221
MPU6050: Propeller on M4 [OK] Condition: 72 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.23, Y_max: 0.721, Z_max: 0.969
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
Re: Balancing during the assembly
Posted: Thu May 16, 2013 7:29 pm
by bhuism
Here some more tests, now on a non slippery couch, so the CF will not slide/vibrate a bit during the test, now they all test OK.
The previous test in the earlier post was done on a modern flat table, I think thats why the show BAD on 2 motors.
BTW: the fourth motor test starts after connecting. Only the blue light stays on after 3 motors tested, then after connecting the fourth motor tests, and you can fly.
Code: Select all
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 53 percent
MPU6050: Propeller on M1 [OK]. X_max: 0.802, Y_max: 1.388, Z_max: 2.323
MPU6050: Propeller on M2 [OK] Condition: 66 percent
MPU6050: Propeller on M2 [OK]. X_max: 1.98, Y_max: 0.673, Z_max: 1.417
MPU6050: Propeller on M3 [OK] Condition: 44 percent
MPU6050: Propeller on M3 [OK]. X_max: 0.936, Y_max: 1.536, Z_max: 3.463
MPU6050: Propeller on M4 [OK] Condition: 61 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.53, Y_max: 0.927, Z_max: 1.146
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
SYS: Crazyflie is up and running!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OIMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 53 percent
MPU6050: Propeller on M1 [OK]. X_max: 0.883, Y_max: 1.393, Z_max: 1.914
MPU6050: Propeller on M2 [OK] Condition: 61 percent
MPU6050: Propeller on M2 [OK]. X_max: 1.163, Y_max: 0.763, Z_max: 1.443
MPU6050: Propeller on M3 [OK] Condition: 45 percent
MPU6050: Propeller on M3 [OK]. X_max: 0.973, Y_max: 1.540, Z_max: 2.901
MPU6050: Propeller on M4 [OK] Condition: 57 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.223, Y_max: 0.871, Z_max: 1.347
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
Re: Balancing during the assembly
Posted: Thu May 16, 2013 8:40 pm
by DesTinY
Thanks a lot for testing und posting bhuism!
My standard test place is on a stable flat table, if you put it on a soft surface the measurement will distorted.
Maybe we could define this (see Pic) as standard measurement environment.

But for future tasks of the balancing test (after a crash) it should work on your first lift of position (mostly flat stable surface).
BTW: Please check your motor mounts on M2 and M4. I see in you first test post, that maybe your motor cables look out the motor mounts.

That course to vibrations during the test on M1 and M3 and more importantly it will destroy your motor cable in the near future

.
Can you make a recording without propellers for me, but
attention see here
Removing propellors Do this only if you dare.
Re: Balancing during the assembly
Posted: Thu May 16, 2013 9:47 pm
by bhuism
The image with your red arrow it not my CF

but by pure coincidence I did open a new subject on this topic

cause I have that problem too, putting the motors a bit more inside helps, but not a permanent solution I think, see my other topic.
Result without the propellers (on a flat surface, I don't have that foam available):
Code: Select all
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 85 percent
MPU6050: Propeller on M1 [OK]. X_max: 0.696, Y_max: 0.626, Z_max: 1.312
MPU6050: Propeller on M2 [OK] Condition: 103 percent
MPU6050: Propeller on M2 [OK]. X_max: 0.587, Y_max: 0.549, Z_max: 0.756
MPU6050: Propeller on M3 [OK] Condition: 85 percent
MPU6050: Propeller on M3 [OK]. X_max: 0.728, Y_max: 0.623, Z_max: 1.224
MPU6050: Propeller on M4 [OK] Condition: 106 percent
MPU6050: Propeller on M4 [OK]. X_max: 0.588, Y_max: 0.528, Z_max: 0.725
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
SYS: Crazyflie is up and running!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 89 percent
MPU6050: Propeller on M1 [OK]. X_max: 0.674, Y_max: 0.637, Z_max: 1.75
MPU6050: Propeller on M2 [OK] Condition: 102 percent
MPU6050: Propeller on M2 [OK]. X_max: 0.590, Y_max: 0.555, Z_max: 0.766
MPU6050: Propeller on M3 [OK] Condition: 88 percent
MPU6050: Propeller on M3 [OK]. X_max: 0.720, Y_max: 0.629, Z_max: 1.75
MPU6050: Propeller on M4 [OK] Condition: 106 percent
MPU6050: Propeller on M4 [OK]. X_max: 0.581, Y_max: 0.531, Z_max: 0.725
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
Happy to help
Re: Balancing during the assembly
Posted: Thu May 16, 2013 9:58 pm
by bhuism
Last test
with new propellers:
Code: Select all
SYS: Crazyflie is up and running!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x871145435456854966EFF50 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OIMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 54 percent
MPU6050: Propeller on M1 [OK]. X_max: 1.502, Y_max: 1.15, Z_max: 1.368
MPU6050: Propeller on M2 [OK] MPU6050: Propeller on M2 [OK]. X_max: 1.271, Y_max: 0.846, Z_max: 1.385
MPU6050: Propeller on M3 [OK] Condition: 59 percent
MPU6050: Propeller on M3 [OK]. X_max: 1.294, Y_max: 0.930, Z_max: 1.337
MPU6050: Propeller on M4 [OK] Condition: 73 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.31, Y_max: 0.681, Z_max: 0.977
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
Re: Balancing during the assembly
Posted: Fri May 17, 2013 8:01 am
by tobias
DesTinY wrote:TheFrog4u wrote:It might be usefull to know which acceleration value is defined as beeig 100% and which 0% (I assume something like 0.6 to 2.0)?
I am still looking for good values, but actually 100% = 0.65-0.77 depends on spin direction (yes different acceleration in different spin direction

) and 0% = >3.2
BAD level is accX>1.6, accY>1.6, accZ>4.0, FAIL level is accX>3.2, accY>3.2, accZ>8.0 (all values in G)
Defining a good 100% value might be impossible as there are so many variables involved such as:
* How motor is fitted in the motor mount
* How the motor mount is fitted on the PCB arm
* How the vibration travels from the motor/prop to the sensor
* ...
Maybe taking the raw sensor noise as 100% is a simple way to go but that would mean the values would be way from 100%. Then skipping the percent might be a simple solution and just have a threshold value. So e.g. anything above 20 is a good balance but the higher value the better (but it is still a kind of percentage with 100 as max)?
Re: Balancing during the assembly
Posted: Fri May 17, 2013 9:14 am
by DesTinY
How the balancing self test works (in short): see
bool mpu6050PropellerBalancingTest(int motorId)
1. Based on the
mpu6050SelfTest()
2. First measure the environment (motors off); noise only.
3. Take second measurement (100 samples of all 3 axis) with motor on and choose the max one.
4.
axfDiff = difference between first and second measurement.
5.
conditionX (x axis of motor x) =
( faktor / axfDiff ) * 100.0; faktor= 0.650 means acceleration value of the motor without propellers. faktor is not measured by now.
6.
conditionSum = (int)((conditionX + conditionY + conditionZ) / 3.0); information would be lost here but better for quick balancing. conditionSum is only for Printing.
7. independent of the conditionSum the report level OK/BAD/FAIL would be displayed OK = acceleration< 1.6G; BAD = acceleration< 3.2G; FAIL= acceleration> 3.2G;
8. report level according to conditionSum:
FAIL= 0%-20%, BAD= 20%-40% OK= 40%-100%.
Re: Balancing during the assembly
Posted: Sat May 18, 2013 9:45 am
by TheFrog4u
ok, tested on flat table:
Code: Select all
SYS: Crazyflie is up and running!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x872023395356854966EFF54 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 72 percent
MPU6050: Propeller on M1 [OK]. X_max: 1.62, Y_max: 0.740, Z_max: 1.122
MPU6050: Propeller on M2 [OK] Condition: 87 percent
MPU6050: Propeller on M2 [OK]. X_max: 0.733, Y_max: 0.679, Z_max: 0.779
MPU6050: Propeller on M3 [BAD]. Y_max: 1.764 (low: 0.300, high: 1.600)
MPU6050: Propeller on M3 [OK] Condition: 43 percent
MPU6050: Propeller on M3 [OK]. X_max: 1.56, Y_max: 1.764, Z_max: 2.439
MPU6050: Propeller on M3 [OK] Condition: 45 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.262, Y_max: 1.354, Z_max: 1.644
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
MS5611: Self test [OK].
tested on foam (the one that is included in the cf box):
Code: Select all
SYS: Crazyflie is up and running!
SYS: Build 40+:601803a36702+ (tip) MODIFIED
SYS: I am 0x872023395356854966EFF54 and I have 128KB of flash!
IMU: MPU6050 I2C connection [OK].
IMU: HMC5883 I2C connection [OK].
IMU: MS5611 I2C connection [OK].
MPU6050: Self test [OK].
MPU6050: Propeller on M1 [OK] Condition: 73 percent
MPU6050: Propeller on M1 [OK]. X_max: 0.971, Y_max: 0.748, Z_max: 1.164
MPU6050: Propeller on M2 [OK] Condition: 83 percent
MPU6050: Propeller on M2 [OK]. X_max: 0.779, Y_max: 0.677, Z_max: 0.852
MPU6050: Propeller on M3 [OK] Condition: 49 percent
MPU6050: Propeller on M3 [OK]. X_max: 1.15, Y_max: 1.409, Z_max: 2.53
MPU6050: Propeller on M4 [OK] Condition: 52 percent
MPU6050: Propeller on M4 [OK]. X_max: 1.63, Y_max: 1.79, Z_max: 1.690
MPU6050: Propeller Balancing Self Test [OK]
HMC5883L: Self test [OK].
so on foam u get a few percentage points more, but in genereal the results are quite equal (which is good) -hover I seam to have issues with motor 3 and 4. Will try to change the propellers and see how the results change.
However its already seems to fly quite well.
BTW: Thanx very much for your cool mod!

Re: Balancing during the assembly
Posted: Sat May 18, 2013 9:57 am
by DesTinY
You're welcome
TheFrog4u wrote:...Will try to change the propellers and see how the results change.
That's the right way to use the mod!
Maybe you can post a capture from the balancing self test without the propellers too. I try to find out if there are differences in the motor conditions too.
Thanks for testing!