Acer Aspire TimelineX 3820TG mods/tweaks ONLY!

Discussion in 'Acer' started by prikolchik, Mar 16, 2011.

Thread Status:
Not open for further replies.
  1. _InKr_

    _InKr_ Notebook Guru

    Reputations:
    11
    Messages:
    72
    Likes Received:
    0
    Trophy Points:
    15
    Well. Added support for using WinRing0. It works but... Need superadmin privileges which make things very annoying especially when adding program to Autorun.

    So I think I'll keep TVicPort support (it does not need superadmin rights to work) for those who has UAC on. Other could use WinRing0.

    Now need to spend some time to write short guide how to install/use my utility.
     
  2. prikolchik

    prikolchik Notebook Evangelist

    Reputations:
    259
    Messages:
    362
    Likes Received:
    3
    Trophy Points:
    30
  3. _InKr_

    _InKr_ Notebook Guru

    Reputations:
    11
    Messages:
    72
    Likes Received:
    0
    Trophy Points:
    15
  4. prikolchik

    prikolchik Notebook Evangelist

    Reputations:
    259
    Messages:
    362
    Likes Received:
    3
    Trophy Points:
    30
    Just gave your program a try on Windows 7 64-bit. Seems to control fan OK.

    Are you planning on sharing the source code anytime soon? It would be interesting to see how it works!

    Comments:
    1. It needs a short unique name that is clearly highlighted. I think "Fan Speed Regulator" is too generic and too long. Something like "3820ctl" or something that has "Timeline" in the name?
    2. Add an "Apply" button next to where you change fan speeds?
    3. To get ATI temperature, maybe have a look at the source code for Open Hardware Monitor. You could probably use an existing solution.
    4. You should write your program is such a way that it is possible to easily add support for other computers. Even though 3820TG has Phoenix BIOS and 4820TG/5820TG have InsydeH2O BIOS, I think fan control should be very similar. There is no information yet on fan control on 4820/5820. I might borrow 4820 tomorrow just to figure out how to control the fan :cool:


    Potential bugs:
    1. You shouldn't reset "Current" to "0" if "Auto" check box is ticked, because if it is unticked back then the fan speed is set to manually off (speed of "0"). Perhaps, a better alternative to resetting to default "0" would be to make "Current" text box read-only when fan is set to Auto?

    Bugs:
    1. When starting FanSpdReg.exe with RWEverything open on EC I got an error.
    [​IMG]
    I know you mentioned the problem with reading garbage values with RWEverything open, so maybe you should give a better error message? Telling the user what happened and suggesting they close RWEverything if open?

    2. Serious bug: It is possible to start two copies of your program and running two at the same time creates a race condition. The fan keeps trying to slow down and speed up at the same time. You shouldn't allow more than one instance running.

    3. There seems to be something wrong with calculating current RPM speed. If I set Max to "63" and fan is actually spinning at "62", then Current will show "62", and if the actual speed increases to "63+", you program shows "100". There is a sudden jump from 62 to 100 when actual speed increated only by 1%.

    4. Serious bug: If I set the fan to manual and speed to "0" and kill your program with Task Manager, then it doesn't restore fan speed back to Auto. This is a serious bug, as hardware could be damaged due to overheating if your program crashes and doesn't restore fan control back to Auto. You should make sure you change the fan speed back to Auto if your program doesn't end properly.
     
  5. zsero

    zsero Notebook Deity

    Reputations:
    281
    Messages:
    957
    Likes Received:
    0
    Trophy Points:
    30
    Guys, why do we need our own fan control? We can just put the values in tpfancontrol.ini and like with any other Acer laptop.

    prikolchik, I've actually pasted the control bits and the DSDT code a while back in the big forum, but its so big that I'm not surprised that you didn't know about it.

    An other question: can we use HWEverything to set CMOS bit 0x141 to 1?

    OH, the BIOS tweak is a godsend.

    Finally my laptop has a REAL Intel card and a REAL AMD card. No stuping switching graphics anymore! For me, going into BIOS and switching graphics is much much much less of a hassle compared to the non-existent driver support for our notebooks' display switching.

    Finally installing SP1, better Intel drivers, better AMD drivers, everything seems good now!
     
  6. prikolchik

    prikolchik Notebook Evangelist

    Reputations:
    259
    Messages:
    362
    Likes Received:
    3
    Trophy Points:
    30
    I am glad you found it useful. You should thank kizwan for it.

    Because no one told us we could use it and no one tried it :cool:

    Hmm, where were you a week ago, when I was figuring this out? :D

    You only posted TZ (TimeZone) DSDT code, which is responsible for temperature reporting.

    To save you the trouble of looking over your old posts, here is what you posted on the topic: here, here, here. Unfortunately, the information you had was incomplete. And you did not find the fan mode bit, and therefore could not control the fans ;)


    I have looked deeper into controlling the brightness than you did, as I wanted to have "unsupported" (levels that are not listed in DSDT table _BCL()) low brightness levels. If there is a way to switch brightness control to manual like there is for fan, then that would be amazing. I haven't found it yet and I doubt there is one.

    As for brightness, here is what I know so far:
    [0x83] - When you press hotkeys, in ACPI (DSDT table has the code) it sets 0-3 bits to 0x0-0x9 OR 4-7 bits to 0x0-0x9 depending on the value of two variables (BCEN and BNVA?) in DSDT. Then, after this change has happened, something other than DSDT treats these numbers in [0x83] as an index for an array of brightness levels, which is returned via _BCL() function in DSDT. It looks up the brightness level corresponding to the index, adds 0x03 to it (I wonder why) and copies this value to [0x84] and [0x87].
    [0x84] - Stores the brightness on ATI card. It can be changed to 0x03-0x67 (0-100 + 3)
    [0x87] - Stores the brightness value on Intel card, which is then fed to a SXBL() (or something? cant remember the name) DSDT function that sets the brightness to that value. This brightness is set by writing to some location in the RAM. (see my post on previous page).

    Do you remember how you couldn't change brightness when running in Switchable->Discrete mode on ATI-only with certain drivers? Well, on ATI card you can change the brightness directly by writing to [0x84]. This also works on Linux. I haven't tested it on Graphics->Switchable->Currently running ATI though.


    It dazzles me as to why Acer engineers would make it THIS complicated, when they could have just took care of it in ACPI directly in _BCM() like they do on Acer Aspire 1410.

    Currently, I have managed to run on "unsupported" brightness levels by adding them to the list of supported brightness levels returned by _BCL() and then in Windows I use Win+X key shortcut to change current brightness to those unsupported levels. It does not work on Linux though as it relies on ACPI to do the job, when Windows relies on the video drivers.


    My ultimate goal is to have a complete control over brightness in Linux, so that I can set brightness to very low levels. Then I can delete Windows and never look back :D
     
  7. zsero

    zsero Notebook Deity

    Reputations:
    281
    Messages:
    957
    Likes Received:
    0
    Trophy Points:
    30
    Of course, I didn't figure out the control bit, but at least I tried and spent a stupid amount of time figuring it out.

    I think the only downside of using ACFancontrol is that it cannot control two fans. I was thinking about running two instances in parallel, but I don't know if it would be stable.
    Here is a thread for some ini files for Acer notebooks, we could enter ours too.
    FanControl Board - Working .ini files for ACFanControl

    For the display, I am really happy now, that I got rid of every switchable thing I had. I uninstalled all drivers, run Driver Sweeper 2.9 and installed the latest AMD in AMD mode, Intel in Intel mode and I just select in BIOS whenever I like. Takes 10 seconds and I have reliable GFX drivers now.

    I don't know brightness in Linux, I use VirtualBox for exactly these reasons. And I found that that I still really need snapshots for using Linux, there is just always something which goes wrong.

    Right now my biggest problem with the 3820TG is that it uses 2-3 W more after resume from hibernation, compared to a fresh restart. It is really really bad and I don't know how do solve it. It was like this ever since I had the laptop.
     
  8. _InKr_

    _InKr_ Notebook Guru

    Reputations:
    11
    Messages:
    72
    Likes Received:
    0
    Trophy Points:
    15
    @prikolchik

    Thank you for response.

    Not yet. Or not complete code. I can share sensors access classes but rest of the code is not in that state to be shared for public. Sorry.

    Actually it works not only with 3820, but with some other hardware that I have (or had). So it is more generic than 3820ctl :).

    Why you need this?

    Ok. I'll check this.

    I'm trying :).

    This is actually WAD :). When "auto" checkbox is unchecked this means that user has full control on fan speed and he can set everything hi wants there (0, 100 or whatever).

    Yes. This it the what I told about. And not only RWEverything is involved, but any app that reads/writes EC (eg. BatteryBar or even 3820TGTray) :(. Of course assertion is not a solution (it is only temporary solution). But suggest user to close any EC R/W app is not an option :(. I'm working on this now. Will add some thoughts later.

    Just don't run more that one then ;). Joking :). Well, I can add checking for running copy, but what to do if it was run by other user? The better way is to divide app on service and UI parts, but it will be complete redesign and I'm not ready to start it now. Maybe later.

    It is not with calculating, but still the same bug with incorrect EC reading. If I can't read from EC, I'm return 0, which means 100% for FAN speed. So we return to the question how to properly work with EC :(.

    :D. What are you suggesting to do here? The program was unexpectedly killed externally ;). How program can handle this?

    Well, once again, I will return with EC access thoughts later. Just give me some time.
     
  9. inteks

    inteks Notebook Evangelist

    Reputations:
    168
    Messages:
    372
    Likes Received:
    0
    Trophy Points:
    30
    the fan control in 3820tray is also near ready. soon i post an update.
    for those how like allinone tools ;)

    i made it stepless. user can input a temp/prozent table and 3820tray calulates all values between this steps. i could look like
    50C° 0%
    60C° 10%
    70C° 20%
    80C° 50%
    90C° 100%

    so @55C° it will be 5% ..... and so on

    i like it! it produce very smooth fanspeed changes
     
  10. zsero

    zsero Notebook Deity

    Reputations:
    281
    Messages:
    957
    Likes Received:
    0
    Trophy Points:
    30
    Is there anyone who knows something about disabling/enabling root PCI ports with Devcon and RWEverything? We could write an alternative AMD/Intel Graphics Switcher and just use the official drivers!

    Here is a compare about my PCI devices running on Intel only and AMD only mode:
    Text Compare

    Nando4 answer could be a good starting point, but the shifting of PCI buses makes me confused:
    http://forum.notebookreview.com/ace...ix-bios-bios-mod-request-184.html#post7270765
     
Loading...
Thread Status:
Not open for further replies.

Share This Page