diff --git a/main/http_server/axe-os/src/app/components/home/home.component.html b/main/http_server/axe-os/src/app/components/home/home.component.html
index 1871afc2..b9944a5d 100644
--- a/main/http_server/axe-os/src/app/components/home/home.component.html
+++ b/main/http_server/axe-os/src/app/components/home/home.component.html
@@ -121,7 +121,7 @@
Heat
-
+
ASIC Temperature
@@ -142,8 +142,14 @@
+
+
@@ -214,4 +221,4 @@
-
\ No newline at end of file
+
diff --git a/main/http_server/axe-os/src/app/services/system.service.ts b/main/http_server/axe-os/src/app/services/system.service.ts
index fd4ebf9d..2267b7f2 100644
--- a/main/http_server/axe-os/src/app/services/system.service.ts
+++ b/main/http_server/axe-os/src/app/services/system.service.ts
@@ -24,7 +24,6 @@ export class SystemService {
power: 11.670000076293945,
voltage: 5208.75,
current: 2237.5,
- fanSpeed: 82,
temp: 60,
vrTemp: 45,
hashRate: 475,
@@ -54,6 +53,7 @@ export class SystemService {
invertfanpolarity: 1,
autofanspeed: 1,
fanspeed: 100,
+ fanrpm: 0,
boardtemp1: 30,
boardtemp2: 40
diff --git a/main/http_server/axe-os/src/models/ISystemInfo.ts b/main/http_server/axe-os/src/models/ISystemInfo.ts
index 2e195e66..a9389507 100644
--- a/main/http_server/axe-os/src/models/ISystemInfo.ts
+++ b/main/http_server/axe-os/src/models/ISystemInfo.ts
@@ -7,7 +7,6 @@ export interface ISystemInfo {
power: number,
voltage: number,
current: number,
- fanSpeed: number,
temp: number,
vrTemp: number,
hashRate: number,
@@ -33,8 +32,9 @@ export interface ISystemInfo {
invertfanpolarity: number,
autofanspeed: number,
fanspeed: number,
+ fanrpm: number,
coreVoltageActual: number,
boardtemp1?: number,
boardtemp2?: number
-}
\ No newline at end of file
+}
diff --git a/main/http_server/http_server.c b/main/http_server/http_server.c
index 07ab7507..d1a59470 100644
--- a/main/http_server/http_server.c
+++ b/main/http_server/http_server.c
@@ -368,7 +368,6 @@ static esp_err_t GET_system_info(httpd_req_t * req)
cJSON_AddNumberToObject(root, "power", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.power);
cJSON_AddNumberToObject(root, "voltage", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.voltage);
cJSON_AddNumberToObject(root, "current", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.current);
- cJSON_AddNumberToObject(root, "fanSpeedRpm", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.fan_speed);
cJSON_AddNumberToObject(root, "temp", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.chip_temp_avg);
cJSON_AddNumberToObject(root, "vrTemp", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.vr_temp);
cJSON_AddNumberToObject(root, "hashRate", GLOBAL_STATE->SYSTEM_MODULE.current_hashrate);
@@ -417,7 +416,9 @@ static esp_err_t GET_system_info(httpd_req_t * req)
cJSON_AddNumberToObject(root, "invertfanpolarity", nvs_config_get_u16(NVS_CONFIG_INVERT_FAN_POLARITY, 1));
cJSON_AddNumberToObject(root, "autofanspeed", nvs_config_get_u16(NVS_CONFIG_AUTO_FAN_SPEED, 1));
- cJSON_AddNumberToObject(root, "fanspeed", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.fan_percentage);
+
+ cJSON_AddNumberToObject(root, "fanspeed", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.fan_perc);
+ cJSON_AddNumberToObject(root, "fanrpm", GLOBAL_STATE->POWER_MANAGEMENT_MODULE.fan_rpm);
free(ssid);
free(hostname);
diff --git a/main/system.c b/main/system.c
index 0c87b1bc..e4374f10 100644
--- a/main/system.c
+++ b/main/system.c
@@ -209,7 +209,7 @@ static void _update_system_info(GlobalState * GLOBAL_STATE)
if (OLED_status()) {
memset(module->oled_buf, 0, 20);
- snprintf(module->oled_buf, 20, " Fan: %d RPM", power_management->fan_speed);
+ snprintf(module->oled_buf, 20, " Fan: %d RPM", power_management->fan_rpm);
OLED_writeString(0, 0, module->oled_buf);
memset(module->oled_buf, 0, 20);
diff --git a/main/tasks/power_management_task.c b/main/tasks/power_management_task.c
index 3063e3a0..8df9256a 100644
--- a/main/tasks/power_management_task.c
+++ b/main/tasks/power_management_task.c
@@ -60,7 +60,9 @@ static double automatic_fan_speed(float chip_temp, GlobalState * GLOBAL_STATE)
case DEVICE_MAX:
case DEVICE_ULTRA:
case DEVICE_SUPRA:
- EMC2101_set_fan_speed((float) result / 100);
+ float perc = (float) result / 100;
+ GLOBAL_STATE->POWER_MANAGEMENT_MODULE.fan_perc = perc;
+ EMC2101_set_fan_speed( perc );
break;
default:
}
@@ -133,7 +135,9 @@ void POWER_MANAGEMENT_task(void * pvParameters)
power_management->current = INA260_read_current();
power_management->power = INA260_read_power() / 1000;
}
- power_management->fan_speed = EMC2101_get_fan_speed();
+
+ power_management->fan_rpm = EMC2101_get_fan_speed();
+
break;
default:
}
@@ -204,14 +208,19 @@ void POWER_MANAGEMENT_task(void * pvParameters)
}
if (auto_fan_speed == 1) {
- power_management->fan_percentage = (float)automatic_fan_speed(power_management->chip_temp_avg, GLOBAL_STATE);
+
+ power_management->fan_perc = (float)automatic_fan_speed(power_management->chip_temp_avg, GLOBAL_STATE);
+
} else {
switch (GLOBAL_STATE->device_model) {
case DEVICE_MAX:
case DEVICE_ULTRA:
case DEVICE_SUPRA:
- EMC2101_set_fan_speed((float) nvs_config_get_u16(NVS_CONFIG_FAN_SPEED, 100) / 100);
- power_management->fan_percentage = (float)nvs_config_get_u16(NVS_CONFIG_FAN_SPEED, 100);
+
+ float fs = (float) nvs_config_get_u16(NVS_CONFIG_FAN_SPEED, 100);
+ power_management->fan_perc = fs;
+ EMC2101_set_fan_speed((float) fs / 100);
+
break;
default:
}
diff --git a/main/tasks/power_management_task.h b/main/tasks/power_management_task.h
index b5a829a5..d198d112 100644
--- a/main/tasks/power_management_task.h
+++ b/main/tasks/power_management_task.h
@@ -3,8 +3,8 @@
typedef struct
{
- uint16_t fan_speed;
- float fan_percentage;
+ uint16_t fan_perc;
+ uint16_t fan_rpm;
float chip_temp[6];
float chip_temp_avg;
float vr_temp;
@@ -19,4 +19,4 @@ typedef struct
void POWER_MANAGEMENT_task(void * pvParameters);
-#endif
\ No newline at end of file
+#endif