Skip to content

NACK encountered while communicating with fan controllers #140

Closed
@ryan-summers

Description

During normal operation (no RF input, enabled RF output on CH0), Booster was observed to undergo a reset. Querying the service information retrieved the following data:

> service
Version             : v0.1.0-61-g7e78b6b
Git revision        : 7e78b6b8840e2328adc520b9a72dffb2fb8ac902
Features            : 
Panic Info          : panicked at 'called `Result::unwrap()` on an `Err` value: Interface(NACK)', src/chassis_fans.rs:109:64

Watchdog Detected   : false

booster/src/chassis_fans.rs

Lines 107 to 117 in 7e78b6b

fn set_duty_cycles(&mut self, duty_cycle: f32) {
for fan in self.fans.iter_mut() {
fan.set_duty_cycle(max6639::Fan::Fan1, duty_cycle).unwrap();
fan.set_duty_cycle(max6639::Fan::Fan2, duty_cycle).unwrap();
}
// Deem the fans to be spinning if the duty cycle is greater than 5%. This is to avoid
// floating-point comparison errors at near-zero duty cycle. The driver should not be
// configuring fans to a non-zero duty cycle below 20%.
self.fans_spinning = duty_cycle > 0.05;
}

Background:

I ran Booster over the weekend with an enabled RF channel and no RF input. The reset was observed very shortly after plugging in Booster's USB to my computer. It is unknown if these are related. Service data was retrieved immediately after the fault.

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions