Framework: Open Sourcing Our Firmware

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • EmbeddedController

    Embedded Controller firmware for the Framework Laptop

  • 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 spent the effort to build a correct solution.

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

  • input-polling-test

    Tests the scan behavior of your keyboard/mouse

  • The scrambling is easy to see once you know it's happening: press k and l simultaneously on your Thinkpad keyboard. It'll always come out "lk" unless you deliberately separate them.

    Testing was done [0], but it's not written in an easy-to-understand way. As a summary, Thinkpad keys are scrambled within 15-23 ms. Usually, humans ascribe scrambled letters to their own mistakes, but this time it's the keyboard's fault. Lenovo continues to ignore the issue.

    [0]: https://github.com/ad8e/input-polling-test

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • firmware-setup

    Firmware Setup

  • The stock edk2 menu has, like, two items.

    System76 have built a more serious setup UI: https://github.com/system76/firmware-setup

    Microsoft’s https://github.com/microsoft/mu also probably contains UI from the Surface line or something??

  • mu

    Project Mu Documentation (by microsoft)

  • The stock edk2 menu has, like, two items.

    System76 have built a more serious setup UI: https://github.com/system76/firmware-setup

    Microsoft’s https://github.com/microsoft/mu also probably contains UI from the Surface line or something??

  • open-ath9k-htc-firmware

    The firmware for QCA AR7010/AR9271 802.11n USB NICs

  • carl9170fw

    CARL9170 Firmware Source Repository

  • InitWare

    The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. Its main component is a service management ("init") system.

  • > Yes indeed, I should've expanded to requiring user namespaces and other kernel magic I can't expect from any random box i wanna work on.

    That's fair, do have to make sure to avoid to modules that do user systemd services.

    Longer term, though, I am hoping https://github.com/InitWare/InitWare will help with the userland part. And I hope to personally help with things like

    https://lists.freebsd.org/archives/freebsd-arch/2022-January...

    https://lore.kernel.org/lkml/f8457e20-c3cc-6e56-96a4-3090d7d...

    to get us more sane cross-platform system calls.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rsa-verify

  • 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:

    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. Recently I've been adding device drivers for all common devices I can find on break-out boards for the Arduino and Raspberry-PI communities.

  • libnklabs

    NK Labs Common Library

  • 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:

    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. Recently I've been adding device drivers for all common devices I can find on break-out boards for the Arduino and Raspberry-PI communities.

  • lima

    Linux virtual machines, with a focus on running containers

  • I can run a Linux vm emulating x64 or aarch64 right now on M1…

    It’s more flexible that WSL2 in my opinion

    See https://github.com/lima-vm/lima for a very friendly QEMU wrapper

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts