Axt1800 running hot, 75C

In the end this is up to you. Electronics want to sit as cool as possible. As in the other thread, there is an electrolytic capacitor on the board, those have actual liquid inside. Temperature is directly correlated to the lifetime of the capacitor. So if you can run the fan at max, i would do it (and do currently).

You can see a typical lifetime chart, it’s almost exponential so every degree counts:

1 Like

I did find the answer myself, just read the entire topic above, provided by sincere @Johnex. So the answer is - optimal T for the motherboard used at this router is 0-65 С.
Fan wont launch until T become too hot - this is a bug at soft, fan should work. If you are familiar with Linux CLI, in order to launch a fan we need to:

1. ssh root@ip-address-of-a-router # use password from 
2. /etc/init.d/gl_fan stop # that command will stop the daemon responsible for fan
3. echo 255 > /sys/class/thermal/cooling_device0/cur_state # that will set up the max speed of fan

I did the steps above and that worked perfectly fan is having its fun now!)

However I think it would be great to have schedule that will track the T and will adjust its speed automatically, wouldn’t it?

Totally agree it is a must to have cooling. What do you think about fan speed schedule? Is it possible to make it automatically somehow?

Lower down in the thread you can play around with the PID for the fan controller:

I didn’t really get it to work, for me the fan did not run at full speed even though it needed it to lower the temperature, but i just put the values @nopro404 suggested. Maybe you can give it a try and see if it works for you.

tl;dr, leave the fan running all the time.

yeah, back in my youth, when not re-aligning the r/w head of 12" floppy disk with an oscilloscope.
the main issue was thermal creep.
if an integreated circuit was not soldered into to its dip package,
then the pins of the IC, would heat and cool over time.
that would cause the pins of the IC to expand and contract, thus causing the IC to creep up and out of the DIP package.

this is great detailed info,

i did try this and the good news is that the fan does seem to change speed
but getting errors

/etc/init.d/gl_fan stop
gl_fan -v -t 60 -i 4 -d 20
root@HOME01:/usr/sbin# gl_fan -v -t 60 -i 4 -d 20
2022/08/10 09:34:06 debug (gl_fan.c:148) set_pwm:-12.000000 proportion:20.000000 integration:8.000000 differential:-40.000000
2022/08/10 09:34:06 debug (gl_fan.c:151) current_temp:62 current_error:2 total_error:2 last_error:2 prev_error:0
2022/08/10 09:34:26 debug (gl_fan.c:148) set_pwm:70.000000 proportion:30.000000 integration:20.000000 differential:-20.000000
2022/08/10 09:34:26 debug (gl_fan.c:151) current_temp:63 current_error:3 total_error:5 last_error:3 prev_error:2
^C
root@HOME01:/usr/sbin# sensors && gl_fan -s && cat /sys/class/thermal/cooling_device0/cur_state
ath11k_hwmon-isa-0000
Adapter: ISA adapter
temp1:        +59.0_C

ath11k_hwmon-isa-0000
Adapter: ISA adapter
temp1:       -255.0_C

2220
70

The error in the gl_fan output is basically the ‘deviation’ from where PID control loop target is – how far off from goal it is. It’s not an error per se.

@nopro404 Is there any extra option/coefficient to increase fan speed from its “basic” values during that schedule? Where we can find the initial logic of it?

Sorry, I don’t follow. the default values from gl_fan from its usage output

root@GL-AXT1800:~# gl_fan -help
gl_fan: unrecognized option: h
Usage: gl_fan [option]
          -t temperature   # expected CPU temperature, default is 90
          -p proportion    # Proportion parameter in PID algorithm, default is 10
          -i integration   # integration parameter in PID algorithm, default is 2
          -d differential  # differential parameter in PID algorithm, default is 10
          -s               # print fan speed
          -v               # verbose

If you want it to to spin faster earlier you can set the temperature lower, and use the I and D values I posted earlier. Or play with the values to see what you like.

Hope thats helpful.

EDIT: Just updated to 2020-08-08 4.01 beta 5 and they lowered the default temp to 85.

1 Like

as i am working on my tmux/bash skills, i created a very simple script,
to display these current values on the tmux status bar, once per second

  • temperature
  • speed
  • state

and scripts to change the fan speed.

— fan.stop.sh stop the fan
— fan.max.sh set fan to max speed
— fan.custom.sh set fan to custom speed, valid values from 0 to 255

and stress.sh to max out the the cpu, which will raise the cpu temp

in .tmux.conf

set -g status-interval 1
set -g status-right "#(~/scripts/temp/fan.stats.sh)"

and for ~/scripts/temp/fan.stats.sh

#!/bin/sh
temp=`cat /sys/class/thermal/thermal_zone0/temp`
speed=`gl_fan -s`
state=`cat /sys/class/thermal/cooling_device0/cur_state`
printf "temp:$temp speed:$speed state:$state"

and four .sh scripts:
fan.stop.sh

#!/bin/sh
echo 0 > /sys/class/thermal/cooling_device0/cur_state
cat /sys/class/thermal/cooling_device0/cur_state

fan.max.sh

#!/bin/sh
echo 255 > /sys/class/thermal/cooling_device0/cur_state
cat /sys/class/thermal/cooling_device0/cur_state

fan.custom.sh

#!/bin/sh
echo $1 > /sys/class/thermal/cooling_device0/cur_state
cat /sys/class/thermal/cooling_device0/cur_state

stress.sh

#!/bin/sh
stress-ng --matrix 0 -t 5m
3 Likes

now, thanks to your help, i got where i need to be,
to be able to perform a cpu/temperature torture test of the axt1800.

tl;dr - the router passed the torture test.

in a small closed cardboard box, i placed the following.
— at the bottom of the box, as a heat source, a powered-on raspberry pi4 motherboard.
— on top of the pi4 heatsink, i placed the axt1800.

  1. make sure the gl_fan service is stopped
    /etc/init.d/gl_fan stop
  2. cool the router to get low end temp.
    run fan.max.sh - so that fan speed is approx. 6500RPM and wait 20 minutes
    65°C is the temp of the cpu
  3. heat the router to 90°C
    — run fan.stop.sh, fan speed is 0RPM
    — run stress.sh, to max out cpu and all cores to 100% utilization
  4. now, let’s try to cool the router from 90°C
    note: stress.sh is still running, cpu at 100%
    — run fan.max.sh - fan speed is approx 6500RPM
    and over time, takes 45 minutes to cool down to 70°C

image

1 Like

My AXT1800 is only operating in Access Point mode with my primary workstation running through a wired connection and very few WiFi endpoints connected and was still sitting at 79-80 °

Have just implemented the changes as per nopro404 's suggestion and it’s now running at 60 ° with no excessive fan noise ( 1530rpm) sitting less than 1M away

I did these two commands and the fan started running at a much quieter level than using a value of 255. And the router was running much cooler. :slight_smile: HOWEVER, after two days I noticed the fan was turned off and not running. It seemed to turn off by it’s own. Anyone seeing this type behavior?

I reissued the two commands and will start watching it closely, but I am curious if anyone else is/has experiencing this.

TIA, Jim

That is probably because you need to “commit” these settings via luci, otherwise any reboot of a device will clean that settings up. Nevertheless, I am using another solution, suggested in neighbor thread: it persistent at router’s memory after reboots, launches fan dynamically, adjusts entire system temperature to desired level on the one hand, and not forcing fan to work at max speed all the time, which increase its life a bit on the other. I am using it at my router with active Wireguard client, Synology NAS and about 5-6 devices connected via Wi-Fi, the average temperature of router ~52C which is quite good.

I wrote to support team that suggested threshold at 85C is much more than technical T ranges for motherboard used at AXT1800, so lets see how they handle it. Until that, you can resolve it with commands:

/etc/init.d/gl_fan stop
uci set glfan.@globals[0].temperature='60' 
uci set glfan.@globals[0].integration='4'
uci set glfan.@globals[0].differential='20' 
uci commit glfan 
/etc/init.d/gl_fan restart
1 Like

@wvlad
Thanks and this looks good. Can you tell me what these two lines do and what are the ranges of the numbers 4 & 20 and what these numbers specify?

uci set glfan.@globals[0].integration=‘4’
uci set glfan.@globals[0].differential=‘20’

Thanks!

Please, refer to this post. As far as I understand - these parameters are responsible for “polling” frequency of T in order to “perform” fan to work. I suppose @nopro404 could shed some light onto it.

gl_fan is hard coded to check the temp and set the fan speed only every 20 seconds. For a PID control loop to be effective it needs to read it’s input and adjust it’s output much more frequently. An RC drone for example will sample 1000x a second to be able to stay in flight.

If you want to understand the I and D values read this

Thank you both, @nopro404 & @wvlad. I’ve got it running and stable now. :slight_smile:

the cpu governor on glinet firwmware defaults to performance–change it to ondemand and you will be fine.

1 Like

Hi - tried ondemand, doesn’t make that much of a difference, maybe 1 deg C… Opened Slate AX (AXT1800) CPU throttling feat req · Issue #76 · gl-inet/gl-infra-builder · GitHub