Acer Swift X (2021) - Owner's Thread

Discussion in 'Acer' started by axalt, Sep 17, 2021.

  1. axalt

    axalt Notebook Enthusiast

    Reputations:
    16
    Messages:
    42
    Likes Received:
    21
    Trophy Points:
    16
    As someone who travels for a living, I love this laptop. At 3.06 lbs it is the lightest gaming laptop you can buy. It's not marketed as such, and it only has a 60Hz screen but if you need the lightest laptop possible that can still play games this is it. The best part is that with 100w PD I don't even need to bring the power brick and can have one charger for all of my devices.


    Specs:
    • CPU: AMD Ryzen 5800U - Zen 3, 4.4 GHz boost, 37W sustained, 48W boost
    • GPU: Nvidia 3050ti - 40W TDP
    • Memory: 16GB, 4366 Mhz, LPDDR4X
    • Wifi: Mediatek 7920. I replaced it with an Intel AX200 with no problems.
    • Screen: 1080p, 60hz, 350 nits (mine was not overclockable)
    • Storage: two NVME gen 3 slots. Comes with 512GB SK Hynix drive.
    • Power: USB-C direct passthrough power delivery up to 100w (tested with watt meter). It might go higher but my PD charger only goes to 100W. It's limited to 90-93W when the battery is charged but it can go higher when charging the battery.

    I’ve spent a lot of time tweaking and modding this laptop to get the most of it. Here is what i have done and figured out so far.


    NotebookFanControl does not work with zen3 processors. The service just crashes and restarts continuously. ECprobe, which comes with NBFC, does work though and after playing with it for a long time I was able to determine some interesting registers.
    • 020: fan speed - read only
    • 016: corresponds to acer’s “Quick access - System Usage Mode”
      • 000 = normal
      • 002 = silent
      • 003 = performance

    Writing to register 016 can be used as a roundabout way of controlling the fan curve but even performance mode tops out at 13 (according to register 020).

    Then I remembered that when I did a bios update the fan sounded like a jet engine and figured there must be a register that controls it. I wrote a script to cycle through every register and write 0-255 to it before moving on to the next one and I found it.
    • 034: on/off switch for max fans when you write value 008. Register 020 shows a value of 20. Almost twice as fast as performance mode and allows the laptop to maintain 90W combined CPU and GPU without thermal throttling.

    I have included a script to toggle max fan mode.

    One of the reasons this laptop is so light is because it only has one fan and heatsink. It does a pretty good job under normal load, and while gaming on battery, but when using all 90w it gets a little toasty. I added some thermal pads to make contact with the magnesium chassis to spread the heat. It seems to help and the bottom doesn't really get hot enough to burn you, but it would be uncomfortable on your lap.

    I added 3 mm directly on top of the CPU (you will have to remove the plastic “screen” glued to the chassis) and 2mm on the heatpipe above the fan. I think if I did it again I would add a bigger strip above the CPU.
    [​IMG]

    Intel laptops are lightyears ahead of AMD when it comes to cpu control with XTU and throttlestop. Ryzen master only works with desktop CPU’s but luckily there is a program called ryzenadj that lets you adjust all sorts of things.
    • STAPM LIMIT - total package power limit (W)
    • PPT LIMIT FAST - boost power (W)
    • PPT LIMIT SLOW - sustained power (W)
    • THM LIMIT CORE - throttle temperature
    • STT LIMIT APU and STT LIMIT DGPU - I’m not quite sure what these values correspond to but I know they are related to temperature. At the default value of 40 the CPU will throttle pretty aggressively starting around 65 degrees. Changing them to 50 allowed the CPU to reach 95 degrees but that can be controlled by setting THM LIMIT CORE to whatever max temp you want.

    The process is very different from tuning intel laptops, choosing temperatures and powers vs clock speed and voltages, but it still works. Unfortunately, it's all command line and not very user friendly so I wrote some scripts to set different values depending on workload.
    • AC gaming - sets 25w sustained, 30w boost, 85 degree throttle temp, STT limits to 50. Changes the fan profile to performance.
    • Battery Gaming - same as AC gaming except 15w / 20w.
    • Max Battery - sets total package power to 5W, sustained power to 3W, and fan curve to “silent”. With the 3050 ti off i was still able to watch 4k video without problems.
    • Default CPU & fans - resets all default values. Useful if you need full CPU power.
    • RyzenInfo - Shows all ryzenadj values on a 1 sec loop. Useful for seeing what you computer is doing.

    The default scheduler for this CPU is pretty bad for battery life. At idle it will sit between 15-20w. But if you use ryzenadj to set the max package power to 5w, the entire computer will draw about 10w max giving you at least 5 hours on battery.

    That assumes that your 3050 ti is sleeping like it should. I don't know if it's all the tinkering I did or its a problem with the chipset / driver / etc.. but my 3050 ti either wouldn't sleep at all or would alternate between idle and sleep constantly. Even with no applications using the dgpu according to the nvidia usage icon in the taskbar. Idle power for the dgpu is about 12w which will destroy your battery life. I included scripts to disable / enable the dGPU in case anyone else had the same problem. Just disable when on battery and enable when you need it.

    Note: MSI afterburner will ping the GPU constantly keeping it idle. Exit the program or pause monitoring when on battery.

    Another problem I had is power consumption during sleep. Again, I don't know if because of my tinkering or the computer in general but the laptop doesn't really sleep. The screen turns off and media will stop playing, but it still draws 20-30w from the wall. Playing around with the unlocked bios I noticed some settings for “modern sleep” selected with “S3” as the other option. I will play with these and see if it solves the problem. In the meantime, setting the power options to hibernate when you close the lid seems to do the trick.

    I know, it sounds ridiculous to shunt mod an ultrabook but I noticed I was only pulling around 80w in games so I figured there is at least 10W of headroom for some extra GPU power.

    If your interested these are the resistors you need to shunt. The two R005’s just below the GPU VRMs (R22).
    [​IMG]

    All you need to remove is the wifi card to access them. Also disconnect the battery any time you plan on touching the motherboard. To add 10W you need to add two 1206 R20 (.02 Ohm) 1/2W resistors on top of the existing R005 resistors. I used these: https://www.digikey.com/en/products/detail/delta-electronics-cyntec/VSRP1206SD-R020F/9762072

    Materials needed:
    • Soldering gun with fine tip
    • .015 solder
    • No clean flux
    • Fine tip swabs
    • Desoldering braid just incase

    Instructions:
    • Clean everything you plan to solder with alcohol.
    • Attach some tape, sticky side up, to a table to hold the R020 in place while you tin the sides.
    • Apply some flux to the soldered ends of the R005 resistors.
    • Place the R020 with tweezers on top of the R005 and apply some pressure to the top to hold them in place.
    • Touch your solder tip to both ends to flow the solder and create the bond. You might need to add a little more solder depending on how much you tinned them.
    • Repeat for the other resistor.

    Results - wattage read from the wall with a watt meter.
    Overclock for all tests: 250 Core, 550 Memory

    Unigine superposition:
    • 40W: 2434, 57W
    • 50W: 2873, 76W
    3D mark Timespy:
    • 40W: 4060 graphics, 59W
    • 50W: 4498 graphics, 77W
    3D mark Firestrike:
    • 40W: 10823 graphics, 3900 combined, 59W
    • 50W: 11589 graphics, 4519 combined, 77W

    After the shunt mod my GPU temps still never went above 75. Over all, I am extremely happy with the results.

    I worked with Dudu over at bios-mods.com to unlock the bios to access AMD PBS and CBS settings. This allowed me to adjust all sorts of things including the infinity fabric frequency which is currently set to ¼ ratio (1067 Mhz). My laptop couldn't quite handle ½ ratio at 2133 Mhz stable but I was able to get it to 2100 Mhz and lower the memory clock to 2100 MHz (4200 DDR) to get ½ ratio. My latency went from 110 ns to 89 ns and my read speeds almost doubled in AIDA64 memory benchmark. Should provide an extra 5-10% boost in games.

    There should also be a way to undervolt the CPU in the bios, I'll look into that next.



    If you want to mod your bios don't update to 1.04. I did and had an extremely difficult time getting it to flash compared to 1.02. Could have just been a coincidence but I would stay on 1.02 to be safe. Send dudu an email at pythonic2016@gmail.com. He will ask you to dump your bios using software and send you a modified one to flash. It should be a quick process since he already figured it out with mine. Please tip him what you can. He will not demand it but he is one of the only people who offers this service.

    You will need an SPI programmer to flash the bios. If anybody is interested I will post more detailed instructions but its not for the faint of heart. You can check out bios-mods.com to get an idea of what is required.

    I feel compelled to post some essential tips just in case anybody wants to try it out.
    • AMD laptops use 1.8v for their bios chips. I tried two ch341a programmers and two 1.8v adapters and the only way i could get it to flash without errors is by disregarding the 1.8v adapter (using straight 3.3v) and connecting the laptop's power barrel plug with the main battery and CMOS battery unplugged. I have no idea why this worked but i suspect the laptop's charger was providing 1.8v which was averaging with the programmers 3.3v down to a lower value that the bios was happy with. ???
    • Read the bios at least twice and make sure the CRC's match before flashing. This way you know you have a good connection.
     

    Attached Files:

    Last edited: Sep 22, 2021
  2. downloads

    downloads No, Dee Dee, no! Super Moderator

    Reputations:
    7,724
    Messages:
    8,714
    Likes Received:
    2,203
    Trophy Points:
    331
    Thank you for that post - very interesting and comprehensive.
     
  3. jshih

    jshih Newbie

    Reputations:
    2
    Messages:
    4
    Likes Received:
    1
    Trophy Points:
    6
    Awesome post! Thank you for all the information!! I heard the jet-like fans when updating the BIOS as well haha.

    Quick question, when I try to run the max fans script, I get the message "could not load EC plugin. Try to run ec-probe with elevated privileges." I've set all the .exe to run as administrator, and I ran the scripts as an administrator to. Do you have any idea what may cause this? Thank you!!!

    Edit: Nevermind, I figured it out! For future users, I just simply typed out the command "ec-probe write 034 008" into PowerShell running on admin privileges. Not sure why the scripts weren't working.
     
    Last edited: Sep 22, 2021
  4. axalt

    axalt Notebook Enthusiast

    Reputations:
    16
    Messages:
    42
    Likes Received:
    21
    Trophy Points:
    16
    Thanks!

    I did a fresh windows install and noticed the same thing when I ran the script. I tried to strip down the NotebookFanControl files to only those essential for ecprobe but i think i missed a few files. I will upload a new version that works shortly.

    EDIT: I figured it out. I didn't miss any files. Windows just blocks files that came from another computer by default. If you right click on the zip file and check "unblock" before unzipping it then all the scripts will work. I have reuploaded the zip compressed with 7zip instead of windows built in compression which might solve the issue entirely.
     
    Last edited: Sep 22, 2021
    jshih likes this.
Loading...

Share This Page