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 @@
- Fan + Fan %
+
+ + Fan RPM +
+
@@ -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