Giter Club home page Giter Club logo

argon-one-i2c-codes's Introduction

Argon-ONE-i2c-Codes

This is a list of i2c Codes utilized by Argon ONE Raspberry Pi Cases.

NOTE: Operating system should have necessary libraries to control the Raspberry Pi GPIO.

How to Send i2c Codes to the Argon ONE MCU

Example: Setting Argon ONE to Mode 2 (Always ON)

Type in the Terminal the code below:

i2cset -y 1 0x01a 0xfe

Device Address:0x1a

Write Command Only one byte(0~255) can be used

1. HEX CODE: 0x01 to 0x64 (0~100)

ACTION: Sets the Fan's Duty Cycle from 0%~100%.

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

2. HEX CODE: 0x00

ACTION: Turns OFF the FAN.

3. HEX CODE: 0xfd

Set the ARGON ONE to Mode 1:

ACTION: Sets "Default Mode"

Behaviour: You need to PRESS button to Power ON from shutdown or power outage.

4. HEX CODE: 0xfe

Set the ARGON ONE to Mode 2:

ACTION: Sets "Always ON Mode"

Behaviour: Power current will flow directly to Raspberry Pi. NO need to PRESS button to power ON from shutdown or power outage.

5. HEX CODE: 0xff

ACTION: Listens at Serial Port to cut power; Requires Serial Port to be ENABLED.

Behaviour: 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.

argon-one-i2c-codes's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

argon-one-i2c-codes's Issues

Fan is not working

I have installed argon1.sh script without any issues. I can send i2c commands either via i2cset or argoneoned.service but fan is not starting at all. Do you possibly have any ideas how I can further investigate the issue?

Argon One V2 minimal difference fan speed value

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). There is almost no difference in fan speed between values 1 and 100. My first impression that I received a DOA, but connected a scope to check what's wrong.

image

image

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>

Reverse engineered schematic

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

image

Fan speed value 1 on gate MOSFET Q2 correct:

argon_pwm1

Fan speed value 50 on gate MOSFET Q2 correct:

argon_pwm50

Fan speed value 99 on gate MOSFET Q2 correct:

argon_pwm99

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:

argon_pwm1_fan

It looks like the MOSFET in saturation and is always turning on the fan.

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?

I2C address conflict

Some audio interfaces use the I2C address 0x1a.
Any idea on how the address conflict with the Argon One controller can be prevented?

Define fan in device tree

Hello,
I'm trying to define Argon One fan in device tree to control it directly from kernel (get a native support without using any scripts in userspace). As far as i know, there is a lot of different fan controllers on a market which are using i2c bus for PWM control. But I couldn't find anything related to this controller. Could you please give me more information regarding to your one?
Thank you in advance!

        fragment@0 {
                target = <&i2c1>;

                __overlay__ {

                        fan0: fan@0x1a {
                                compatible = ?????

                        };
                };
        };

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.