Was on a ride and had to pause to let some rain pass. Remote switched off and board still on with 49V. I got three in succession while were sitting around and never saw it again. Finished the ride and stayed connected for 6 hours home. Never got it again. I didn’t see where I could research fault codes in vesc tool. If they’re there, just point in the right direction.
Looking into the BLDC source code , this is where that fault is thrown:
#ifdef HW_HAS_PHASE_SHUNTS
// Monitor currents balance. The sum of the 3 currents should be zero
m_motor_current_unbalance = mc_interface_get_abs_motor_current_unbalance();
if ( m_motor_current_unbalance > MCCONF_MAX_CURRENT_UNBALANCE ) {
UTILS_LP_FAST(m_motor_current_unbalance_error_rate, 1.0, (1 / 20000.0));
}
else {
UTILS_LP_FAST(m_motor_current_unbalance_error_rate, 0.0, (1 / 20000.0));
}
if (m_motor_current_unbalance_error_rate > MCCONF_MAX_CURRENT_UNBALANCE_RATE) {
mc_interface_fault_stop(FAULT_CODE_UNBALANCED_CURRENTS);
}
#endif
Seems your Motor Current unbalance error rate was greater than what ever it was set to or the default 30%
#define MCCONF_MAX_CURRENT_UNBALANCE_RATE 0.3 // Fault if more than 30% of the time the motor is unbalanced
#define MCCONF_MAX_CURRENT_UNBALANCE 130.0 // [Amp] More than this unbalance trips the fault (likely a sensor disconnected)
if (motor->m_motor_current_unbalance > MCCONF_MAX_CURRENT_UNBALANCE) {
UTILS_LP_FAST(motor->m_motor_current_unbalance_error_rate, 1.0, (1 / 1000.0));
Edit: I was looking at a different branch of the source code. This is the current version involving the fault:
#ifdef HW_HAS_3_SHUNTS
if (!motor->m_conf.foc_sample_high_current) { // This won't work when high current sampling is used
motor->m_motor_current_unbalance = mc_interface_get_abs_motor_current_unbalance();
if (motor->m_motor_current_unbalance > MCCONF_MAX_CURRENT_UNBALANCE) {
UTILS_LP_FAST(motor->m_motor_current_unbalance_error_rate, 1.0, (1 / 1000.0));
} else {
UTILS_LP_FAST(motor->m_motor_current_unbalance_error_rate, 0.0, (1 / 1000.0));
}
if (motor->m_motor_current_unbalance_error_rate > MCCONF_MAX_CURRENT_UNBALANCE_RATE) {
mc_interface_fault_stop(FAULT_CODE_UNBALANCED_CURRENTS, !is_motor_1, false);
}
}
#endif
Uh I don’t grasp it much either since I’m not sure what’s exactly happening in that UTILS_LP_FAST function but if I were to guess, check If your sensors were disconnected since that’s what the source code is saying probably trips this fault.
What we do know is that your Current Balance rate, or at least the VESC thinks your current balance rate, was higher than 30%
Edit: Spit Balling, check your motor wires? Make sure they’re plugged in all the way. From what I’m reading:
Current unbalance may be caused by the following (as noted above, current unbalance is the primary cause of voltage unbalance):
Large and/or unequal distribution of single-phase load – This can occur when low voltage single-phase services are connected to the phase closest to the neutral. The same problem can occur at medium voltage levels when single-phase distribution transformers are connected to the conductors that are easiest to reach.
Phase to phase loads – This occurs with some equipment that simply requires single phase, but at line-to-line voltage (e.g., a 415 volt welder).
Unbalanced three phase loads – Some three phase loads are comprised of both single and three-phase equipment. It is important that these loads are balanced to meet the power company’s requirements.
Took the board out again and got peppered with unbalanced current faults. All was fine until I hit the first hill. Board fell on its face and got Over Temp Fet faults mixed with unbalanced current.
Looking at vesc 1 and Vesc 2 in metr and everything is the same.
@haggyboard.timo I know one of the escapes needed to be flashed before you sent it to me. Do you recall if it was the one that had the master sticker? Have you any insight to the history of the ESCapes prior to sending to me?
But most likely one of the fets or one resistor is fucked. Or could be something with the motor. I would try to redo a motor detection to check if the value are still the same and nothing have shifted.
Thank you very much. I’ll do it tonight and report back. Was just looking at the log and noticing that one vesc was way hotter than the other. 70 vs 96C when this went down.