Hey guys,
so I finally received my VESC 6.4 hardware from trampa yesterday almost one week later then most of you, but better late than never. ;) In this thread I will write down my experience with the new hardware and things that I noticed.
Lets begin with some general info about my setup I tested the new hardware with first. It is an electric bicycle with an MXUS 3000W v3 motor with 11.9kv and a 11s 10000mAh Hobbyking Multistar battery with a max constant discharge current of 50 ampere. (the data sheet says the constant current could be higher, but I found out that the 50A is the max I should use) The motor has build in hall sensors and a PTC temp sensor that is hopefully supported in a future firmware. The VESC 6.4 hardware gets its throttle commands over a 3.3V poti that is build into a throttle handle, the hardware itself is in a bike bag so no airflow for cooling is available and connects to the phone over bluetooth via the metr.at iOS and Android application for logging. Please notice that I got a BETA version of the app to be able to connect to the new firmware.
I tested in FOC mode with the following VESC settings: https://www.dropbox.com/sh/jdsx2m3jhbmuh73/AAAaXIfjwrszP68z2n-gVSr8a?dl=0 So a max battery current of 50A, a max motor current of 100A (max value of VESC-Tool) and a absolute max current of 150A. I think that are the most important aspects about my setup so lets start now with things that I noticed:
1. With these current limits (bat. 50A/ mot. 100A/ absolute 150A) I often get over current faults when hitting full throttle from a stand still. An example fault code looks like this:
Fault : FAULT_CODE_ABS_OVER_CURRENT
Current : 150.3
Current filtered : 147.2
Voltage : 43.48
Duty : 0.295
RPM : 3054.0
Tacho : 287273
Cycles running : 31776
TIM duty : 2475
TIM val samp : 2
TIM current samp : 4200
TIM top : 8400
Comm step : 0
Temperature : 44.97
I uploaded a txt file with a lot of these faults here: https://www.dropbox.com/sh/s2x1uz63p19rumq/AACNc7UqePlwQv_lNDxkGFOta?dl=0 You can see that every time the current is slightly higher than that 150A (the absolute max current) the error code is thrown. It isn’t clear for me how that is possible when I set the battery current to 50A and the motor current to 100A, so way lower than the 150A. Maybe it is kind of an overshoot before it could be controlled back to the targeted value. I also noticed this behavior with the old firmware and HW4.12, but I was thinking that this was a problem because of the only two shunts sensing the current. You can see some of that faults in that metr.at log: https://metr.at/r/SfoN8
It is very interesting, that the behavior changes over time. So lets say the first five starts from standstill with full acceleration leads to over currents with the VESCs output shutting down for a moment. The next three acceleration from standstill with full throttle stutter a bit like you can hear in that video: https://www.dropbox.com/sh/o0s67u92uj0uz1u/AABFi_D3L8ju7Z0d9fEcSrzGa?dl=0 and after that it works normally without stuttering and faults at all. The behavior isn’t that consistent as described, but there is definitely a coherence over time. The only possible explanation I have right now is that the motor and even more the VESC itself gets warm over time. This leads to a disappearance of the fault. So is this over current in my situation a bug?
2. The acceleration in FOC mode (didn’t test BLDC mode yet) feels a lot more gentle than in the old firmware. What would be good for electric skateboards feels bad on the bike. It now feels like there is a little delay between the full throttle input and the acceleration. I think it is comparable with the turbo lag from a car before the turbocharger kicks in. You also notice it when giving full throttle with the motor free wheeling. The feeling is different to the old firmware. Maybe that is just a different setting from one of the FOC parameters. I don’t know. I would like to have the acceleration kicking in harder when I am giving the related throttle command. Someone knows how to achieve that?
3. I did the FOC detection of R and L three times with a 3s battery and three times with a 11s battery:
3s-1.: R=26,63mOhm L=52,85μH KP=0,0529 KI=26,63
3s-2.: R=24,78mOhm L=53,10μH KP=0,0531 KI=24,78
3s-3.: R=24,82mOhm L=53,05μH KP=0,0530 KI=24,82
11s-1.: R=26,21mOhm L=50,12μH KP=0,0501 KI=26,21
11s-2.: R=31,57mOhm L=50,14μH KP=0,0501 KI=31,57
11s-3.: R=31,42mOhm L=50,07μH KP=0,0501 KI=31,42
and also the λ detection three times with a 3s battery and three times with a 11s battery:
3s-1.: λ=20,291mWb Observer Gain (x1M)=2,43
3s-2.: λ=20,295mWb Observer Gain (x1M)=2,43
3s-3.: λ=20,285mWb Observer Gain (x1M)=2,43
11s-1.: λ=20,133mWb Observer Gain (x1M)=2,47
11s-2.: λ=20,153mWb Observer Gain (x1M)=2,46
11s-3.: λ=20,155mWb Observer Gain (x1M)=2,46
As you can see the measured inductance and even more resistance values are noticeable different between the 3s and the 11s measurement. I think the difference isn’t that big, but should everyone use the target voltage he want to use afterwards also for the detection? I read somewhere that some people prefer detecting the parameters on a lab power supply with a low voltage. What would be better?
4. The switch to change the sensor voltage between 3.3V and 5V isn’t good accessible from the outside without opening the case. It is very hard to even see what the current switch position is from the outside.
5. It looks like TX and RX have changed their position. But is it right that the pin from the old hardware „TX SDA NSS“ has changed to „RX SDA NSS“ and „RX SCL MOSI“ has changed to „TX SCL MOSI“? So just the UART is swapped and the I2C and SPI are the same arrangement?
6. As you can see in that metr.at log https://metr.at/r/4VYCT the motor current is reaching 99,9-100,1A of the 100A max motor current that was set up, but the battery current only gets to 48,6A of the 50A max battery current. When I look at old logs from the VESC 4.12, there the battery current was also reaching the 50,0A of the 50A max battery current set up. The 1,4A is not a big difference, but I noticed it so I write it down.
7. As you can see in the same log, the temperature of the new hardware in the aluminium case doesn’t rise that fast, but when the case is heated up it also takes a lot of time to cool down. I set the temperature limit start to 80°C and the end to 90°C. The max temperature I reached was in that run with 86°C: https://metr.at/r/5a2Vc So when hitting the throttle very hard on a already quite hot VESC 6.4 it is definitely possible to reach the temp limit.
Thats it for now. I will add later what I forgot to mention in that post. I hope to get the over current situation fixed and that someone find this write up useful. Don’t forget that english is a foreign language for me, so excuse some mistakes and typos. :D Thanks.
Thanks for the detailed report.
1. The current faults could be caused by the motor starting to go into saturation and changing parameters. I noticed that the same thing happens at lower currents with smaller motors when they get into saturation. I have also been running at 100A current limit without faults on a motor that does not saturate much at that current. You could try to set the saturation compensation to something like 10% and calculate kp and ki with different time constants, for example 500 µS or 2000 µS. Also, were you using sensors? Can you try running sensorless and see if the same fault occurs during acceleration?
2. That is because the ADC app has a ramping parameter added. You can lower the time constants to make the throttle more aggressive. Also, I think the time is calculated incorrectly in this implementation giving a higher time constant than you set, I will try to fix this in the next update.
3. The difference in the measured resistance, even on the same voltage, seems a bit high. Did the motor temperature change while you did the measurements?
4. I will have a look if something can be done about that for the next batch.
5. That is correct, some of the pins are remapped on the new hardware.
6. Were you running FOC with the old VESC? The currents are calculated in a completely different way for FOC and doing the vector mapping from battery current to motor current can have some inaccuracies when there is phase lag and the d axis modulation is not 0. I might be able to improve that in the future.
7. If the VESC is in an insulated bag without air circulation getting the heat away can be difficult and the temperature will eventually rise. The FETs have more or less the same resistance as on the old hardware, so the total amount of heat produced is the same. The difference is that the aluminum housing is better at transporting it away and has a slower thermal time constant. You could try to attach it to some kind of heatsink (should be easy with this design) and see if it helps.
Hey Benjamin,
no problem for the detailed report. I think that is what we BETA testers are chosen for. :)
1. I don't think that my motor is going into saturation. I know others are using higher motor current setting with other motor controllers without a problem. The motor also didn't get warm at all. I cant give you exact numbers because of the PTC issue, but I would guess around max 35-40 °C on the outside. Would it be possible to somehow notice saturation with the FOC open loop command in the terminal?
Yes I was using hall sensors. Will try running sensorless and changing the parameters when I have time. But I guess the acceleration without sensors will feel a lot rougher or not work at all form a standstill. But I will try.
When sorted out that issue what max motor currents would you recommend me? Right now with the default firmware the max current is set to 100A. On the vedder.se forum you talked about 120A. Do you think I should try to run with 140A to push the VESC 6.4 design to its limits. I think the motor should be able to take it. The bigger problem should be the bullet connectors and the wires.
2. Good to know. I don't have VESC tool available right now, but would a ramping set to zero bring the same feeling than it was with the old firmware?
3. No, the motor temperature should have been the same, because even with a big load the motor didn't get warm that easy. I could do more measurements next time. From the measurements I have done now it looks like the first measurement is a little bit off from the other ones.
I think it would be useful to know what voltage would be the best when measuring the FOC parameters. I would guess ideally you should not notice a difference at all. But because there is something noticeable it would be good to know what values to trust more.
6. Yes I was also running FOC on the old hardware.
7. Yes, the most important thing without air circulation is the slower thermal time constant. I was just pointing out that the hardware is able to reach the 80 °C mark quite "easy", because Frank was always saying that it is hard to get temperature problems with the new hardware. Will try to get some air circulating through the aluminum case (heatsink mounted to the aluminum case) in the future. Then I believe the temperature is not longer a problem with 100A motor current. I would guess that the difference is even more noticeable than in my old temperature comparison video, because of the better heat transport.