Argon40Tech/Argon-ONE-i2c-Codes

Always on

scargill opened this issue · 39 comments

You pointed me to this link - https://github.com/Argon40Tech/Argon-ONE-i2c-Codes/blob/master/README.md - thanks o the code to ensure always on - 0xfe - but unsure how to access that to implement it. Ideas for an Argon-One newby?

I've implemented the following script:

#!/usr/bin/env python

import smbus
b=smbus.SMBus(1)
b.write_byte(0x1a, 0xfe)

When I send a value between 0x00 and 0x64 (as you pointed) - the fan is starting. So the script works, but, when I send 0xfe - nothing. I drop power and plug it in - I still have to press Power button

Same for me here.

If I run: "i2cset -y 1 0x01a 0x64" in comandline the fan spins at 100%.
I set: "i2cset -y 1 0x01a 0xfe" to get Mod2 "Always ON Power Option" but when I plug the Power off an on again I still have to press the button.

Seems like the default keeps getting overwritten by something.

If the code doesn't work it means that this may be one of the older boards that would require a firmware update in the MCU of the Argon ONE.

This is feature is an interim solution to the users wanting the "Always ON" option.

But we are coming up with an update on the Argon ONE that you will just need to put a "jumper" on PINs on the ArgonONE to activate the Always ON feature.

If the code doesn't work it means that this may be one of the older boards that would require a firmware update in the MCU of the Argon ONE.

This is feature is an interim solution to the users wanting the "Always ON" option.

But we are coming up with an update on the Argon ONE that you will just need to put a "jumper" on PINs on the ArgonONE to activate the Always ON feature.

It doesn't even work on my newer 8GB board.
Do you mean a software update or an hardware one?

If the code doesn't work it means that this may be one of the older boards that would require a firmware update in the MCU of the Argon ONE.
This is feature is an interim solution to the users wanting the "Always ON" option.
But we are coming up with an update on the Argon ONE that you will just need to put a "jumper" on PINs on the ArgonONE to activate the Always ON feature.

It doesn't even work on my newer 8GB board.
Do you mean a software update or an hardware one?

If the Argon ONE is the one with "older boards", like @ArgonForty said, then there will be need of a Jumper. Because the MCU requires a firmware update we can not do.

Thats what I did understand. Maybe I am wrong.

So if we use "old" Argon Ones, the "Always On" Option wont work because of old firnware in the Argon One. Dose not dippend on the raspberry itself.

Thats what I did understand. Maybe I am wrong.

I think you’re right, I had misunderstood.
So for our “older” ones we just have to wait for the jumper update right?

I can't seem to get the always on mode 2 setting to work on my PI4 running HOOBS. I have enabled I2C via raps config, interfacing options, I have followed the instructions as described, I understand you have some units that require an MCU upgrade however I just purchased this unit in the last week from Amazon, ArgonForty SHOP. Unit was out of stock at time of order and shipped a week later, is it really possible this was an "older" unit without the updated firmware? Thanks in advance for your reply!

Misiu commented

@ArgonForty is there a way to tell if a specific version of your case will work with that code?
Can we visually tell the difference?
Also, can we update the MCU?

samer here, tried witg i2cset -y 1 0x01a 0xfe and nothing happen. after power failure Pi still require manually powered on

i2C is enabled in Raspberry Settings

Doesn't work with a case purchased June 26, 2020. Is there a way to check the case firmware version and/or update it?

Misiu commented

Doesn't work with a case purchased June 26, 2020. Is there a way to check the case firmware version and/or update it?

Sadly, there is no way to check the firmware version or update it.
The case is based on Nuvoton N76E003AT20 so I'm sure it can be reprogrammed, but it would require a special programmer and the new firmware file. But personally I wouldn't do that (it requires equipment, knowledge, and practice - you don't want to damage the case). Sell the case and buy a new one directly from Argon40 right now or wait until the new version is released (it will have a jumper to select mode)

So there is no solution for cases which do not work with the command "i2cset -y 1 0x01a 0xfe"?

@Misiu @ArgonForty: The solution we should wait for is not clear to me yet. Do we get an installable update and can place a jumper on our "old" boards (I bought 2 weeks ago)?

Or do we have to try out another buy of a current version of the board anyway?

Then we would not need to wait, since the i2cset-solution should work, right?

Is it also possible to disable this power-switch functionality via update/modification and get the original behaviour of the RPI instead?

@ArgonForty Same problem here. i2cset -y 1 0x01a 0x64 set the fans to 100% but i2cset -y 1 0x01a 0xfe command does nothing. Is there a solution or a workaround for old boards or we need to wait for the updated case?

@ArgonForty So the Argon ONE Pi 4 Raspberry Pi Case was out of stock for an extended period of time on argon40.com, can we expect that one ordered from the site today will have the necessary updated firmware for the MCU? I have tried to purchase 2 times from Amazon and neither one worked properly with the i2c codes for always on power option... Thanks!

@ArgonForty please provide instructions on how to update the firmware (I have several flashers here at home) or provide an uption to buy only the board with the jumper. Now my case is useless in case of a power outage. My home automation runs on it, and that needs to come back online immediately after a power outage.

I too had a problem with getting the ic2set to work, but then I popped open the cases on the three I've got to have a look, and there is a jumper on one of the boards. All three cases were purchased at different times over the last 3-4 months. Worth having a look to see if you've got the jumper. I'd tested ic2dump on the RPI but that just consistently crashes the RPI.

There's a jumper on the board that's pre-attached to the case, not the plug in board, that's labelled 1-2 DEFAULT, 2-3 ALWAYS ON. Moving the jumper to 2-3 did the trick for me. The board is clearly seen and it's next to the IR IN and IR OUT connectors. Hopefully I've done the right thing here!

Untitled-1

I too had a problem with getting the ic2set to work, but then I popped open the cases on the three I've got to have a look, and there is a jumper on one of the boards. All three cases were purchased at different times over the last 3-4 months. Worth having a look to see if you've got the jumper. I'd tested ic2dump on the RPI but that just consistently crashes the RPI.

There's a jumper on the board that's pre-attached to the case, not the plug in board, that's labelled 1-2 DEFAULT, 2-3 ALWAYS ON. Moving the jumper to 2-3 did the trick for me. The board is clearly seen and it's next to the IR IN and IR OUT connectors. Hopefully I've done the right thing here!

What the manufacturer wrote to me, is that currently they stopped creating the boards with the jumper and that there will be a final solution in q4 this year. Mine unforatunately does not have the jumper. Since I also use an SSD drive, I am thinking about getting the NESPI4 case. This case seems to support the allways on feature.

mxjoe commented

I too had a problem with getting the ic2set to work, but then I popped open the cases on the three I've got to have a look, and there is a jumper on one of the boards. All three cases were purchased at different times over the last 3-4 months. Worth having a look to see if you've got the jumper. I'd tested ic2dump on the RPI but that just consistently crashes the RPI.

There's a jumper on the board that's pre-attached to the case, not the plug in board, that's labelled 1-2 DEFAULT, 2-3 ALWAYS ON. Moving the jumper to 2-3 did the trick for me. The board is clearly seen and it's next to the IR IN and IR OUT connectors. Hopefully I've done the right thing here!

Untitled-1

Instead of your version 200430V1 board mine is 191217V1 and missing the jumper for always on. :-/

I received yesterday two "brand new" Argon Ones, that looks like the old version (no jumper, no action on setting 0xfe). 3 of the 4 Argon One I have now, are plugged on smart plugs, and I really require them to auto-boot. There is no other way. Please tel me how can I modify the PCB to make them auto-boot as absolutely need it and I don't fear to modify them. If no solution is found I will just have short the power lines entirely and won't be able to use the fan at all no more.

Misiu commented

@dmeziere where did you order the cases?
I contacted Argon40 support lately and they wrote that every case you order directly from them or from their amazon account will have the jumper.

I ordered all of them from Reichelt. But that is past I and prefer to focus on the future. There is too much discussion here without acts, so I will start to examine the PCB to find a solution to share.

Misiu commented

@dmeziere I don't have such electronic knowledge on how to do that. I wish I could help. I think that the MCU has different flash in each version (as I noticed some users can enable always-on via I2C, some can't).
If you ordered just days ago you can always return the cases and order them from Argon40. Not an ideal solution, but this way you will get the case with jumpers.

@ArgonForty is there a way to update the controller firmware? I have the 19xxxx version of the board and no jumpers the i2c codes didn't wok either. When I bought the case it was for game console mainly but now it acts as server as well so "Always ON" is a must have.
Alternatively is there a way to hardware mod the boards so we can circumvent the button altogether?

If the code doesn't work it means that this may be one of the older boards that would require a firmware update in the MCU of the Argon ONE.

@ArgonForty is there a guide for updating the MCU? I seem to have one of the older cases, and the i2c write does nothing. I just ordered the M.2 expansion as I'd really like to keep the current case rather than replacing it with a newer model with jumpers. But no autostart is a deal breaker for the purpose I built this.

I seem to have one of the older cases, and the i2c write does nothing.

FWIW, here's a photo of my board. You can see I was one of the early adopters...

20210408_211422

I went ahead and looked into my case as I'm disassembling it anyway to replace the thermal pads and install the M.2 extension board.
I noticed my version, depicted above is actually based on a bog-standard STM8S uC... And the test pads above it are likely to be the places to connect ST-Link V2 programmer, I'll investigate more when I have more time.

image

Its the 0xfe i2c command hack compatible with Argon nanosound versión? This board dont have an allways one jumper.

I just received the Argon Nanosound One and can confirm that the "always on" does not work in any way. It also does not have the jumper to configure Always on.

I just received the Argon Nanosound One and can confirm that the "always on" does not work in any way. It also does not have the jumper to configure Always on.

I cut some mm of argon case board and added a little "hole" in the case and connected to usb manually. Works like a charm)

I just received the Argon Nanosound One and can confirm that the "always on" does not work in any way. It also does not have the jumper to configure Always on.

I cut some mm of argon case board and added a little "hole" in the case and connected to usb manually. Works like a charm)

Thanks.
And connect directly the power supply to usb of PI that is connected to the nanosound board, does not give any problems to DAC?

I'm having the same issue. The IC2 commands don't work, I've tried with the jumper set to 1-2 and 2-3, no change. After disconnecting and reconnecting the power cable the Pi doesn't turn on unless I press the power button.

There was a mention in this thread that the MCU needs a firmware update but no instructions on how to do that and whether or not it can be done over I2C or the user also needs an external programmer to connect to the PCB directly.

Disappointing to say the least from Argon's side.

I resorted to the same solution as @vitaliy-kozlov. I connected a USB-C cable to the Pi directly and cut a hole in the case.

For reference these are the specs of my case:

  • PCB that connects to the Pi: 11112020V2.4
  • PCB that has the power on mode jumper: 101620V2.0

In the end, connecting the power plug directly to the Raspberry Pi board is what I did as well.
I had to shave off a side of the USB C plug right to the metal part as there was very little room otherwise, and it would be extremely difficult to connect without damaging the socket, i.e. lifting it off the board.
Then I proceeded with carefully filing off the aluminum and then the plastic part of the case as well (since I have the M.2 extension), just large enough to fit the cable. The result looks pretty smart, almost like it was designed this way :)
I did use a USB C in line power switch cable, with added the missing power switch to the Pi.

I bought a NanoSound ONE and its missing the ALWAYS ON functionality, also running i2cset -y 1 0x01a 0xfe won't help.
This is a showstopper for me as I want the NanoSound One to turn on/off remotely and automatically.

Also I don't want to cut a hole into the case to use the onboard power connector, as it's literally an ugly hack and I'm not sure it will not affect DAC audio quality.

Are there other workarounds?
Maybe "shorten" the power button somehow via GPIO pins?
Or completely disassemble the case and shorten the power button?

Add a UPS. Then the power won't go off and you won't meet the 'needs button to restart' problem. And has other benefits too.

https://www.amazon.co.uk/dp/B0C1GFX5LW

Add a UPS. Then the power won't go off and you won't meet the 'needs button to restart' problem. And has other benefits too.

https://www.amazon.co.uk/dp/B0C1GFX5LW

If the Raspberry crashes, I cannot turn the Pi on and off again remotely. With remote management probably quite expensive.

This is my very dirty hack. Only had to cut the USB-C plug and drill a hole into the case.
Not beautiful but better than buying a new Nanosound.
IMG_5416
IMG_5417

I updated raspberry pi for new umbrelOS 1.0, but my argon fan hat don't adjust de velocity with the temperature. I tried reinstall the script, restart and adjust the configuration manually but nothing change. Any sugestion what the problem?