I checked the keyboard debouncing logic [0] and it was fine. Some keyboards from other manufacturers, notably Lenovo Thinkpads, have absurd debouncing algorithms that scramble keys or add delays, so it's good to see Framework has a correct solution.
I've noticed that I seem to miskey my unlock password immediately after resuming from sleep way more often than when I use that password at other times, or when using an external keyboard (Lenovo T480). I always suspected that something was wonky, but a weird debounce bug would totally explain it, especially as I tend to type that password very quickly.
We used the chromium-ec logic as-is (checking git blame), but I believe did tune the debounce timer to match the characteristics of the keyboard itself.
Out of curiosity, is there anything in particular that you're looking for? On a cursory glance, whenever a key state is sampled as different to the previously reported state, it immediately reports a state change and locks out any further reports for a specified amount of time. So, the report goes out the moment the state changes, so long as you can't perceive the debounce time, which I presume would be a few dozen microseconds. (Rather than some debouncers I've seen which wait for the debounce period to end before sending the initial report)
I find the has_ghosting() function more problematic and reminds me of why C just sucks even if it is the appropriate choice.
c and c2 loop variables so a typo can hose you horribly. A global variable to hold the array length. ! instead of comparison to 0. Having to offset the second loop by 1. Early return which means the function will normally work fine but might result in N^2 extra time depending upon the data state. A bit trick relying on unsigned underflow without pointing out that unsigned is a key constraint even though it has a comment. An extra missing const on the incoming pointer (should be: const uint8_t * const). Braces left off the short-circuit if conditionals.
The worst part is I have personally written tons of functions like this. This is a "normal" function in C--in fact, it's far better than average.
The fact that you write C like this just shows how much we need something better.
This made me wonder if debouncing is also a thing with software keyboards? For years I have sworn that I type things correctly on the iPhone keyboard but it gets it wrong.
This reminds me of a weird issue I have with my Lenovo where sometimes the trackpoint and mouse buttons stop working until a reboot (but the trackpad still works.) I think I must trigger a race condition in the trackpoint drivers somehow but I have no idea how to debug it.
I've been so happy to see what Framework has been doing lately, and really want to support them, but I already have a desktop as my primary computer and two Thinkpads that are already set up nicely, but that I rarely use. I moved from 15" laptops to 14" when Lenovo added the numpad on the larger variant, and 14" is about as small as I want to go.
I kind of want to buy a framework though, just to support them? But I have no use for another laptop, let alone a small 12" one! Should I get one anyway because, what the hell, why not? Should I wait and then jump on one if/when they release a larger model?
Anybody else have similar feelings?
Edit to add:
I also have one of the last Thinkpad models that support S3 sleep (T480 -- within a model or two, I think?), which is currently super critical for Linux... I need to be able to close the lid and come back after a week.
It's easy to blame the manufacturers for this, but the consistent answer seems to be "Intel's Tiger Lake platform does not support S3 sleep," and all of the system builders base their work on what Intel's reference platform does. So short of going to extreme effort to hack it together themselves (something that is likely not their specialty), reasonable sleep behavior is not going to be an option unless Intel brings S3 back, or does work to improve the S0ix states.
I absolutely do not want to support the no-more-S3 clusterfuck right now.
FWIW I don't think you should buy a laptop from them just to support them.
Just adding to e-waste down the line, and I'm sure they are selling enough units.
In the future when you do actually need/want a new laptop of course it would be great to support them then. And advocate for them when a friend asks about what laptop to buy.
Hopefully they are able to expand their lineup to include a 15" model. I tried to work on a 14" MacBook Pro and ended up returning it because it felt too small. Though I probably still wouldn't exchange my 16" M1 MBP for a 15" Framework laptop unless Framework manages to even come close to competing with M1's power efficiency. That really depends on a chip designer making something competitive though. Not much Framework can do other than find ways to improve Linux's power management.
Adding my vote: I'll definitely jump on a Framework 14+" here. My eyes cannot work well w/a 13" without glasses. If I had better near vision (will be all over the lens-softening eye drops) it would be a different story.
I'd like to support their cause, but like you, I have way too many machines that already work well enough, that I can't justify another purchase unless it would offer a substantial improvement over my current setup (old ThinkPads). Plus I really can't function without a Trackpoint ;)
So I'm holding out a generation or two to reconsider. I hope they improve.
Can anyone recommend a laptop that gets great battery life on Linux and has a good keyboard?
I've been thinking about selling my current beefy laptop (razer blade 15) since I end up doing all my MCAD/ECAD work on my desktop anyway, and moving back to Manjaro on my laptop which only really gets used for software/firmware anyway.
But, I read so many horror stories about linux firmware glitchyness and poor battery life that I gave up on the idea. If I can just by a used thinkpad from a few generations ago that might be perfect.
I'm waiting for something with beefier internals, or an AMD variant, or both. That being said, they'd have to redesign the power delivery system and thermals, so maybe it would no longer be as modular? Anyone with the knowledge care to weigh in?
Similar feelings, yes. I don't mind the size at all. It's just that I've got a sweet thinkpad x13 already. My next laptop though, surely a framework (if they are still around)
You can try re-selling your existing laptops in the local market. Plently of buy-sell communities on forums or groups. Sure, you won't get your buy price but you will get a decent amount back.
I agree with not adding unnecessary e-waste to the current crisis. But perhaps you have someone in your life that could really use a laptop? You could get them a gift if they're interested in the laptop
I've been running NixOS on my Framework for the last few months, and I've been really happy with it. I initially got it so I'd have viable hardware to do osdev on, so learning that they are going to open-source its firmware makes me even more happy.
Seems too good to be true. Reasonable prices, upgradable, no soldered ram. So has it been a reliable Linux laptop, what's the battery life with your options?
Exact same boat here - got my Framework a couple months ago when my Thinkpad X230 finally started showing its age, installed NixOS on it. The only disappointments so far have been battery life and heat management. I get maybe 5-6 hours from full charge, and the laptop gets super hot/noisy when sitting on anything other than a hard flat surface where the fans get maximum airflow (even using it when it's on my lap gets uncomfortable quick, and putting it on top of a blanket is out of the question).
I'm curious what the build quality is like. I've heard some complaints about QA and reliability issues with the hardware, but I don't know anyone in person who owns one of these devices. What has your experience been like?
Note to the website developers: currency != language. I'm an American in Germany. My handle of the language isn't (yet) great, thus I still work with English primarily. However, I pay in EUR exclusively.
Just the same (not that it appears to be a problem with Framework, though it's easy to make the same mistake), country != language.
This! I live in Belgium, primarily English speaker (not native), pay in EUR and my understanding of local language is not great. Lots of websites are so difficult to use without Google translate.
Please treat Currency != Language != Country. Give options to change these.
Excellent news, can't wait to play with the new firmware. I will echo the Fedora 35 recommendation from the article. Ran a liveusb of it for a week or so on this laptop and it was buttery smooth. All components that in the past I had mixed experiences with (wayland, pipewire) just work.
We called out "We're continuing to invest in open source firmware development, with the goal of replacing other proprietary firmware we're currently stuck with in the future too." in the blog post. Coreboot is something we're very interested in and have done experimentation around. We went with an off-the-shelf proprietary BIOS/UEFI to derisk launching the Framework Laptop on time and satisfying the core goals on it (getting a high-performance, thin, light laptop into the world that is fully repairable and upgradeable), but an open BIOS/UEFI solution is absolutely in line with our philosophy.
Things I'm hoping to see in time for a Framework machine to become my next laptop:
- AMD processor options
- Keyboards with a trackpoint - decades of ThinkPaddery have conditioned me; I regularly use a Dell touchpad-equipped laptop & contemporary Mac laptop and still pine for a trackpoint. Very personal preference, I know, but hopefully the Framework Marketplace comes to provide this.
- Proper 14" HiDPI screen
- Long battery life under Linux
I'm impressed with what they've been able to do and really hope they become sustainably successful!
I can't stress this enough. The display on the Framework can't do integer scaling and so almost everyone who intends to use an external monitor with the Framework can't do that on Linux without extremely annoying issues such as significantly higher input latency, GUI apps behaving abnormally, and not being able to use an external monitor and the laptop screen simultaneously. I don't care if they release Coreboot for the Framework, it's useless with its screen.
You're describing the Thinkpad T14S. It's a real shame it has soldered RAM, I hope Framework's success will show the industry there's an actual need for this.
This is I don't understand. Why laptop manufacturers neglect probably the most important thing that is the keyboard? Almost every single laptop that comes out these days looks like the keyboard is an afterthought.
Why can't I have full size cursor keys? Pg Up, Pg Down, Home, End and few others?
Wow, you're right! Didn't understand how you could not have a reverse T for the arrow keys and took a look at the pictures. The up/down keys are split in half?! Why'd you make the arrow keys have different sizes?!
Oh yeah, that would be awesome. I’ve searched for a proper tkl layout in laptops. There’s the current layout in Frame.work which is think is probably the worst, then current Macbook, then finally HP Omen (tkl) (but its kind of a shitty laptop).
Ive also seen a laptop with the arrow keys slightly offset downward.
I've extracted the Chromium-EC encryption functions, they are convenient for signing / verifying firmware on other platforms. Chromium-ec is nice for example code like this:
On the other hand, if you are looking for some generic embedded system code all in C, here is our library (it's been cleaned up for ATSAM and STM32 targets, but we've used in on many other platforms):
I think it's most unique feature is the embedded schema-based database- so you can save things like calibration and configuration information in local flash memory (think protocol buffers, but for tiny systems). Recently I've been adding device drivers for all common devices I can find on break-out boards from the Arduino and Raspberry-PI communities.
I bought a Framework for personal use and love it so much. I have it running Windows 11, if only because it was easier to get longer battery life out of it without doing endless tweaks on a *nix OS.
Upsides:
- Hardware feels VERY premium and nice. It's not too heavy. You'd never guess it's the first laptop made by a new company.
- Keyboard is a pleasure to type on. I did nanowrimo last year on it and wrote ~60k words and never had a complaint.
- Company and its mission are awesome! Support team is very helpful and their communication has been great.
- Guides on the website for opening it up and replacing/fixing parts is amazing. If anything I hope I can keep this thing running for many many years.
- Choosing what ports you want via the expansion cards is really nice (USB-C charging on BOTH sides of the laptop?!?! amazing)
Downsides:
- Battery could be better. I get probably 3-6 hours on Win11 depending on what I'm doing.
- It can get HOT. I have the i7 processor; doing light dev work with a few Docker images running and VSCode with a medium-sized Node project open, it gets uncomfortably warm on my lap and the fan occasionally spins up. I played through Inscryption on it (awesome indie game, built in Unity) and the fan was EXTREMELY loud during the whole thing because it was making heavy work of the integrated graphics card. Just browsing the web or watching videos it is cool and silent, though.
- Because of issues with Tiger Lake, S3 sleep isn't supported so if it sleeps when you close the lid, the battery will continue to drain for a bit and eventually it'll go into hibernation. I set mine to just go into hibernation when the lid is closed which saves the battery more if I'm on-the-go. It takes around 11 seconds to wake from hibernation which isn't bad. Not an issue with the Framework specifically, I think this affects all Tiger Lake processors.
- Expansion cards are a bit of a novelty for me. I have 2x USB-C, 1x USB-A, 1X HDMI and don't see myself changing that any time soon and can't really think of any expansion cards I'd need in the future.
Looking forward the question at the top of my mind is "will this actually be upgradeable?"... if they ever release AMD or ARM-based processors, it'd be great to try them out, but you'd have to swap out the whole mainboard which is a bummer (but understandable given the hardware constraints). Different screen sizes would require a whole new laptop but at least you could bring along the internals. A touch screen would be really nice.
Call me when you get better display panels. Hopefully Linus Sebastian's obsession with OLED will help push the display is a higher-end direction -- or at least have the option.
A thread from two weeks ago gave me pause; I will wait a couple iterations until considering a Framework laptop to see if at least the software issues can be resolved and observe how the team navigates the waters.
We took that feedback and wrote step-by-step guides on setting up a few popular Linux distributions, calling out what items work out of the box and what needs manual workarounds. For now, we recommend Fedora 35 as the best distro to use where everything works out of the box, and Ubuntu 21.10 as a second option that works though requires some workarounds.
What is the reason behind closed firmware? I understand that wifi devices may operate out of the certification depending on what the firmware does, but other devices... why do they have closed firmwares?
Probably to hide/protect corporate secrets, or if the firmware integrates proprietary code from a 3rd party it would be difficult to open source for legal reasons.
Hardware defects are often worked around by firmware. It can be things like adjusting current drive or lowering the clocks conditionally to mitigate EMI. It can even check the serial numbers of the hardware to determine what to do for the pieces with inferior quality in order to pass QA and increase yields. If customers get to find out what kind of defects or which batches are inferior, that would imply costly consequences for business.
Are there any OEM laptops with RYF certification? The only ones I can see on ryf.fsf.org are 10 year old refurbished and re-branded (and very expensive) Thinkpads.
Side note: the language selection is stupid on the website. No, I'm not from Germany, and I don't speak German even if it's the closest country to me that you sell laptops in. Also, it's a bad practice to associate flags with languages. Or to give options that don't work after you select them.
They don't have a language selector, they have a region selector which sets the appropriate currency, VAT (presumably), and also language, yes. It's an entirely appropriate usage of flags.
This is not related directly to the announcement, but touches on a thing that infuriates me to no end - for some reason the site assumed that because I live in the EU and relatively close to German border, I speak German and presented the site in that language. Despite my high-school teacher's heroic efforts, I can at best understand a few basic phrases. I didn't even know what to click in the cookie pop-up to kindly ask them to not track me.
Language auto detection^W assumption is such an anti-feature.
Google is particularly bad about this, they basically make it impossible to get normal English-language results if you're in another country, unless you mess with the URL parameters (gl=us).
Like if you're in Germany, you can set Google's language to English, but you're gonna get mainly German results for any search. A bizarre choice.
It's not because you're close to the German border. Apparently anyone anywhere else in the EU except France gets redirected to the German website. (France is the only other EU country where Framework decided to open sales.)
Quote from their website: “ Base and Performance configurations ship with Windows 10 Home pre-installed and Professional ships with Windows 10 Pro pre-installed. You can also load your own operating system later, like a Linux distribution.”
Some comments were deferred for faster rendering.
ad8e|4 years ago
[0]: https://github.com/FrameworkComputer/EmbeddedController/blob...
ohazi|4 years ago
nrp|4 years ago
Teknoman117|4 years ago
bsder|4 years ago
c and c2 loop variables so a typo can hose you horribly. A global variable to hold the array length. ! instead of comparison to 0. Having to offset the second loop by 1. Early return which means the function will normally work fine but might result in N^2 extra time depending upon the data state. A bit trick relying on unsigned underflow without pointing out that unsigned is a key constraint even though it has a comment. An extra missing const on the incoming pointer (should be: const uint8_t * const). Braces left off the short-circuit if conditionals.
The worst part is I have personally written tons of functions like this. This is a "normal" function in C--in fact, it's far better than average.
The fact that you write C like this just shows how much we need something better.
poyu|4 years ago
[0]: https://hackaday.com/2010/11/09/debounce-code-one-post-to-ru...
belfalas|4 years ago
lukeschlather|4 years ago
google234123|4 years ago
baybal2|4 years ago
ohazi|4 years ago
I kind of want to buy a framework though, just to support them? But I have no use for another laptop, let alone a small 12" one! Should I get one anyway because, what the hell, why not? Should I wait and then jump on one if/when they release a larger model?
Anybody else have similar feelings?
Edit to add:
I also have one of the last Thinkpad models that support S3 sleep (T480 -- within a model or two, I think?), which is currently super critical for Linux... I need to be able to close the lid and come back after a week.
It's easy to blame the manufacturers for this, but the consistent answer seems to be "Intel's Tiger Lake platform does not support S3 sleep," and all of the system builders base their work on what Intel's reference platform does. So short of going to extreme effort to hack it together themselves (something that is likely not their specialty), reasonable sleep behavior is not going to be an option unless Intel brings S3 back, or does work to improve the S0ix states.
I absolutely do not want to support the no-more-S3 clusterfuck right now.
staindk|4 years ago
Just adding to e-waste down the line, and I'm sure they are selling enough units.
In the future when you do actually need/want a new laptop of course it would be great to support them then. And advocate for them when a friend asks about what laptop to buy.
alufers|4 years ago
It drives me absolutely nuts when I open my bag and feel the heat coming out of it, and my laptop is left with 20% charge.
ziml77|4 years ago
chx|4 years ago
mmastrac|4 years ago
imiric|4 years ago
I'd like to support their cause, but like you, I have way too many machines that already work well enough, that I can't justify another purchase unless it would offer a substantial improvement over my current setup (old ThinkPads). Plus I really can't function without a Trackpoint ;)
So I'm holding out a generation or two to reconsider. I hope they improve.
adamweld|4 years ago
I've been thinking about selling my current beefy laptop (razer blade 15) since I end up doing all my MCAD/ECAD work on my desktop anyway, and moving back to Manjaro on my laptop which only really gets used for software/firmware anyway.
But, I read so many horror stories about linux firmware glitchyness and poor battery life that I gave up on the idea. If I can just by a used thinkpad from a few generations ago that might be perfect.
grp000|4 years ago
gtsop|4 years ago
jrop|4 years ago
mkbkn|4 years ago
Then go for the Framework one.
culi|4 years ago
unknown|4 years ago
[deleted]
khimaros|4 years ago
smichel17|4 years ago
joelthelion|4 years ago
Lio|4 years ago
I want paid Linux support upfront.
I don’t want to pay for Windows support, remove it and then run unsupported Linux on my laptop.
A manufacturer saying “this is a Windows laptop but we won’t stop you running Linux on it” isn’t really good enough for what I want.
smasher164|4 years ago
rnk|4 years ago
_peeley|4 years ago
TallonRain|4 years ago
junon|4 years ago
Just the same (not that it appears to be a problem with Framework, though it's easy to make the same mistake), country != language.
random_walker|4 years ago
Please treat Currency != Language != Country. Give options to change these.
VTimofeenko|4 years ago
kop316|4 years ago
Their github also doesn't have any mention of coreboot: https://github.com/FrameworkComputer
And it isn't here either: https://doc.coreboot.org/mainboard/index.html
nrp|4 years ago
kitsunesoba|4 years ago
2OEH8eoCRo0|4 years ago
hailvectron|4 years ago
- AMD processor options
- Keyboards with a trackpoint - decades of ThinkPaddery have conditioned me; I regularly use a Dell touchpad-equipped laptop & contemporary Mac laptop and still pine for a trackpoint. Very personal preference, I know, but hopefully the Framework Marketplace comes to provide this.
- Proper 14" HiDPI screen
- Long battery life under Linux
I'm impressed with what they've been able to do and really hope they become sustainably successful!
ayushnix|4 years ago
I can't stress this enough. The display on the Framework can't do integer scaling and so almost everyone who intends to use an external monitor with the Framework can't do that on Linux without extremely annoying issues such as significantly higher input latency, GUI apps behaving abnormally, and not being able to use an external monitor and the laptop screen simultaneously. I don't care if they release Coreboot for the Framework, it's useless with its screen.
arnaudsm|4 years ago
philipprk|4 years ago
bbojan|4 years ago
Guess what was the most frequently used key? Cursor down followed by cursor up.
For example, cursor down was pressed ~2.5x more times than space, or ~4 times more than letter E, which is was the most frequently used letter.
Guess what are the smallest keys on a Mac-type keyboard (the layout also used by the Framework laptop). Cursor up and down. Madness.
varispeed|4 years ago
capableweb|4 years ago
moondev|4 years ago
deburo|4 years ago
Ive also seen a laptop with the arrow keys slightly offset downward.
nguyenkien|4 years ago
jhallenworld|4 years ago
https://github.com/jhallen/rsa-verify
On the other hand, if you are looking for some generic embedded system code all in C, here is our library (it's been cleaned up for ATSAM and STM32 targets, but we've used in on many other platforms):
https://github.com/nklabs/libnklabs
I think it's most unique feature is the embedded schema-based database- so you can save things like calibration and configuration information in local flash memory (think protocol buffers, but for tiny systems). Recently I've been adding device drivers for all common devices I can find on break-out boards from the Arduino and Raspberry-PI communities.
TranquilMarmot|4 years ago
Upsides:
- Hardware feels VERY premium and nice. It's not too heavy. You'd never guess it's the first laptop made by a new company.
- Keyboard is a pleasure to type on. I did nanowrimo last year on it and wrote ~60k words and never had a complaint.
- Company and its mission are awesome! Support team is very helpful and their communication has been great.
- Guides on the website for opening it up and replacing/fixing parts is amazing. If anything I hope I can keep this thing running for many many years.
- Choosing what ports you want via the expansion cards is really nice (USB-C charging on BOTH sides of the laptop?!?! amazing)
Downsides:
- Battery could be better. I get probably 3-6 hours on Win11 depending on what I'm doing.
- It can get HOT. I have the i7 processor; doing light dev work with a few Docker images running and VSCode with a medium-sized Node project open, it gets uncomfortably warm on my lap and the fan occasionally spins up. I played through Inscryption on it (awesome indie game, built in Unity) and the fan was EXTREMELY loud during the whole thing because it was making heavy work of the integrated graphics card. Just browsing the web or watching videos it is cool and silent, though.
- Because of issues with Tiger Lake, S3 sleep isn't supported so if it sleeps when you close the lid, the battery will continue to drain for a bit and eventually it'll go into hibernation. I set mine to just go into hibernation when the lid is closed which saves the battery more if I'm on-the-go. It takes around 11 seconds to wake from hibernation which isn't bad. Not an issue with the Framework specifically, I think this affects all Tiger Lake processors.
- Expansion cards are a bit of a novelty for me. I have 2x USB-C, 1x USB-A, 1X HDMI and don't see myself changing that any time soon and can't really think of any expansion cards I'd need in the future.
Looking forward the question at the top of my mind is "will this actually be upgradeable?"... if they ever release AMD or ARM-based processors, it'd be great to try them out, but you'd have to swap out the whole mainboard which is a bummer (but understandable given the hardware constraints). Different screen sizes would require a whole new laptop but at least you could bring along the internals. A touch screen would be really nice.
Shared404|4 years ago
I'm admittedly a hobbyist/novice programmer, but this isn't necessarily what I'd call light.
JohnTHaller|4 years ago
On the expansion card front, I think I tweeted to them about doing some kind of card bay to put a USB dongle in.
alexott|4 years ago
toastal|4 years ago
chrsw|4 years ago
yellowapple|4 years ago
floatboth|4 years ago
fancy_pantser|4 years ago
https://news.ycombinator.com/item?id=29806430
nrp|4 years ago
* https://guides.frame.work/Guide/Fedora+35+Installation+on+th...
* https://guides.frame.work/Guide/Ubuntu+21.10+Installation+on...
COGlory|4 years ago
marcodiego|4 years ago
wmf|4 years ago
(Coreboot is not an option for real computers because it doesn't have menus and various other things.)
pabs3|4 years ago
https://github.com/qca/open-ath9k-htc-firmware https://github.com/chunkeey/carl9170fw http://netweb.ing.unibs.it/~openfwwf/
None for recent WiFi standards though.
Other open firmware:
https://wiki.debian.org/Firmware/Open
HideousKojima|4 years ago
typ|4 years ago
pabs3|4 years ago
stbtrax|4 years ago
yuuta|4 years ago
quesera|4 years ago
weystrom|4 years ago
nrp|4 years ago
taf2|4 years ago
donkarma|4 years ago
grishka|4 years ago
i5heu|4 years ago
snambi|4 years ago
teddyh|4 years ago
wmf|4 years ago
kdtsh|4 years ago
akomtu|4 years ago
prophesi|4 years ago
ignaloidas|4 years ago
Otherwise, very nice news!
Beltalowda|4 years ago
redthrow|4 years ago
There's even a website for this issue
http://www.flagsarenotlanguages.com/blog/why-flags-do-not-re...
schleck8|4 years ago
kingcharles|4 years ago
temp12913231|4 years ago
[deleted]
656565656565|4 years ago
656565656565|4 years ago
trwired|4 years ago
Language auto detection^W assumption is such an anti-feature.
/rant
edit: I see I am not alone, who got hit by this.
TillE|4 years ago
Like if you're in Germany, you can set Google's language to English, but you're gonna get mainly German results for any search. A bizarre choice.
4cao|4 years ago
uoaei|4 years ago
option|4 years ago
pantalaimon|4 years ago
m0ngr31|4 years ago
option|4 years ago
Quote from their website: “ Base and Performance configurations ship with Windows 10 Home pre-installed and Professional ships with Windows 10 Pro pre-installed. You can also load your own operating system later, like a Linux distribution.”
unknown|4 years ago
[deleted]