On 12/7/2021 09:45,Landon wrote: Hello, Can you take a look at it, please? Thanks! On 12/2/2021 17:11,Landon wrote: Hello, I read the "https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md": How to Configure Phosphor-pid-control type == "temp" Exactly the same as margin but all the inputs are supposed to be absolute temperatures and so the maximal value is used to feed the PID loop. type == "stepwise" "name": "temp1", "type": "stepwise", "inputs": ["temp1"], "setpoint": 30.0, "pid": { "samplePeriod": 0.1, "positiveHysteresis": 1.0, "negativeHysteresis": 1.0, "isCeiling": false, "reading": { "0": 45, "1": 46, "2": 47, }, "output": { "0": 5000, "1": 2400, "2": 2600, } } and in "https://github.com/openbmc/entity-manager/blob/master/configurations/R1000%20Chassis.json" | { | | | | "Class": "temp", | | | "FFGainCoefficient": 0.0, | | | "FFOffCoefficient": 0.0, | | | "ICoefficient": -4.64, | | | "ILimitMax": 100, | | | "ILimitMin": 30, | | | "Inputs": [ | | | "Exit Air Temp" | | | ], | | | "Name": "Exit Air Temp", | | | "NegativeHysteresis": 5.0, | | | "OutLimitMax": 100, | | | "OutLimitMin": 30, | | | "Outputs": [], | | | "PCoefficient": -0.15, | | | "PositiveHysteresis": 0.0, | | | "SetPoint": 75.0, | | | "SlewNeg": -1, | | | "SlewPos": 0.0, | | | "Type": "Pid", | | | "Zones": [ | | | "Zone 1", | | | "Zone 2", | | | "Zone 3", | | | "Zone 4", | | | "Zone 5", | | | "Zone 6" | | | ] | | | }, | but I don't understand how to control the fan by temperature ? I was wondering if you could help me explain ? Thank you very much ! On 11/29/2021 18:22,Andrei Kartashev wrote: Hello, Please read phosphor-pid-control documentation: https://github.com/openbmc/phosphor-pid-control https://github.com/openbmc/phosphor-pid-control/blob/master/configure.md https://github.com/openbmc/phosphor-pid-control/blob/master/tuning.md https://github.com/openbmc/phosphor-pid-control/tree/master/examples Keep in mind that there are two different ways to configure phosphor- pid-control: statically with JSON config files and dynamically with DBUS (generally, using EntityManager JSON configuration) and same parameters with this two ways mostly have different names. The way you want to use is generally depend on either you use EM for your platform or not. On Mon, 2021-11-29 at 17:43 +0800, Landon wrote: Thank you! I have read it : https://github.com/openbmc/entity-manager/blob/master/configurations/R1000%20Chassis.json But I don't understand, Is there an explanation for this part? Are there general instructions on how to control fan output by temperature? and how to use phosphor-pid-control to set this ? Is there“ phosphor-pid-control ”the instructions for this part? Thank you very much ! On 11/27/2021 05:57,Paul Fertser wrote: On Fri, Nov 26, 2021 at 01:55:31PM +0800, Landon wrote: add: I just want to know in OpenBMC by reading different temperature values or current values to control the fan output, so as to cool down, how does this strategy work? An example of this. This is using temperature values to control the fans so as to cool down, it works by configuring phosphor-pid-control appropriately, I hope it's enough of an example: https://github.com/openbmc/entity- manager/blob/master/configurations/R1000%20Chassis.json If you think phosphor-pid-control is missing some documentation please read its source code and send documentation patches for review. -- Best regards, Andrei Kartashev