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.
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
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.