Introduction
This guide allows owners of 1st Generation DisplayPort Expansion Cards to update to the 2nd Generation Firmware.
After over a year of prototyping and experiments, we've been able to come up with a way to reduce system power consumption when a DisplayPort Expansion Card is present, by making the card pretend that it is not a display output when there is no monitor connected.
The tools provided by our vendor for this update process are Windows only.
-
-
First you will need to download the Windows Executables from here and unzip them.
-
There should be two files Framework_ReadVersion.exe and Framework_DP_Card_3.0.17.101.exe
-
-
-
In order to run the updater the Expansion Card must be installed in your Framework Laptop
Does it have to be a framework laptop or would any USB-C Thunderbolt port on any computer work?
I've got no Windows on my Framework, so no way to perform the update unless we are talking about hacks like Wine or using a VM.
But there is other computers with Windows around.
According to an answer on Reddit by a staff member(?) a framework laptop is not required for this process.
Till -
-
-
-
Run Framework_ReadVersion.exe to check that is not already on the 101 firmware.
-
If you receive an error about VCRUNTIME140.dll, make sure you have both the X86 and X64 versions of Microsoft Visual C++ Redistributable installed.
-
When trying to run the executable you will likely be prompted by Windows Defender. Simply click More Info and then Run Anyway.
-
Once this runs you can check the Image 1 Version and Image 2 Version. In this image the build version is 101.
-
-
-
Run Framework_DP_Card_3.0.17.101.exe
-
When trying to run the executable you will likely be prompted by Windows Defender. Simply click More Info and then Run Anyway.
-
The Flash process will be started automatically.
-
Hit any key after it tells you to.
-
-
-
Run Framework_ReadVersion.exe again to confirm that both flash regions state 101.
-
If you find you need to downgrade to the Gen 1 Firmware, you can do so by downloading the files from this link, and repeating steps 3-5 using these files instead.
Same here! Would be great to have a Linux version of this upgrader.
-
Cancel: I did not complete this guide.
8 other people completed this guide.
16 Comments
Pretty straight forward. Just need to do the HDMI card now.
I created an USB bootable Windows To Go using Rufus. Then I copied/extracted the firmware files to the boot media. After booting up and logging in, I tried running Framework_ReadVersion.exe, that ends in mfc140.dll and vcruntime140.dll both missing error. Reinstalling the latest Visual Studio redistributable did not solve the error.
Probably. The updater needs the 32bit versions and additionally not "the latest", but specifically the "140" ones, which you should get follwing the link in my post (this will download the redist package with runtime library version 14.29 ).
If you like to get confused as I am about all the Microsoft something versions, have a look at https://en.wikipedia.org/wiki/Microsoft_...
Raphael -
AFAIR, I tried the 64-bit installer, only. Maybe this was a misunderstanding?
I know it's been a while since you posted, but did you actually install the 32-bit version of the redistributable?
Raphael -
Nevermind, I updated my DisplayPort Expansion Card by using another Windows Dual Boot PC. Though, I needed to get an USB Type-C to Adapter first.
I run only Linux (KDE Neon) on my Framework 13, with no Windows partition or VM. Is a Linux firmware update coming, or failing that, can I update the card from any generic Windows machine, ideally without administrator privileges?
A Linux firmware update tool is coming, we're working on it now. I have been actively testing it. No ETA, but as a full time Linux user myself, I have been testing it with great interest. Appreciate your patience.
Matt Hartley
Framework Support Linux Lead
Hi, I had a similar issue. I only run Fedora Linux on my framework. I managed to update my card by spinning up a fresh Windows 10 install in a virtual machine. My VM software allowed me to pass the USB display port card into the Windows VM. From there I was able to use both tools provided in the download just fine.
If they give you an error when you first try and run them, install the latest Visual Studio C++ redistributable from Microsoft's website. It should work fine after that is installed.
You can update from any computer, as long as it has an USB-C port. I think administrator privilege is needed, though.
A Framework team member has explained on Reddit why there is no Linux way to update the firmware:
The tool provided by our Expansion Card manufacturing partner is unfortunately only built for Windows and we had to obtain permission to release it publicly for firmware flashing purposes. We know this is not ideal for our Linux Community, but there was no other available option given it is their software.
Silejonu -
@raphha would you mind explaining how you did it exactly?
I've been trying for an hour to pass the DisplayPort module to the Windows guest in virt-manager for an hour, but no matter what I did, the Framework executables would refuse to recognise it. My USB-A modules are getting passed correctly, it's just the DisplayPort that's problematic.
Hello Silejonu,
I am using Linux Mint on my 12th gen Framework laptop and just updated the DisplayPort card successfully. At first the USB-pass-through wouldn't work until I ran virtualbox as root. Here are my steps to get it working:
1. Download a Windows 11 virtual machine for virtualbox (google for "download windows 11 virtual machine")
2. Not sure if really necessary, but I installed the virtual box extension pack to use usb-3: sudo apt install virtualbox-ext-pack
3. (Re-)Start virtualbox as root: sudo virtualbox
4. Import Windows 11 VM and go to Settings -> USB: select USB 3.0 and add a filter for the DisplayPort-Adapter
5. Start the VM and follow the instructions
Hope that helps.
@raphha Thanks for detailed explanation. That's exactly what I was doing, and I could not see what was wrong with what I did. I could not find my DisplayPort expansion card in the "USB Host Device" category, so I thought it was under a generic name in a random category, or I had to add something else first for it to show up.
As it turns out, it's just that my expansion card is physically dead. The last time I used it, it worked without issues, but I hadn't used it in a while, and it decided to killed itself randomly for no apparent reason. Looking at the forums, it seems this is a very common occurrence with this card.
Hopefully the new batch is of better quality, but I probably won't gamble my money on testing it.
Silejonu -
Hello Silejonu,
+ open virt-manager
+ select windows machine
+ add device
+ choose usb host device
+ choose Framework DisplayPort Expansion Card
+ Done and boot the vm
+ "bonus" way: I could also hotplug it from within the running vm:
- in the KVM window menu select Virtual Maschine, pass on USB unit (text may be slightly different, translating from German UI)
- choose the expansion card there and wait for a few seconds, in my case windows installed the device/something whatever and gave me a "device ready" notification at the end
and also it might be worth checking your windows setup - mine is a mostly fresh install of 64bit Windows 10 (Win10_22H2_EnglishInternational_x64.iso) - I only used it to read a medical device which for there is no linux software - and for the fw DisplayPort update.
Good luck!
Raphael -
Is there also an instruction for linux or is it distributed there via Linux Vendor Firmware Service?
Hello,
I just ran the update from a windows 10 virtual machine (virt-manager, passing the DP USB host device to the VM).
Initial troubles: both the Framework_ReadVersion.exe and Framework_DP_Card_3.0.17.101.exe wouldn't run because of missing dlls (vcruntime.dll and mfc140.dll). Turns out I needed to install the 32bit redistributables (vc_redist.x86.exe) even though I am on a 64bit machine.
You can get the redist-installer directly from MS here: https://aka.ms/vs/16/release/vc_redist.x...
After installing that and rebooting, I had to reconnect the DP Adapter and run Framework_DP_Card_3.0.17.101.exe both two times, so that both flash regions were updated to 101.
Hope this helps, expecially the linux users, who probably won't install windows on their laptop just for the update :)
Raphael -