Argon One v2 used pins

@il77781 Here is some more info based on reverse engineering (note: may not be 100% correct):

My Argon ONE case contains a PCB with a microcontroller type MT006C6PB (STM8S003F3) which handles the Raspberry Pi 4 power-on via the power button on the back of the case and I2C software shutdown. See commands below.

Unfortunately, I could not find the source of the microcontroller firmware. I hope someone will publish an open source custom firmware with more functionality. This is only possible when the microcontroller is not locked for flashing (not verified). I while ago I’ve reverse engineered all pins to connect an ST debug interface.

Argon One ONLY “listens” to the TXD state and does not transmit any data itself

Correct: The TXD pin is used by the microcontroller as input pin to determine the Raspberry power state by reading the pin voltage and is not used as UART pin. The shutdown behavior depends on the I2C command in commands described below.

Argon One transmits some data necessary for work

The only interface between the Argon One PCB microcontroller and Raspberry Pi is the I2C interface at address 0x1a:

# Optional install I2C tools
$ sudo apt install i2c-tools

# Detect Argon One microcontroller and other I2C devices
$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

# Note: Address 0x1a is write only for the Argon One microcontroller

# Set fan PWM value 0..100 (off.. full speed)
$ i2cset -y 1 0x01a <value>

# Mode 1 (default): Auto
# You need to PRESS button to Power ON from shutdown or power outage.
$ i2cset -y 1 0x01a 0xfd

# Mode 2: Always on
# Power current will flow directly to Raspberry Pi. NO need to PRESS button to power ON from shutdown or power outage.
$ i2cset -y 1 0x01a 0xfe

# Listens at Serial Port to cut power; Requires Serial Port to be ENABLED.
# When ARGON ONE receives 0xff,then ARGON ONE will check UART's voltage. Then, it will cut the power when UART's voltage is low.
$ i2cset -y 1 0x01a 0xff

Note: Related issue with Argon One fan speed not working.

And what CPU are you talking about in this case?

Only Raspberry Pi 4 fits in the Argon One case.

Success! :grinning:

1 Like