Skip to content

openfancontrol/arguscontroller

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

Argus Controller

  • Argus Monitor supports Open Hardware circuits to use additional custom temperature sensors and fan control channels within the program.
  • We call these devices Argus Controller.
  • At least Argus Monitor version 5.0.4 is required for these.

Description

We have made an example to demonstrate such a device with the help of the very common Arduino Nano or Arduino Uno platform.
The example demonstrates the creation and set-up of temperature channels and fan control channels.
We show here a hardware solution for the popular Dallas DS18B20 temperature sensors and for connecting 4-pin pwm controlled fans.
With additional circuitry and software changes, you could control 3-pin voltage controlled fans also or use different temperature sensors.

You can adapt the hardware to your needs, built it around a completely different microcontroller, change the number of temperature and fan control channels and so on.
Each hardware device can have up to 6 temperature channels and 6 fan control channels.
Argus Monitor will detect and use any such device as long as the serial communication protocol (see below) is respected.

🇺🇸 Detailed HW/SW description (English)

🇩🇪 Detaillierte HW/SW Beschreibung (Deutsch)

pic

pic

Communication protocol

Command Argus Monitor request Argus Controller answer
ProbeDevice AA 02 01 crc8 C5 [byteCnt] 01 [DEVICE_ID] [TEMP_COUNT] [FAN_COUNT] crc8
GetTemp AA 02 20 crc8 C5 [byteCnt] 20 [TEMP_COUNT] temp0_H temp0_L temp1_H temp1_L temp2_H temp2_L temp3_H temp3_L crc8
GetFanRpm AA 02 30 crc8 C5 [byteCnt] 30 [FAN_COUNT] rpm0_H rpm0_L rpm1_H rpm1_L crc8
GetFanPwm AA 03 31 [channel] crc8 C5 [byteCnt] 31 [channel] [pwm] crc8
SetFanPwm AA 04 32 [channel] [pwm] crc8 C5 [byteCnt] 32/FF crc8 # answer byte2: 32 = ok, FF = error
EEReadByte AA 04 40 crc8 C5 40 <VALUE_COUNT> crc8
EEWriteByte AA 05 41 crc8 C5 41/FF crc8 # answer byte2: 41 = ok, FF = error
  • All numbers are hex.

  • The second bytes is always the count of remaining bytes in this message, beginning with the next (third) byte.

  • Data formats

    • temperature: int16_t, scaled by 10
    • rpm: uint16_t
    • pwm: uint8_t [0..100 %]
  • Communication parameters

    • 57600 Baud, 8N1
  • Only for the ProbeDevice command, Argus Monitor expects the answer from the device within 200msec.

  • If the 'Argus Controller hardware support' option in Settings/Stability is enabled, Argus Monitor will probe the specified COM-Ports for Argus Controller devices. It will use the first 4 devices (if specified and available) as additional HW Monitor sources within the application.

  • CRC8 calculation

uint8_t crc8(uint8_t crc, uint8_t data)
{
    crc = crc ^ data;
    for (uint8_t i = 0; i < 8; i++) {
        if (crc & 0x01)
            crc = (crc >> 1) ^ 0x8C;
        else
            crc >>= 1;
    }
    return crc;
}

Lizenz

Creative Commons BY-SA
Give Credit, ShareAlike

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

About

Sketch for Arduino Nano/Uno for Argus Monitor OpenHardware Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published