var FIELDS = [
  'overcurrent',
  'mosfetSShorted',
  'software',
  'batteryHvd',
  'arrayHvd',
  'customSettingsEdit',
  'rtsShorted',
  'rtsNoLongerValid',
  'localTempSensorDamaged',
  'batteryLowVoltageDisconnect',
  'slaveTimeout',
  'dipSwitchChanged',
  'p3Fault',
];

var flags = parseInt(value.replace(/\x20/g, ''), 16),
  result = [];

for (var i = 0, f = 1 << 31 >>> 0, l = FIELDS.length; i < l; i++, f >>>= 1) {
    if (flags & f) {
        result.push(FIELDS[i]);
    }
}

return result.length ? result.join('\n') : 'No faults';