Argon One v2 fan speed not working

The Argon One V2 revision 06122021V4.2 fan speed can be set with I2C write commands with value between 0 (off) and 100 (full speed). Value 0 turns the fan off correctly, but there is minimal fan speed difference between values 1 and 100 (almost maximum speed and noisy).

My first impression is that I received a DOA, but connected a scope to check what’s wrong as I could not find similar issues on this forum.

PCB:

Write I2C fan speed command:

# Stop service
$ sudo systemctl stop argononed.service 

# Set fan PWM speed on I2C bus 1 device address 0x1a:
# value 0: Fan off
# value 1..99: Fan 20kHz PWM 30%..99% duty cycle
# value 100: Fan full speed
$ i2cset -y 1 0x01a <value>

The PWM output pin of U1 microcontroller MT006C6PB (STM8S003F3) pin 13 works correctly:

Fan speed value 1 on gate MOSFET Q2 is correct:

Fan speed value 99 on gate MOSFET Q2 correct:

When measuring on the drain MOSFET Q2, the pin is almost 0V (PWM not working) with all values 1…100, also when replacing the fan with a 470Ohm resistor:

It looks like the MOSFET is in saturation (source - drain shortage) and is always turning on the fan. The fan speed control works correctly with an external transistor or MOSFET, similar to the schematic above.

Is this normal behavior that there is almost no difference in fan speed, or is my new Argon One V2 broken? For example broken MOSFET 2302B Q2 controlling the fan?

2 Likes

Update: This project describes https://github.com/Argon40Tech/Argon-ONE-i2c-Codes:

NOTE: FAN only starts turning at 10% power input.

In my case the fan is always at high speed with values 1…100, so I’m pretty sure I received a broken Argon One V2 case. Q2 2302B MOSFET is still suspicious.

2 Likes

Hi, I’m in the same situation. The power off works great, but the lowest setting (1%) is almost as loud and powerful as the highest (100%) FET works fine, PWM signal is visible on the Gate pin. The output is also apparently switched well by the transistor. What pi-erwin thinks is saturation, I think is due to the output capacitor. I think even the lowest fill factor is too big for this fan. Quite simply, this fan works very efficiently, it can achieve high revolutions even with little current. It would be a solution if the PWM duty factor could be set lower. In the meantime, I replaced the 10uF capacitor with a 10nF capacitor, which is somewhat better. The speed change can already be detected between 1% and 100%. But this does not seem ideal from an electrical noise point of view.
How to access the minimum dutycycle? How can it be modified? Does the 8-bit microcontroller convert a 1-100% input signal to a 30(?)-100% output PWM signal? Or does the code running on the raspberry solve this?

kép
I measured with the original capacitor between ground and the fan negative pin. (Thanks for the picture pi-erwin) 1%:


It can be seen that the negative pin barely moves away from the ground. So the full supply voltage is available to the fan even at the lowest set value. Therefore, there is no change between the different settings.

eight hours later:
As I see it, the 8-bit microcontroller converts 1-100% to 30-100% dutycycle. But there was also a little trick in “argononed.py” that caused my device to refuse to work below 47% fill factor. I commented out these two lines, so the output can already go down to 30%.

2 Likes

@vergiliszta Thanks for your comment and additional investigation. Your scope image is exactly the same as I measured.

I replaced the 10uF capacitor with a 10nF capacitor

Interesting, I did not measure the capacity C1 and is a good candidate to remove as experiment. I remember the fan current is around 100mA @5V full speed.

The PWM duty cycle is hard-coded in the MT006C6PB (STM8S003F3) microcontroller, so that cannot be changed. It converts I2C value 1…100 to 30%…100% PWM.

Note: I did not use the Argon scripts like argononed.py, but direct I2C commands to control the fan speed:

# Value 0..100 to set fan speed:
$ i2cset -y 1 0x01a <value>

So far zero feedback from Argon One support which is not good. I did not solder on the board to claim warranty, but I don’t see a reason for RMA when you reported the same issue. It looks like a design or production fault which is not confirmed by Argon yet.

2 Likes

Update:

  1. I replaced MOSFET Q2 with a IRLML6244 (same SOT-23 footprint), but did not change the fan speed behavior. The original 2302B type is Ok.
  2. I removed the 10uF capacitor C1 as @vergiliszta suggested and the fan speed control is much better with direct I2C fan speed values 1…100:
# Stop service before sending I2C fan speed values
$ sudo systemctl stop argononed.service


# Turn fan off
$ i2cset -y 1 0x01a 0

# Minimum fan speed
$ i2cset -y 1 0x01a 1

# 50% fan speed
$ i2cset -y 1 0x01a 50

# Maximum fan speed
$ i2cset -y 1 0x01a 100

Fan speed value 1 is the lowest possible value and the fan is still running. A lower fan speed requires a different PWM output of the microcontroller U1, but this is not possible without changing the firmware and not necessary.

You’re right, the Argon scripts still uses values 30-100 instead of 1…100 and requires a manual change.

Conclusions:

  • Argon introduced a new design problem with the fan speed control in new Argon One V2 cases and their scripts are not backwards compatible.
  • I did not receive any answer from Argon support.
1 Like

Hello, everyone! I would like to report that I have exactly the same problem as OP with completely new Argon One V2.

I received an Argon One M.2 in the post this morning, it appears to have exactly the same issue. I’ve tried three different bits of software and written my own code. As far as I can tell the fan “seems” to have two states, off and on.

As an aside, as a Python programmer I had issues with their fan and button control software and had to tweak it just to make it run,. (nd then some parts were failing) I’m now using a github project “iandark/argon-one-daemon” … Fan issue aside it seems to work well and ‘feels’ better … is this something other people are using or should I be a little wary of it?

Don’t know about that code, but I took the stock code for the EON (which was derived from ONE) and heavily modified it…

Didn’t like the feel of the code. Still have a few things to toss.

Well, couple of weeks on and the iandark software is still looking Ok. How is your fan running, are you getting graduated activation, or is it off/on?

Seems to be going well. The main issue that gets people confused with the EON is … there are two triggers for the fan. The CPU temp, and the drive temp. So, folks will change one and say “My fan isn’t working”… usually the CPU.

The HDD/SSD usually run a little hotter so they trigger before the CPU.

:wink: