Quantcast Acer Aspire TimelineX 3820TG mods/tweaks ONLY!

+ Reply to Thread
Page 1 of 32 1234511 ... LastLast
Results 1 to 10 of 313
  1. #1
    Notebook Evangelist
    Join Date
    Oct 2009
    Location
    Canada
    Posts
    362
    Rep Power
    13

    Default Acer Aspire TimelineX 3820TG mods/tweaks ONLY!

    This thread is for mods and tweaks only. If you have a general question about overclocking, installing drivers, about what case fits this laptop best, what LCD screen is good on Acer Aspire 3820T/TG/TZ/TGZ, etc, then please go to this thread http://forum.notebookreview.com/acer...-part-two.html

    If you have a tweak/hack/mod to share or have a question about, feel free to post it here.

    This front page will be updated with information about all the available mods and tweaks. If you notice something missing, either send me a PM or post in this thread.

    The goal of this thread is to gather all mods, tweaks and modification-oriented advice in one thread where it is easily accessible.

    Guides are welcome!

    Useful links:
    - Service guide/repair manual
    Service manual, also known as repair guide. Includes dissasembly information, a list of solutions to common hardware problems and description of error codes. It has instructions on how to flash BIOS, reset Supervisor password and other things.

    Useful tools:
    - [3820tray] Hardware Control PowerProfiles CPUMonitor.
    Software written by forum member inteks. It is designed to liberate you from the 3820TG woes. Among many things, it can: automatically prevents graphics switching on AC/battery, Standby, Hibernate. You can use it to OC CPU and GPU. It even lets you quiet down that pesky fan!
    Last edited by prikolchik; 23rd March 2011 at 09:29 PM.
    Asus UX32VD-DH71: i7-3517U 1.9GHz / 10GB DDR3 / 320GB HDD / Nvidia GT 620M 1G / 13.3 IPS FHD / Ubuntu 12.10
    Acer Aspire 3820TG-3022: i5-520M 2.4GHz / 8GB DDR3 / OCZ Vertex 3 120Gb SSD / ATI 5470 512MB / 13.3 WXGA / Ubuntu 10.10
    Windows tax refund. Get $65 for Windows! Linux. Wins.
    If you have a question to ask me, please PM! I do NOT check threads.

  2. #2
    Notebook Evangelist
    Join Date
    Oct 2009
    Location
    Canada
    Posts
    362
    Rep Power
    13

    Default Acer Aspire 3820T/3820TG/3820TZ/3820TGZ Fan control and other EC tweaks

    Using Embedded Controller (EC) to control your laptop's hardware. (by prikolchik)

    By following any instructions in this article you relieve the author of any liability resulting from your actions. In other words: if you break your computer -- then it is your problem!

    EVEN THOUGH THE CHANCE IS SMALL, IT IS POSSIBLE TO PERMANENTLY DAMAGE YOUR HARDWARE BY MAKING CHANGES TO EMBEDDED CONTROLLER (EC). DO NOT CONTINUE IF YOU DO NOT ACCEPT THE RISKS!


    Preface
    When author of this article was looking for a way to control fan speed on Acer TimelineX Aspire 3820T/3820TG/3820TZ/3820TGZ, he could not find any guides, instructions or easy-to-use tools that would aid him in his search. It took a lot of research, guesses, God's help and sheer luck for the author to succeed in his noble task. This article was written, because the author decided to share his findings with the rest of the world in hopes that it will aid others in tweaking their hardware in the way their heart desires.

    Throughout the article, the author refers to his laptop Acer Aspire 3820TG to provide real world examples.

    To have a deeper understanding of the article, the reader should be familiar with: 1) bits 2) bytes 3) binary numerical system 4) hexadecimal numerical system 5) general computer programming terms. This information can be found on Wikipedia.

    Please note: the information presented in this article was not properly researched and the reader should be aware that the author could be unintentionally providing false or outdated information.
    If you notice an error or have a suggestion, please contact the author (prikolchik) via Private Message on forum.notebookreview.com or leave a reply in this thread.

    Intro
    Laptops use Embedded Controller (EC) to control the battery charging operation and perform other tasks associated with starting and stopping the laptop. EC stores the current state of devices (should WiFi be on?), current information about the system (temperature, fan speed), control battery state (should the battery be charging?) and so on. ACPI directly communicates with EC and writes changes depending on the event that took place. For example, you press a hotkey to increase brightness and ACPI reacts to that hotkey. It increases the brightness, by doing calculations and writing changes to EC. After writing to EC, the brightness changes either on hardware level or via device drivers, that themselves read the values from EC and talk to other hardware to change the brightness level.

    Typically, what is referred to Embedded Controller is a micro-controller that has 256 (0x00-0xFF in hexadecimal) user-accessible bytes. Most of those bytes have a meaning and are responsible for controlling the hardware or providing information. For example, on 3820TG the byte at [0x93] stores the state of the CPU fan and byte at [0x94] stores the fan speed.

    In nutshell, Embedded Controller stores 256 numbers, and by reading and writing to EC, we can get information about the system and make changes to the state of computer hardware (such as fan control).

    Why would you want to read and write to Embedded Controller (EC)?
    The simple answer is: because you can! Writing to EC allows you to control hardware that cannot be controlled by other means in the way you want. For example, you can manually turn on/off WiFi, change brightness to "unsupported" levels, change fan speed or completely turn off the fan; all without using any special drivers or programs (apart from whatever you use to make changes to EC).

    For example, someone figures out how to control the fan and shares his findings, then a programmer writes a small utility to control the fan by reading and writing to EC. This program is then published on the Web and ordinary users can install and use this program to control the fan on their computers. There are many examples of such programs. Some of them are: tpfancontrol (Windows), 1810tray (Windows), a1ctl (Windows), acerhdf (Linux), acerfand (Linux). It is not uncommon for programmers to take existing fan control tools and port them to another system, or edit them to enable fan control on their hardware. If you plan on developing your own tool, then I highly suggest reusing existing solutions and if you end up writing your own tool, then make the source code available for others to modify.

    It is very important to note that it is rare to find two laptops that use Embedded Controller in the same way. So don't be surprised if changing some value in EC works on one laptop, but doesn't work on yours.

    How can you read and write to the Embedded Controller (EC)?
    There are many tools you can use to read and write to EC. On Windows, a popular tool is RWEverything and on Linux one of the tools is acer_ec.pl (a simple Perl script, that is considered unsafe and the use of it is depreciated). There may be other tools for both Windows and Linux, but the author did not look for any alternatives as both of those two tools worked well on his computer.

    Here is an example of Embedded Controller (EC) dump made with acer_ec.pl on Acer Aspire 3820TG (output format is changed from the original by author):
    Code:
    prikolchik@as3820tg:~$ sudo perl acer_ec.pl regs
    # note that "00" was replaced with "--" for readability
    
          00  01  02  03  04  05  06  07  |  08  09  0A  0B  0C  0D  0E  0F
          __  __  __  __  __  __  __  __  |  __  __  __  __  __  __  __  __
    00 |  --  20  --  --  --  32  2C  AF  |  06  --  44  14  --  --  --  30  
    10 |  03  --  03  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    20 |  --  --  --  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    30 |  --  --  --  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    40 |  --  --  --  --  --  --  --  --  |  --  0A  --  F4  02  --  --  01  
    50 |  10  01  03  --  --  01  81  --  |  --  --  --  --  40  --  --  --  
    60 |  80  80  80  --  --  --  --  --  |  1A  --  --  --  --  --  --  --  
    70 |  62  01  04  --  88  71  --  --  |  08  01  --  --  --  --  --  09  
    80 |  81  07  09  --  17  --  --  17  |  A9  --  --  06  --  --  --  --  
    90 |  --  --  --  04  FF  FF  04  FF  |  FF  B2  --  --  --  --  03  0B  
    A0 |  80  80  80  80  80  80  80  80  |  2B  1D  25  25  31  3B  05  --  
    B0 |  80  80  80  --  --  --  --  --  |  1A  --  --  --  --  --  01  --  
    C0 |  --  --  --  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    D0 |  62  67  57  5C  --  --  --  69  |  --  --  --  --  32  --  --  --  
    E0 |  54  16  54  16  64  --  --  --  |  EA  32  01  60  --  --  B8  0B  
    F0 |  30  57  2E  30  37  41  43  2E  |  30  31  2E  31  35  20  --  --
    An example of EC dump with RWEverything:


    So how do you figure out what the values in EC stand for?
    Before you start figuring out what you can do with EC on your machine, you should first spend the time and search the web to make sure there is no existing solution to your problem. Take your time, download the BIOS for your laptop and examine the README files to see what models your BIOS is compatible with. For example, you might not be able to find any information on fan control on Acer Aspire TimelineX 1410T, but after examining the README file included in the downloaded BIOS update you realise that 1410T BIOS works with 1810T/1810TZ. So you search for tweaks on 1810T, and find that there is an existing fan control tool that works with your 1410T laptop.

    Another good idea would be to search for all models from your laptop manufacturer and see if any existing tools or EC methods work on your model. For example, controls in EC on Acer 3820TG are somewhat similar to Acer Extensa 5220. It could significantly narrow down your search if you know approximately what you are looking for and how it could look like. This will significantly cut down on the time it takes you to find what you are looking for.

    If you can't find any existing solutions, then you could try figuring it out on your own. How? To tell you the truth, most of it are lucky guesses, a bit of experimentation and by making changes to the state of the computer hardware (such as using CPU intensive programs to make the fan turn on, or turning WiFi on/off) and observing what changes in EC as a result. For example, you notice that in byte located at [0x72] bit 1 changed from 1 to 0 when WiFi is turned off via a hotkey. You can then try changing [0x72] bit 1 back to 1 to see if that turns the WiFi back on.

    You should be careful and have some sort of a system to make sure you don't check the same byte twice. You can make changes to EC and see if anything changed in your system as a result. You CANNOT just blindly write EVERYWHERE in EC (this will be your last option if everything else fails), as some bytes/bits are indicators (such as temperature), some are recomputed every few milliseconds, so changing them will not lead to any result and the value will revert back and some bytes are "high importance" and changing them can lead to emergency shut down of your computer. For simplicity, if the byte you change changes itself back to the original value, then you can think of it as "read-only" byte. For example, on 3820TG when CapsLock is on, a value at [0x0C] bit 2 indicates whether CapsLock (itself or LED) is on or not. Changing this value will make no difference in the system, and bit will revert back to its old value automatically.

    Another more "scientific" approach is to examine the code that writes to EC. An example of such code would be Advanced Configuration and Power Interface (ACPI), which mostly consists of SSDT and DSDT (differentiated system description table). SSDT and DSDT tables are part of the computer's BIOS. SSDT/DSDT tables can be extracted by various tools, such as RWEverything (Windows) and acpi_dump (or simply by "cat /proc/acpi/tables/dsdt > somefile.aml") on Linux. The extracted table is in compiled AML byte code, and will need to be decompiled to get the original source code. The tool that can disassemble AML byte code into ASL source code is iASL. iASL is an abbreviation for "Intel ASL compiler/decompiler" and is a fully-featured translator for the ACPI Source Language (ASL) and ACPI binary data tables (more info). There are versions both for Linux (can use package manager to install) and Windows. It can be downloaded from here.

    Once you extract SSDT and DSDT tables and disassemble them into ASL source code, you can open the source code files with any text editor. It can be very difficult to understand at first, but google can be of great help, and fortunately, there is an excellent ACPI Specification paper, that describes both ACPI specifications and ASL language. One of the easiest ways to understand the soure code is to pay very close attention to the description of reserved methods in the ACPI specification paper and pay close attention to variable names, which may give clues as to what they mean. For example, WLEN could stand for "WireLess ENable" and store the status of the WiFi (whether it is enabled or not).

    If you are looking for controlling the fan, then try looking for "FAN". You might be able to find the fan control methods, or something that would give you a clue on what to look for in EC.

    If you feel like you can start looking for some real stuff, then search for "EmbeddedController" in SSDT/DSDT source files. Here is an example from DSDT table of Acer Aspire 3820TG (My comments are after //):
    Code:
    OperationRegion (RAM, EmbeddedControl, Zero, 0xFF) 
    Field (RAM, ByteAcc, Lock, Preserve)
    {
                Offset (0x0A), 
            ,   1,                // [0x0A] bit 0
        BLNK,   1,                // [0x0A] bit 1, makes System Power LED blink
        WLLD,   2,                // [0x0A] bit 2 & 3, status of the Wireless LED
        BTLD,   2,                // [0x0A] bit 4 & 5, status of the Bluetooth LED
                Offset (0x13), 
        URTB,   8,                // [0x0A] all bits
        //.... skipped lines
                Offset (0x71), 
        WLEN,   1,                //[0x71] bit 0, controls the status of Wireless 
        BTEN,   1,                //[0x71] bit 1, controls the status of Bluetooth
        //... skipped lines
                Offset (0x73), 
        WWEN,   1,                //[0x73] bit 0, controls the status of 3G card
                Offset (0x75), 
        SWBL,   1,  
        KLMA,   1,  
                Offset (0x76), 
        SYSC,   4,  
        SYSO,   4,  
                Offset (0xBA), 
        VTMP,   8                //[0xBA] all bits, just a video card temp variable?
    }
    As you can see, you can already start figuring something out just by looking at the variable names (WLEN, BTEN, etc). If you want to find out what information those variables store, then search for their name in the file and examine the code. This way you can approximately guess what each of the variables store. For example, one variable might be storing just a temporary number that is used in calculation (rare, but it is possible). As you are figuring out what the variables mean, you can look at your EC and if something interests you, then try changing it to see what happens.

    You should also search in the file for more "EmbeddedController" and for the actual name that is assigned to OperatingRegion with EmbeddedController (the name is "RAM" in this case).

    When you start figuring out what these variables mean, it would be a good idea to create a table (on paper, or speadsheet) the same size as EC table (16 by 16) and cross out the regions that do not interest you. For example, if you are looking for fan control, then you don't care about the variables that you know store battery charge information.

    Once you examined SSDT and DSDT tables and harvested as much information about what is stored in EC as you possibly could, then it is time to observe, change and experiment by making changes to EC.

    Here is how I figured it out how to control the fan on 3820TG:
    1) Look online for existing solution for my model. Nothing was found.
    2) Download BIOS and check what models it is compatible with, then search for tweaks for those models. Nothing.
    3) Search for guides and information about how to control the fan on other Acer laptops. Found a few very brief remarks and incomplete guides. Gave me a general direction to go to. Looked at source code for fan control tools to see what bytes in EC were responsible for fan control on other models.
    4) Examined DSDT & SSDT tables and created a list and a table of bytes in EC that I knew were not responsible for the fan control. Couldn't find any fan control information in DSDT.
    5) Observed RWEverything and ran some programs to make the fan speed change to cool down the CPU. I noted bytes stored at [0x94] (default 0xFF) and [0x95] (default 0xFF) change ONLY when the fan is running. I remembered reading that in every fan control example I read about, there was a byte that controlled whether the fan was on Auto or in Manual mode. So I changed byte at [0x93] (original value was 0x04) to some random value, simply because it was the closest one and it seemed logical. The value I entered was something like 0xBF, and I noticed that it automatically changed to another value, 0x14, and then both [0x94] and [0x95] changed to 0xB0 and 0xAF respectively, and the fan started running! That was a success! At first, I thought [0x94] and [0x95] both were telling me what the speed of the fan is, so I started looking for a byte that lets me change the fan speed. I couldn't find anything, so I simply went on google and typed "0x93 0x94 0x95 fan" and I ended up on some German forum, where one user was describing the fan control he found on Acer Extensa 5220. He was saying that [0x93] = fan mode (0x04=auto, 0x14=manual), [0x94] desired fan speed (0x00-0xFF, where 0x00 max and 0xFF minimum) and [0x95] actual fan speed (0x00-0xFF, where 0x00 max and 0xFF minimum). Once i read that, i changed [0x93] to 0x14, and set [0x94] to 0x00. My CPU fan turned on and it was clearly spinning on the max speed! I then changed [0x93] to 0x04 to put CPU fan back into automatic mode.
    6) Because on 3820TG you have two fans, one for CPU and one for GPU, I also wanted to figure out how to control the GPU fan. So, knowing how to control CPU fan, I looked for the similar 3 bytes. And I found them right after the CPU fan control bytes. GPU fan control bytes were: [0x96] (fan mode) [0x97] (desired fan speed] and [0x98] (actual fan speed).
    7) Played around by changing values and trying to control both CPU and GPU fan. It was a success!

    How I found out how to disable/enable WiFi in EC on 3820TG:
    1) Started RWEverything and looked at observed the values. Noticed ones that change repeatedly (probably temperature monitoring, battery charge level, some temp variables, etc) and was ignoring them.
    2) Kept disabling and enabling WiFi with different time periods to see what changed in EC as a result.
    3) Noticed that [0x71] bit 0 was changing from 0 to 1 and from 1 to 0. So I changed the value by hand and noticed that it turns on/off my WiFi card. Success!

    Wrap up
    So that is how you can find how to control the hardware of your laptop via EC. Now you can explore and find a way to control YOUR computer! Just remember the main points:
    1. Research, research, research and research.
    2. Don't blindly change things. Look for how it worked in other laptops.
    3. Take your time, do not give up.

    Good luck!



    Acer Aspire TimelineX 3820T/3820TG/3820TZ/3820TGZ Fan control and other Embedded Controller (EC) tweaks (by prikolchik)

    Here is the list of what we can control with Embedded Controller (EC) on Acer Aspire TimelineX 3820T/3820TG/3820TZ/3820TGZ.

    To apply these tweaks:

    - Windows. Use a program called RWEverything (download here). Once installed, launch it at the top you will find many buttons. Find one that says "EC" (or "Embedded Controller" if you hover your mouse over it) and click on it. You will see this:

    - Linux. I suggest using RWEverything on Windows, because it is much more convenient, but if you are too hardcore Linux then you can use acer_ec.pl (a simple command-line Perl script. It is considered unsafe and the use of it is depreciated). It worked fine on 3820TG, but there is no guarantee it works on other laptops. Here is an example of output:
    Code:
    prikolchik@as3820tg:~$ sudo perl acer_ec.pl regs
    # note that "00" was replaced with "--" for readability
    
          00  01  02  03  04  05  06  07  |  08  09  0A  0B  0C  0D  0E  0F
          __  __  __  __  __  __  __  __  |  __  __  __  __  __  __  __  __
    00 |  --  20  --  --  --  32  2C  AF  |  06  --  44  14  --  --  --  30  
    10 |  03  --  03  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    20 |  --  --  --  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    30 |  --  --  --  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    40 |  --  --  --  --  --  --  --  --  |  --  0A  --  F4  02  --  --  01  
    50 |  10  01  03  --  --  01  81  --  |  --  --  --  --  40  --  --  --  
    60 |  80  80  80  --  --  --  --  --  |  1A  --  --  --  --  --  --  --  
    70 |  62  01  04  --  88  71  --  --  |  08  01  --  --  --  --  --  09  
    80 |  81  07  09  --  17  --  --  17  |  A9  --  --  06  --  --  --  --  
    90 |  --  --  --  04  FF  FF  04  FF  |  FF  B2  --  --  --  --  03  0B  
    A0 |  80  80  80  80  80  80  80  80  |  2B  1D  25  25  31  3B  05  --  
    B0 |  80  80  80  --  --  --  --  --  |  1A  --  --  --  --  --  01  --  
    C0 |  --  --  --  --  --  --  --  --  |  --  --  --  --  --  --  --  --  
    D0 |  62  67  57  5C  --  --  --  69  |  --  --  --  --  32  --  --  --  
    E0 |  54  16  54  16  64  --  --  --  |  EA  32  01  60  --  --  B8  0B  
    F0 |  30  57  2E  30  37  41  43  2E  |  30  31  2E  31  35  20  --  --
    Those two tables above show what is stored in the Embedded Controller (EC) memory on your laptop. It is possible to get some information from these values (such as status of LEDs, CPU temperature, Fan speed) and change some of it.

    All the numbers that you see in this window are in hexadecimal. If you don't know what that is, take the time to look it up. Also read about binary numbers, understand what bits are, etc.

    The addresses in EC range from 0x00 to 0xFF. 16 numbers per row and 16 numbers per column. The way you tweak or read information is: find a place the in memory that interests you and read or change its value.

    ------------- Fan control: ----------------
    [0x93] - CPU fan: Fan mode. 0x04 Auto, 0x14 Manual
    [0x94] - CPU fan: Desired fan speed. 0x00-0xFF. With 0x00 being max speed and 0xFF means fan is off
    [0x95] - CPU fan: Actual fan speed (in %? See note below).

    [0x96] - GPU fan: Fan mode. 0x04 Auto, 0x14 Manual
    [0x97] - GPU fan: Desired fan speed. 0x00-0xFF. With 0x00 being max speed and 0xFF means fan is off
    [0x98] - GPU fan: Actual fan speed (in %? See note below).

    To test: Open RWEverything, click on Embedded Controller (EC), go to [0x93] and change it to 0x14. Then change [0x94] to 0x00. This will set CPU fan speed to maximum! Sounds like an airplane, doesn't it?
    --
    If [0x93]/[0x96] fan mode is set to Automatic (0x04), then changing [0x94]/[0x97] will not work. It will simply revert back to the old value.
    --
    If CPU fan is set to max speed (0x00) in [0x94] then the maximum fan speed it reaches is 0x60 in [0x95].
    If GPU fan is set to max speed (0x00) in [0x97] then the maximum fan speed it reaches is 0x45 in [0x98].
    --
    Fan speed steps and corresponding temperature in Celsius that triggers the change. (Looked at changes in EC [0x94] and [0x97] and at temps in HWMonitor to figure this out):

    CPU Fan speed : 0xFF 0xD0 0xB6 0x9E 0x81 ....
    CPU Temperature: <? ? ? ? ? ?

    GPU fan speed : 0xFF ...
    GPU Temprature : <?
    --
    NOTE on fan speed:
    The formula for calculating the actual fan speed in RPM is not yet known. I did find fan speed formulas for other Acer laptops (examined DSDT tables). There are no FAN tables or methods in 3820 DSDT, so we will have to figure out the fan speed formula ourselves. The formulas I found were:
    1) ((~VAL) & 0xFF) * 10. OR in other words: ( NOT(VAL) AND 0xFF) * 10
    2) 0x78000 / VAL
    3) 1350000 / 8 / VAL
    4) 1350000 / 4 / VAL

    Where VAL is the fan speed value from [0x94],[0x95],[0x97],[0x98].

    As far as I know, the only way we can find the true fan speed formula is to either measure the actual fan speed, or look up the data sheet for the fans and find the maximum (and minimum?) RPM speed. Then use those max/min values to find the formula, knowing that CPU can only go as high as 0x60 in [0x94], etc.

    I did some research, but I couldn't find any fan speed information apart from manufacturer and part number. Perhaps, we should email the fan manufacturer and ask for fan speeds?
    My computer:
    CPU fan: ADDA AB7505HX-R0B DC5V 0.20A (JM31) image
    GPU fan: ADDA AB5505HX-Q0B DC5V 0.20A (JM31) image

    Found on net:
    CPU fan: SUNON Model: MG057PFV1-A P/N: MG50060V1-B000-S99 image
    GPU fan: -Manufacturer- -Part number-

    --
    Information missing: (please help out!)
    1. Need to know max/min RPM of CPU and GPU fans for fan speed calculation.
    2. Need a screenshot of RWEverything EC window on 3820T. This model doesn't have GPU fan, so we need to see how EC reflects that.
    3. Need CPU/GPU fan speed steps that are there in Automatic mode (0x04). Also temperature in Celsius that triggers each change. Please include your BIOS version.

    ----------------------------------------------------

    RO - means read-only.
    SC - means sensor, changes dynamically.

    ------------- Misc: ----------------


    [0x77] - RO? - Fn key: If Fn key is pressed, it is equal to 0x04, otherwise 0x00. Maybe signals other keys too? It could be keyboard controller and we can send key signals to it?
    [0x87] - RO - Backlight/brightness level: From 0x00 (backlight off) to 0x64 (backlight 100%). This is a read-only copy of [0x84].
    ------------------------------------------------------------------


    ------------- LEDs: ----------------
    [0x0A] bit 1 - Power LED: if on(1) it will blink orange.
    [0x0C] bit 2 - RO - CapsLock (LED?): If CapsLock key is on, bit is set. (0x04)
    [0x0C] bit 4 - RO - NumLock (LED?) : If NumLock is on, bit is set. (0x10)
    [0x51] bit 0 - LED next to P button: on(1)/off(0).

    ------------------------------------------------------

    ------------- Devices: ----------------
    [0x0B] bit 0 - RO - Touchpad: Indicates whether touchpad is enabled (bit set 0x01) or disabled (bit unset 0x00).
    [0x71] bit 0 - WiFi status: On(1) or Off(0).
    [0x71] bit 1 - Bluetooth status: On(1) or Off(0).
    [0x73] bit 0 - WiFi LED or 3G status(?).

    ---------------------------------------------------------

    ------------- Sensors: ----------------
    [0xA8] - TZS0 in CPUID Hardware Monitor
    [0xA9] - TSZ1 in CPUID Hardware Monitor
    ---------------------------------------------------------

    More info to come!
    Last edited by prikolchik; 10th April 2011 at 08:36 PM.

  3. #3
    Notebook Evangelist
    Join Date
    Oct 2009
    Location
    Canada
    Posts
    362
    Rep Power
    13

    Default Linux on Acer Aspire 3820T/3820TG/3820TZ/3820TGZ

    I installed Ubuntu 10.10 64-bit on my 3820TG a few days ago and it is working great!

    You need to do a bit of tweaks here and there, but otherwise everything works out of the box. 1080p video playback using VLC player is completely smooth both on Intel and ATI right out of the box.

    Some tips:
    1. Do not install flgrx proprietary ATI driver. This will leave your system in an unbootable state. You can install it if you set video to Discrete in the BIOS, otherwise you will be stuck at the Terminal screen. Speaking from experience...
    2. To turn on/off Bluetooth press Fn+F3 once.
    3. To turn on/off Wi-fi press Fn+F3 twice (quickly).
    4. When you have Switchable graphics option set in BIOS, both ATI and Intel cards will be powered on, and the active one will be Intel. So you will need to manually turn off the unused card (see below). You can also switch between cards as computer is running (see below).
    5. When you are on Intel graphics -- HDMI-out will NOT work. This is the case both on Windows and Linux. Just the way it was designed (hardware). Works perfect on ATI.

    Some things you need to tweak:
    1. To adjust the screen brightness via the Fn+Left Arrow and Fn+Right Arrow keys, you need to add an option to the kernel boot command. Open a terminal and type: sudo gedit /etc/defaults/grub
    Look for the GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" line and change to: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"
    Now update grub with: sudo update-grub
    Reboot.

    2. Depending on the wireless card you have, there might be no wireless drivers pre-installed. If that is the case, then you will need to connect to the internet via cable and then go System->Administration->Hardware Drivers, select your Wireless card driver and click Activate. It should automatically install it for you. Reboot.
    If you have Broadcom wireless, then it probably doesn't work correctly. Uninstall default Ubuntu driver above and follow install a new one from here Broadcom.com - 802.11 Linux STA driver

    3. If graphics option is set to Switchable in the BIOS then both cards will be powered on by default. To save power and cut down on the heat, you can turn off the unused card (ATI) as Intel is good enough for day-to-day activities. You can do this by following this guide here. You should follow the steps up to and including installing switch_between_cards.sh. There is a bug in that script that prevents it from working on 3820TG, so you will need to fix the following two lines. You must add : once in every line after grep (notice the red):
    integrated=$(cat /sys/kernel/debug/vgaswitcheroo/switch | grep $pci_integrated | grep -o -P ':.:...:')
    discrete=$(cat /sys/kernel/debug/vgaswitcheroo/switch | grep $pci_discrete | grep -o -P ':.:...:')

    Fix to:
    integrated=$(cat /sys/kernel/debug/vgaswitcheroo/switch | grep :$pci_integrated | grep -o -P ':.:...:')
    discrete=$(cat /sys/kernel/debug/vgaswitcheroo/switch | grep :$pci_discrete | grep -o -P ':.:...:')
    Once fixed you can use this script to switch between graphics. Just make sure you save all your work before you switch as the script will log you out.

    4. The battery life isn't that great by default, so you might want to google for some power saving scripts and tweaks. I recall seeing a few on Ubuntu Forums specifically for 3820TG.


    That is all I've done so far to my install. You can google for instructions on enabling multitouch and two-finger scrolling on the touchpad (or see here). I haven't done it myself yet. I might permanently switch to Discrete graphics and try newest ATI proprietary flgrx graphics from ATI website. I'll be trying it out on a test install (external HDD).

    Cheers and have fun!

    Further reading: https://wiki.archlinux.org/index.php/Acer_TimelineX
    Replaced by vga_switcheroo, but still good for reference: [SOLVED] Acer 3820tg battery life - Ubuntu Forums
    TO stop WiFi LED blinking. Ubuntu 10.10: how to stop the wifi led blinking | xAppSoftware - the xAppSoftware Web Site
    Last edited by prikolchik; 16th March 2011 at 07:46 AM.

  4. #4
    Notebook Guru
    Join Date
    Oct 2010
    Posts
    72
    Rep Power
    9

    Default KBC BIOS fan speed mod

    Here is modded KBC for 1.19 BIOS.

    It implements following algorithm for CPU fan:
    TZ0<60 - 0% speed
    60-66 - fan is running at lowest possible speed F0 (lower that is used in original BIOS)
    >66 - not modified.

    Fan speed table has next values:
    FF FF FF F0 81 6F 6F 6F 6F

    How to install:
    1. In downloaded BIOS KBC folder replace original file with modded one.
    2. Run KBC.bat with admin privileges.

    No reboot is needed.
    Attached Files Attached Files
    Last edited by _InKr_; 15th April 2011 at 09:43 AM.

  5. #5
    Notebook Evangelist
    Join Date
    Oct 2009
    Location
    Canada
    Posts
    362
    Rep Power
    13

    Default BIOS mods and tweaks on Acer Aspire 3820T/3820TG/3820TZ/3820TGZ

    - "Intel Only" option in BIOS. Completely disable ATI/AMD card
    - Acer Aspire TimelineX 3820T/3820TG BIOS recovery (by prikolchik)
    - Clearing a BIOS Password on Acer Aspire 3820T/3820TG
    - Flashing BIOS + tips
    - Not a BIOS mod, buy CPU OC. Just saving link here for now OC regist

    Here will be information about different BIOS mods and tweaks.

    You can blindly reset to BIOS to default settings. Here is a list of steps:
    1. Get into BIOS with F2.
    2. Press F9 + Enter (this will load setup defaults)
    3. Press ESC + Enter + Enter (this will save the changes)
    4. Your computer reboots and you are back!
    This should work for 3820/4820/5820
    Last edited by prikolchik; 20th June 2011 at 11:23 PM.

  6. #6
    Notebook Evangelist
    Join Date
    Oct 2009
    Location
    Canada
    Posts
    362
    Rep Power
    13

    Default Hardware modifications on Acer Aspire 3820T/3820TG/3820TZ/3820TGZ

    Motherboard photos + Internal components

    You can get some motherboard photos here

    Components:
    - Winbond 25Q32BVSIG (image, pinout, datasheet)
    - Nuvoton NPCE781BA0DX image
    - Clockgen: SLG8LV595V (older) / ICS VS3197BL (newer)
    - CPU fan: ADDA AB7505HX-R0B DC5V 0.20A (JM31) image
    - GPU fan: ADDA AB5505HX-Q0B DC5V 0.20A (JM31) image
    - LCD+CCD 30-pin cable. JM31_CP (50.4HL.04.012)


    Adding SSD to PCI-e port

    You can solder on the 2nd PCI-e port, but according to NBF forum members, PCI portion is not connected, meaning you have only USB lines. On a Russian forum, someone mentioned that early models had PCI portion wired and it was possible to install SSD in those, but it was never officially confirmed.

    So... You can add a 2nd PCI-e port, but SSD will probably not work. You CAN install WiFi/3G card though or solder in a USB connector and have a 4th USB port on 3820TG.

    Adding PCI-e port and installing UTSM modem

    Link. Aternately, you can use Novatel EU850D as it has a sim slot right on the card. It is an older design though so might only be capable of 7Mb/S (link)

    Upgrading to higher resolution screen

    Sxooter tried 1600x900 LCD screen on 4820TG and it did not work. The panel was recognized and was drawn at full resolution, but only half of pixels were drawn on the screen. He made a thread to figure out what he can do to get it to work, and downloads pointed out that 4820TG has single LVDS screen connection and 1600x900 required dual LVDS. He also mentioned that with single LVDS you can use a screen resolution of up to 1440x900.

    So is upgrading to higher resolution screen possible on 3820TG? Probably, but only maximum of 1440x900
    .

    Some ideas for mods

    It may be possible to use USB lines from unsoldered 2nd PCI-e slot and create a 4th USB port. You could turn it on/off with a hotkey (as if it is a 3G module).

    After taking apart the laptop, I noted that Acer considered making CPU fan vent wider. It may be possible to use a carpenters knife to cut out extra holes for better ventilation. That is questionable mod, since 3820TG has an excellent cooling system already.

    Changing thermal paste

    Thermal paste used in laptops today is usually generic and low quality. It is worth taking the time and replace it with a better alternative. Brodsky reported a significant temperature drop after replacing CPU and GPU thermal paste with TIM IC7 Diamond thermal paste. He reported high 20s idle CPU temps.

    Backlit keyboard mod

    See Acer TimelineX 3820TG Backlit keyboard mod
    It is possible to purchase Acer 3810T backlit keyboard and install it into 3820TG. It is a bit thicker than 3820TG keyboard, so it might not be an easy fit and it could also leave marks on your screen, when laptop is closed.

    You can get Acer 3810T backlit keyboard on ebay for about $25+ship. Here is part number of the keyboard:
    Quote Originally Posted by raulilha View Post
    Vendor: Darfon Customer: Compal
    Language: UI Rev: 00
    DFE Model No.: NSK-AP01D
    DFE P/N.: 9J.N2C82.01D
    Compal P/N.: PK1307O1A01
    KB 908618D91600
    Keyboard connects to where normal stock keyboard does, and in order to power the keyboard backlight, you must solder it into somewhere on the motherboard (USB ports, fan ports, etc). raulilha connected backlit keyboard to Bluetooth switch wired like this.

    There was an idea of making a "switch" (sorry, don't know the proper term) out of status LEDs (here with diagram, and here) for turning on/off backlit keyboard. The idea is this: power backlit keyboard from USB port (or some other power source) and use a status LED as a switch. I think the best LED for turning keyboard on/off would be the P button (or Backup button as Acer calls it), because it is not really used for anything and LED status can be easily controlled by changing Embedded Controller register [0x51]bit0 by a small program (both on Windows and Linux). OR you could disable any software control and simply turn the LED on/off by pressing the button.

    VGA + HDMI monitors. Dual-monitor setup

    It is possible to have VGA + HDMI monitor setup when running on AMD/ATI graphics card (since Intel will not output to HDMI on dual-graphics models) as confirmed by Wally33. You will have to trim down the VGA cable so that VGA can be connected at the same time with HDMI (there is very little space between them). You cannot output to 3 monitors (2 external 1 internal), but you can to two (1 internal + 1 external OR 2 external). See it on Youtube: http://www.youtube.com/watch?v=l8-1hlotq5k
    Last edited by prikolchik; 11th April 2011 at 02:14 PM.

  7. #7
    Notebook Evangelist
    Join Date
    Oct 2009
    Location
    Canada
    Posts
    362
    Rep Power
    13

    Default Controlling switchable graphics on Acer Aspire 3820TG/3820TGZ

    Latest Switchable Graphics ATI/Intel drivers
    The drivers on Acer website are outdated. You can either fiddle around by switching to Intel-only and ATI-only and installing each graphics driver separately, OR you can install a modded driver package with Switchable Graphics support. You can get it here with instructions translated here.

    Prevent Graphics from Auto-switching
    NOTE: If you want to prevent auto-switching so that you could use Intel-only graphics, the please read about Intel-only graphics in hidden BIOS settings. This works great with Windows XP, where driver does not power down ATI card when on Intel.

    With original Acer drivers, when you plug-in or unplug the AC adapter from the laptop, it switches to a different graphics card to save power or increase performance. It is a feature, not a bug. In the driver, there is an option to disable it, but because driver is buggy, it does not work.

    After investigating, it was found that the graphics are switched by a service called AMD External Events Utility (C:\Windows\system32\atiesrxx.exe). If you prevent this service from running, then your graphics will NOT auto-switch, but unused graphics card will not be powered down and you will lose battery life. There is a way to prevent AMD External Events Utility from auto-switching graphics and having unused card powered down too. It can be done by disabling AMD External Events Utility service for two seconds on every SystemEvents.PowerModeChanged system event. inteks came up with this idea and added it to his [3820tray] Hardware Control PowerProfiles CPUMonitor program. It was confirmed by me that 3820tray is able to keep graphics from auto-switching even with Standby and Hibernate.

    This prevent auto-switching method should work pretty much on all computers with Intel/ATI dual-graphics configuration. (such as 4820TG, 5820TG)
    Last edited by prikolchik; 23rd March 2011 at 09:24 PM.

  8. #8
    Notebook Guru
    Join Date
    Oct 2010
    Posts
    72
    Rep Power
    9

    Default Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!

    Ufff... Seems TZ temps readings are up and working. The only thing that concerns me from sharing current version is than sometimes (especially when RWEverything is run in background) I'm getting junk instead of temp value.

    I found and use next code for EC access:
    Code:
        const int EC_DATAPORT = 0x0062;
        const int EC_CTRLPORT = 0x0066;
    
        const char EC_STAT_OBF = 0x01;    // Output buffer full
        const char EC_STAT_IBF = 0x02;    // Input buffer full
        const char EC_STAT_CMD = 0x08;    // Last write was a command write (0=data)
    
        const char EC_CTRLPORT_READ = (char)0x80;
        const char EC_CTRLPORT_WRITE = (char)0x81;
        const char EC_CTRLPORT_QUERY = (char)0x84;
    
    bool waitportstatus(int bits, int onoff= false, int timeout= 1000)
    {
    	bool ok= false;
    	int	port= EC_CTRLPORT,
    		time= 0,
    		tick= 10;
    
    	//
    	// wait until input on control port has desired state or times out
    	//
           for (time=0; time < timeout; time+= tick) {
                    DWORD data = PortIn(port);
                    // check for desired result
    		int flagstate= (((char)data) & bits)!=0,
    			wantedstate= onoff!=0;
    
    		if (flagstate==wantedstate) {
    			ok= true;
    			break;
    		}
    
    		// try again after a moment
    		::Sleep(tick);
    	}
    
    	return ok;
    }
    
    char EmbeddedController::ReadByte(int offset)
    {
      // wait for IBF and OBF to clear
      if (!waitportstatus(EC_STAT_IBF | EC_STAT_OBF, false)) return 0;
      // tell 'em we want to "READ"
      PortOut(EC_CTRLPORT, EC_CTRLPORT_READ);
      // wait for IBF to clear (command byte removed from EC's input queue)
      if (!waitportstatus(EC_STAT_IBF, false)) return 0;
      // tell 'em where we want to read from
      PortOut(EC_DATAPORT, offset);
      // wait for IBF to clear (address byte removed from EC's input queue)
      // Note: Techically we should waitportstatus(OBF,TRUE) here,(a byte being
      //       in the EC's output buffer being ready to read).  For some reason
      //       this never seems to happen
      if (!waitportstatus(EC_STAT_IBF, false)) return 0;
    
      return static_cast(PortIn(EC_DATAPORT));
    }
    Does anybody know maybe its not quite correct and another one should be used here?

  9. #9
    Notebook Deity
    Join Date
    May 2010
    Location
    germany
    Posts
    921
    Rep Power
    13

    Default Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!

    Quote Originally Posted by _InKr_ View Post
    Ufff... Seems TZ temps readings are up and working. The only thing that concerns me from sharing current version is than sometimes (especially when RWEverything is run in background) I'm getting junk instead of temp value.

    I found and use next code for EC access:
    Code:
        const int EC_DATAPORT = 0x0062;
        const int EC_CTRLPORT = 0x0066;
    
        const char EC_STAT_OBF = 0x01;    // Output buffer full
        const char EC_STAT_IBF = 0x02;    // Input buffer full
        const char EC_STAT_CMD = 0x08;    // Last write was a command write (0=data)
    
        const char EC_CTRLPORT_READ = (char)0x80;
        const char EC_CTRLPORT_WRITE = (char)0x81;
        const char EC_CTRLPORT_QUERY = (char)0x84;
    
    bool waitportstatus(int bits, int onoff= false, int timeout= 1000)
    {
    	bool ok= false;
    	int	port= EC_CTRLPORT,
    		time= 0,
    		tick= 10;
    
    	//
    	// wait until input on control port has desired state or times out
    	//
           for (time=0; time < timeout; time+= tick) {
                    DWORD data = PortIn(port);
                    // check for desired result
    		int flagstate= (((char)data) & bits)!=0,
    			wantedstate= onoff!=0;
    
    		if (flagstate==wantedstate) {
    			ok= true;
    			break;
    		}
    
    		// try again after a moment
    		::Sleep(tick);
    	}
    
    	return ok;
    }
    
    char EmbeddedController::ReadByte(int offset)
    {
      // wait for IBF and OBF to clear
      if (!waitportstatus(EC_STAT_IBF | EC_STAT_OBF, false)) return 0;
      // tell 'em we want to "READ"
      PortOut(EC_CTRLPORT, EC_CTRLPORT_READ);
      // wait for IBF to clear (command byte removed from EC's input queue)
      if (!waitportstatus(EC_STAT_IBF, false)) return 0;
      // tell 'em where we want to read from
      PortOut(EC_DATAPORT, offset);
      // wait for IBF to clear (address byte removed from EC's input queue)
      // Note: Techically we should waitportstatus(OBF,TRUE) here,(a byte being
      //       in the EC's output buffer being ready to read).  For some reason
      //       this never seems to happen
      if (!waitportstatus(EC_STAT_IBF, false)) return 0;
    
      return static_cast(PortIn(EC_DATAPORT));
    }
    Does anybody know maybe its not quite correct and another one should be used here?
    Both of you, you with winring and Read&Write Everything don't use a Mutex for the EC and this means, that you are reading and writing at the same time with two apps on one device. This creates trash.

    Search for a Mutex or look for the R&W Process before acessing the EC.

  10. #10
    Notebook Guru
    Join Date
    Oct 2010
    Posts
    72
    Rep Power
    9

    Default Re: Acer Aspire 3820T/3820TG/3820TZ/3820TGZ Fan control and other EC tweaks

    Quote Originally Posted by prikolchik View Post
    NOTE on fan speed:
    The formula for calculating the actual fan speed in RPM is not yet known. I did find fan speed formulas for other Acer laptops (examined DSDT tables). There are no FAN tables or methods in 3820 DSDT, so we will have to figure out the fan speed formula ourselves. The formulas I found were:
    1) ((~VAL) & 0xFF) * 10. OR in other words: ( NOT(VAL) AND 0xFF) * 10
    2) 0x78000 / VAL
    3) 1350000 / 8 / VAL
    4) 1350000 / 4 / VAL

    Where VAL is the fan speed value from [0x94],[0x95],[0x97],[0x98].
    Regarding Fan Speed formula, I can confirm that 3 and 4 (and probably 2) are working with 2 bytes VAL. So it is not applicable for our case, since we have only 1 byte VAL.

    1st looks more promising we only need to find proper constant instead of 10, because I don't believe that our CPU Fan has only 1600RPM max (~0x60)*10.

 

 
Page 1 of 32 1234511 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT -4. The time now is 03:14 AM.
Powered by vBulletin® Version 4.2.2
Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.
SEO by vBSEO 3.6.1