Frame.work is a new company that appeared eariler this year. They announced that they were going to make a laptop focusing on repair-ability, with replaceable interface modules. I didn’t really need another laptop, but I was very interested in the idea and wanted to support them, so I preordered one as soon as preorders started up. That laptop arrived here a few weeks ago, and I used it as my main laptop last few weeks.
Framework offered several already assembled models, as well as a “DYI” edition where you could get the base laptop and as many or as few add on parts as you liked. I of course went for the DIY edition.
The packaging was the typical these days recycled cardboard and paper, but all very nicely packed and professional looking. In the box was the body of the laptop itself (the screen/keyboard/motherboard) and then small packages with the parts: memory, wireless card, nvme storage stick, and modules. Framework wanted to ship the DYI edition completely disassembled so you had to do a lot more assembly, but it turns out there’s a bunch of silly rules about laptops vs laptop parts and if they shipped the unassembed version they would run afoul of customs and shipping and taxes rules. There’s no instructions or manual in the box aside from a small “user manual” that just describes the features of the latop (where the switches and ports are) and has a bunch of regulatory information. It also comes with a torx tool/screwdriver/spludger, which is a nice touch.
After unpacking and looking at everything I poked around and found https://guides.frame.work/Guide/Framework+Laptop+DIY+Edition+Quick+Start+Guide/57 that describes how to assemble things. The hardest part was getting the wireless card antenna connected and running the right way, everything else was a complete dream.The captive screws for the cover was a super nice touch. I managed to get everything installed and assembled in about 10min (and that was with some kittens wandering around distracting me 🙂
Some general pictures and observations on hardware:
- In general as many have noted the laptop reminds heavily of the older macbook pro 13″ models. Might be the aluminum case, or the keyboard layout or just everything. Thats not a bad thing, just an observation. The laptop seems solid and well constructed. Some reviews said the hinge was somewhat flimsy, but the one I have doesn’t show that at all. It seems quite solid and workable.
- The power/fingerprint reader button in the upper right has a light/glow around it when the laptop is on. Currently there isn’t any way to adjust this, but apparently its hooked into the EC so it might be possible to get firmware or linux able to adjust/disable it. It doesn’t bother me, but some folks don’t like it in dark rooms.
- You can charge from any of the expansion card ports if you have a usb-c card in there. On both the right and left side in between the expansion card bays is a charging light. So, if you plug power into a bay on the right, the light on the right will light up to indicate charging.
- The expansion cards are just usb-c to whatever. You could just connect directly to the usb-c connector in the bay if you wanted to for some reason. The usb-c expansion cards are just basically passthroughs. frame.work has released 3d models for the cards and is even funding people’s production of card ideas. See https://github.com/FrameworkComputer/ExpansionCards for all the details. Someone has even already come out with a ‘storage’ card (bascially lets you store things like microsd cards or 3 m&m’s or something). See https://community.frame.work/t/the-snack-drawer-has-arrived/5757 framework is working on a ethernet card.
- There is a headphone jack… for people who like that sort of thing. I doubt I will ever use it.
- You can tilt the screen all way back, 180degrees (or a bit more). I don’t often need that, but the dell xps 13 I have only goes about 120degrees and it’s sometimes anoying.
- The keyboard backlight has 4 settings, which you can step through with function space. low, med, high and off.
- The hinge is kind of square and has a gap behind it when opening. Until I got used to it I found it to sometimes pinch my legs when opening it on my lap. This seemed to only happen the first few times I opened it so not really a big deal.
- The camera and microphone have disable switches (showing red when disabled).
- There’s a light sensor next to the microphone on/off switch.
- The firmware is a “InsydeH2O” (which I think is a 3rd party that ibm also uses on some of their laptops). Framework has expressed interest in getting coreboot working. There’s a complete firmware guide at https://community.frame.work/t/bios-guide/4178 They also are going to release the EC part of their firmware
- Framework has a ‘testing’ account on fwupd and plans to release firmware updates there.
- You can boot from: nvme, usb stick, microsd in the microsd expansion, and any of the storage expansions.
- There is a small button between the expansion card bays on both sides on the bottom of the laptop. That button is a release then you can extract a expansion card. I’ve found this to be somewhat difficult, which is ok as I wouldn’t want cards sliding too easily out, but it could be a tad easier to extract them.
- The screen is a ‘2k’ screen. 3:2 aspect with 2256×1504 pixels. It’s a nice bright screen, but I do miss the 4k screen on the dell xps 13 I was using (more on that below)
I choose the middle of the 3 cpu options available. There was a i5, a i7 midrange and a i7 top end. The top end i7 was quite a bit more, so the middle option seemed good to me. For storage I went with a midrange option too, a 512GB WD nvme. Finally for memory, I saw that the laptop supported 64GB, and since you can never have too much memory thats what I went with (2 32GB dimms).
There’s lots of things framework plans to do moving forward, but I am sure all of those depend on how well the laptop sells. They did sell out of their first batch thought, so thats a good sign. A few things that they have in the works:
- As mentioned above, they are working on a gigabit ethernet expansion card. I will definitely get one of those.
- Also related to expansion cards, they are planning a ‘marketplace’ for people to produce and sell whatever crazy cards they make. Also in this marketplace will be replacement parts for the laptop and things like different colored display bezels, different keyboards (they are planning a transparent one ,which could be fun).
- They have gotten tons of requests for AMD cpus or arm cpus or something else cpus. So, hopefully they will be able to ship new replacement motherboards someday with these. I would jump on a aarch64 mainboard in a second. 🙂
- They have also gotten requests for different display options. I might be interested in a 4k display.
- Finally there are folks wanting a 15″ form factor. I have no idea why anyone would want that, but I suppose they might release one.
Moving on now to software. The DIY edition doesn’t come with any OS, you can choose or use your own.This is of course exactly what I wanted. A quick download and boot on the Fedora Rawhide workstation image on usb stick and a install and Fedora was up and running nicely. Since I used rawhide I avoided two small gotchas for stable release users: You need a newer kernel to support wireless/bluetooth (use a Fedora respin) and a newer fprint package to get the fingerprint reader working.
Some software impressions:
- Aside the wireless needing newer kernel and fingerprint reader needing newer fprintd, Fedora workstation just works on the laptop.
- The screen is nice and bright. I do wish there was a 4k option, but that of course would affect performance and battery life (see below on that)
- Everything is really fast. The Xe graphics + fast cpu + enough memory to cache everything you do makes this laptop a joy to use.
- Switching between this laptop and my dell xps 13 9300 make me realize how little state I actually store locally. Newsflash/rss feeds are all in my tinytinyrss server, hexchat messages are all in znc on my main server, mail is synced from main server to both laptops with mbsync, and as long as a sync happens when I switch everything is on the other laptop, element, discord all store state elsewhere. Firefox does have local state, but I can share links easily so that was not a big problem. Git repos? I don’t tend to have things I work on for a long time in git repos, so as long as I finish and push a pr or commit I can just pull on the other laptop and be in sync.
- Fingerprint reader works great (apply updates if you are on f34). I’m not sure I will want to keep using it, especially when traveling, but it’s kinda nice here at home.
- kvm / virt works fine. Installing a Fedora 35 vm took just a few minutes and had no problems.
- The default suspend level is s2idle, which uses quite a lot of power while sleeping. You can switch to ‘deep’ sleep mode by doing a quick grubby call to update kernel command arguments and rebooting:
grubby --update-kernel=ALL --args="mem_sleep_default=deep"
Now, lets talk about battery life. There’s been some reports that battery life is really poor, and I can understand why people think so. In the early days of laptops, the laptop consumed about the same amount of power no matter what it was doing. This made is easy to show how much battery life you had left and estimates were pretty accurate. Fast forward to todays modern laptops and… it’s utterly different. You have a ton of adjustments you can make: The brightness of the screen can reduce power use, what you are currently doing on the laptop matters much more, and the cpu has a million things it can do to save power or not. Sadly, it’s not even as clear as that however. Consider you are on your laptop on battery power. You need to finish a spreadsheet. So, you want the cpu to run as slowly as possible, but… when you go to recalculate a bunch of things, the cpu going slow and taking 5minutes to do something it could do in 15seconds on higher power use actually net drops you power. It would be much better to be able to burst up and do something quickly and use that power for 15seconds than it would be to not and use 5minutes of lower power. You also have to take into account fans and heat and GPU and… it’s complicated. So, all this complexity and knobs you can adjust result in seeing accurate estimates of how much battery life you have left, but only if you are doing _exactly_ what you are doing right now. There’s a ton of linux tools related to power management now: thermald, powertop, tlp, tuned, and the newest entry: power-profiles-daemon
On the framework laptop on battery, I can see anything from 2hours (in google meet video call with bluetooth headset on, camera on, performance setting) to 14hours (low backlight, camera off, openvpn off, keyboard backlight lowest, powertop auto-tuned, powersave dynamic profile). Powertop is quite useful for tracking down things that are using power. Using it:
- The usb camera draws a ton of power, even when not in use (this might be because it’s not auto suspending correctly?) But you can fortunately just use the switch next to it to disable it when you want to save some power.
- Folks on the framework community site are seeing a similar thing with the HDMI expansion card.
- I was also seeing similar with the microsd card expansion card.
- bluetooth also draws some even if you aren’t connected to any bluetooth devices (sub 1w)
- power profiles are by far the best method to get more battery life. Moving from performance mode to power-save adds about 3 hours to the estimates.
- If you do ‘powertop –auto-tune’, beware that btusb doesn’t handle auto suspend right and if you reboot it will load, but not work at all. You then need to rmmod btusb and ‘modprobe btusb enable_autosuspend=n’ to get it working again. It won’t work even after reboots until you reload it without autosuspend. That one confused me for quite a while.
- For some reason my work vpn (openvpn) uses a fair bit of power. Wireguard which I use for home seems much more energy efficent here.
In the end battery life is going to vary depending on what you want to do and how long you want it to take. I was planning on seeing how well I could do on battery during a ‘normal’ day, but I didn’t get to it. I suspect many people never run their laptops on battery (or just when moving from place to place) or only use battery much when traveling (remember when we used to do that?). I admit to being kind of in that boat myself… the only times I am on battery is when I go outside on the deck or am needing to do something in the car while someone else drives. The battery life on my xps 13 9300 is much worse than the frame.work laptop. It makes some sense however, as it’s a older generation cpu, a 4k screen (sucks much more power) and a smaller battery.
So, speaking of the two laptops, how do they compare? Well, on the pro xps 13 9300 side:
- smaller / lighter
- no bezel around display
- display is 4k
- display is a touchscreen. I admit to almost never using the touchscreen. The only exception being miro boards… somehow touchscreen helps navigating those.
And cons of the xps 13 9300:
- battery life not good
- only 2 usb-c ports, thats it. (well, microsd also I guess if that counts for anything)
- graphics are kind of sluggish
- no fingerprint reader (it has one, but doesn’t work under linux)
Pros for the frame.work:
- Better battery life
- fast fast fast. Both cpu wise and graphics wise.
- Screen is lower resolution, but I think it’s brighter/better colors
- camera is higher res (1080p vs 720p)
- Repairability/Replacability is much nicer. I spent an entire day replacing the keyboard in my dell.
And Cons for the frame.work:
- Lower resolution screen, and 3:2 is weird after using 16:10
- bigger bezel around display
So, which laptop will I use day to day? I’m not fully sure yet. 🙂 I might keep switching or see how I feel after longer.
Overall the framework laptop is a pretty darn nice laptop. I really hope frame.work is around for many years and we get to see neat things like new cards, new motherboards, new screens and so on. A aarch64 motherboard would be fantastic!
WordPress openid is somewhat fragile, so if you want to ask me anything about this review, feel free to ping me on mastodon: @email@example.com or drop me an email: firstname.lastname@example.org
References / more reading: