I’m making a small cluster where I want one SBC in charge of the fan. the fan will pull across 2 chambers to cool everything. I want to be able to use standard linux tools to read and control fan speed but the orange pi I’m planning to put in charge of this function doesn’t have a typical PC fan header. I have USB ports and GPIO pins I can break out into a microcontroller or some other adaptor or board but I wanted this to be visible to linux with standard tools.

I saw there are various pi PWM boards out there, but they all seem to cover the top of the boards and blow directly down with their own fan. I’m building a case with a single large fan and ducting that pulls air past passive heatsinks so that wont work.

I could just hardwire the fan and let it run full speed all the time, but thats louder and pulling in more dust than it needs to and wont warn me if the fan dies. Surely someone has already solved this problem but I haven’t been able to figure out how.

  • DigitalDilemma@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    I’ve recently done almost exactly this, although I used an ESP8266 running esphome. That powers two 120mm fans that have various speed settings (including 0 rpm via PWM) depending on both the power state of various devices in the cupboard where it’s housed, as well as temperature. All speeds and controls are exposed to linux via the Home Assitant API, and of course that has its own alerts and dashboards. I wanted to run this fully independently of the machines its cooling.

    Not worth pursuing if you don’t already have an HA install, but if you do then perhaps worth a thought of a different approach.

  • BCsven@lemmy.ca
    link
    fedilink
    arrow-up
    1
    ·
    23 hours ago

    Is the Orange pi like the RPi where 3 of the gpio pins can vary the fan speed?

    • SteveTech@aussie.zone
      link
      fedilink
      arrow-up
      1
      ·
      7 hours ago

      The EMC2101 is a slightly modified clone of the LM63, so if you connect it to your board’s I2C bus and instantiate the lm63 driver to the right address, it should show up in lm-sensors like a normal PC fan. Or there’s userspace python drivers, if you don’t need a kernel hwmon interface or can’t get it to work.