Axt1800 running hot, 75C

According to some discussion in the forum, they might let user have more control of the fan in the future, but I am not sure.

What is your understanding of ‘I want to deep dive’? Do you now the Linux filesystem? Or OpenWRT basics? In a nutshell, here we are not very far away from these two worlds.

As far as I can see, the settings are in
cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_*_temp. The related description can be found in cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_*_type

root@GL-AXT1800:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_*_temp
root@GL-AXT1800:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_*_type

I’m running an older firmware, for other reasons. So it is 95 in my configuration, it should be 85 in your.

The interesting thing is the type ‘configurable’ is already implemented. And even better: the max value is in another field.

1 Like

fwiw, there needs to be a way to test the fan.

at this point, no idea if the fan works.
and when/if the temperature rises over 89/95, no idea if the fan will work.

each time the router is booted up, it should spin the fan for a few seconds.

We had a length discussion about this in the existing thread:

My personal recommendation is to run the fan at full speed. It is not loud, i can’t hear it much 2m away, but it will help the life of the router running cooler.


What is an optimal temperature for this router? I am having about 64 C° and it is still rising, however it is below the threshold. So is it ok for device to be so hot?

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
root@HOME01:/usr/sbin# sensors && gl_fan -s && cat /sys/class/thermal/cooling_device0/cur_state
Adapter: ISA adapter
temp1:        +59.0_C

Adapter: ISA adapter
temp1:       -255.0_C


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.

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

and 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/"

and for ~/scripts/temp/

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:

echo 0 > /sys/class/thermal/cooling_device0/cur_state
cat /sys/class/thermal/cooling_device0/cur_state

echo 255 > /sys/class/thermal/cooling_device0/cur_state
cat /sys/class/thermal/cooling_device0/cur_state

echo $1 > /sys/class/thermal/cooling_device0/cur_state
cat /sys/class/thermal/cooling_device0/cur_state

stress-ng --matrix 0 -t 5m

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 - 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 speed is 0RPM
    — run, to max out cpu and all cores to 100% utilization
  4. now, let’s try to cool the router from 90°C
    note: is still running, cpu at 100%
    — run - fan speed is approx 6500RPM
    and over time, takes 45 minutes to cool down to 70°C


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

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’