top | item 30027117

Open-Sourcing our Firmware

1168 points| aram | 4 years ago |frame.work

368 comments

order

Some comments were deferred for faster rendering.

ad8e|4 years ago

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.

[0]: https://github.com/FrameworkComputer/EmbeddedController/blob...

ohazi|4 years ago

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.

nrp|4 years ago

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.

Teknoman117|4 years ago

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)

bsder|4 years ago

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.

belfalas|4 years ago

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.

lukeschlather|4 years ago

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.

google234123|4 years ago

The copyright header at the top says "chromium".

baybal2|4 years ago

I want to produce a keyboard switch which needs no debounce.

ohazi|4 years ago

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.

staindk|4 years ago

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.

alufers|4 years ago

Sorry for changing the topic but does anybody know the reason Intel has removed the seep states?

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

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.

mmastrac|4 years ago

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.

imiric|4 years ago

From reports I've read the Framework laptop has poor build quality. This comment from here actually: https://news.ycombinator.com/item?id=29807585

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

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.

grp000|4 years ago

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?

gtsop|4 years ago

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)

jrop|4 years ago

Buy someone else in your circles a Framework Laptop who needs a laptop! Or gift them one of your ThinkPads and get yourself a framework!

mkbkn|4 years ago

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.

Then go for the Framework one.

culi|4 years ago

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

khimaros|4 years ago

invest in the company financially

smichel17|4 years ago

Perhaps find an open source project they depend on and donate to it.

joelthelion|4 years ago

Sell your Thinkpads and buy one of their laptops?

Lio|4 years ago

I wouldn’t buy a Framework right now because they come bundled with Windows and not Linux.

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

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.

rnk|4 years ago

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?

_peeley|4 years ago

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).

TallonRain|4 years ago

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?

junon|4 years ago

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.

random_walker|4 years ago

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.

VTimofeenko|4 years ago

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.

kop316|4 years ago

Does the Framework support coreboot? IIRC it does not, and I was sort of surprised to not see that in this announcement.

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

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.

kitsunesoba|4 years ago

IIRC they said that it was a point of interest but not something they’d started work on yet.

2OEH8eoCRo0|4 years ago

I love these guys. I sincerely hope that they are successful and stick around. Keep up the good work!

hailvectron|4 years ago

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!

ayushnix|4 years ago

> - Proper 14" HiDPI screen

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

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.

philipprk|4 years ago

Really hoping for the laptop's next iteration to have a reverse T for the arrow keys. Otherwise very solid laptop, would be my first non-Mac choice.

bbojan|4 years ago

Because I'm down the rabbit hole of highly customized keyboards, at one point I did a frequency analysis of the keys I use the most.

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

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?

capableweb|4 years ago

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?!

deburo|4 years ago

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.

nguyenkien|4 years ago

I hate half size arrow keys, why don't make it normal size.

jhallenworld|4 years ago

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:

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

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.

Shared404|4 years ago

> a few Docker images running and VSCode with a medium-sized Node project open,

I'm admittedly a hobbyist/novice programmer, but this isn't necessarily what I'd call light.

JohnTHaller|4 years ago

Thanks for this detailed write up of your experience with it. I love what they're doing but don't need a new laptop at the moment.

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

Just a suggestion for site - separate language from currency. For example, for me it’s much faster to read in English, but I’m paying in euro…

toastal|4 years ago

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.

chrsw|4 years ago

It's getting harder to resist buying one of these.

yellowapple|4 years ago

As if I didn't have enough reason to be happy with my decision to buy a Framework, here they are giving me yet more reasons.

floatboth|4 years ago

Ooh, they use chromium ec, nice. Where is its serial console accessed? :)

fancy_pantser|4 years ago

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.

https://news.ycombinator.com/item?id=29806430

nrp|4 years ago

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.

* https://guides.frame.work/Guide/Fedora+35+Installation+on+th...

* https://guides.frame.work/Guide/Ubuntu+21.10+Installation+on...

COGlory|4 years ago

That thread does not mirror any of my experiences at all, and I've been using the laptop since it was launched.

marcodiego|4 years ago

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?

wmf|4 years ago

For BIOS/UEFI a lot of hardware vendors outsource their firmware to AMI and AMI keeps everything proprietary so they can keep charging money.

(Coreboot is not an option for real computers because it doesn't have menus and various other things.)

HideousKojima|4 years ago

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.

typ|4 years ago

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.

pabs3|4 years ago

I've heard rumours that making firmware proprietary helps hide patent violations.

stbtrax|4 years ago

Man I remember reading this CEO's hobby blog a decade ago. Glad to see him doing cool stuff https://eclecti.cc/

weystrom|4 years ago

I wish they'd ship US ANSI keyboard in Europe, I would totally pick one up.

nrp|4 years ago

The International English keyboard option is ANSI. It is US English with a Euro symbol and Alt Gr.

taf2|4 years ago

I'm hoping for a 16" or 15" version and then i'm in

donkarma|4 years ago

now lets get an open source baseband

grishka|4 years ago

Osmocom is a thing, but no idea how good it is. I've seen articles about people running cellular networks with it.

i5heu|4 years ago

Is there any chance to know when frame.work sells laptops with 12th gen Intel processors?

snambi|4 years ago

This is one company I really like. Hope they offer an ARM based laptop soon.

teddyh|4 years ago

Great! So how’s that RYF certification coming?

wmf|4 years ago

It's impossible for recent x86 systems to be RYF certified.

kdtsh|4 years ago

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.

akomtu|4 years ago

I wish frame.work offered CUDA compatible GPUs and/or AMD CPUs.

prophesi|4 years ago

On the bright side, there have been reports of people getting their Framework to work with an external GPU.

ignaloidas|4 years ago

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.

Otherwise, very nice news!

Beltalowda|4 years ago

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.

schleck8|4 years ago

Do you have an alternative iconography for language selection? It undoubtedly makes the UX better, especially with many languages

kingcharles|4 years ago

I agree that flag != language (British Union flag for English being a prime example), but what is the next best alternative?

656565656565|4 years ago

What’s with the sticky scrolling on this site? (Safari at least)

656565656565|4 years ago

Add blocker was blocking cookie pop up, after disabling and acknowledging the pop up the problem disappeared even with blocker re-enabled.

trwired|4 years ago

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.

/rant

edit: I see I am not alone, who got hit by this.

TillE|4 years ago

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.

4cao|4 years ago

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.)

uoaei|4 years ago

I'm surprised things like "preferred language" aren't built into HTTP yet, seems to have a natural home in the user-agent corner of that world.

option|4 years ago

I wish I could get one without Windows

pantalaimon|4 years ago

You can even get one without a drive

m0ngr31|4 years ago

You can

option|4 years ago

You have to pay for Windows.

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.”