I saw the FAK firmware that @semickolon wrote / shared here, and thought it’d be fun to try to write firmware for.

Nickel is one of these “JSON + functions” languages.

I found it pretty fun to write declarations for the keymaps. I’ve shared my code at https://github.com/rgoulter/fak but here are some things I thought were neat:

The PCB design files (and other useful files, like plate files, 3DP case files, etc.) can be found at https://github.com/rgoulter/keyboard-labs (there’s also a design which uses the CH552T directly).

    • @rgoulter@lemmy.worldOP
      link
      fedilink
      47 months ago

      Sure.

      One of the neat things about mechanical keyboards (broadly) is that there are all sorts of avenues for creativity that people find interesting. Some people are enthusiastic about making their keyboard look good, or sound good. Some people like designing PCBs.

      I saw the FAK firmware was quite constrained… it’s well suited to small keyboards, and it’s got a low cost microcontroller. I’m sharing here about an example of a keyboard designed to use that, and some of the firmware using that. I figured some people here might find it useful or interesting.

      For the keyboard in the image posted, there are different decisions which could be made which could perhaps improve comfort. Different decisions would come with different advantages and costs.

    • @unmoored
      link
      17 months ago

      It might not be “hand-shaped”, but the use of layers (and tap-dance/home-row mods) will minimize hand-movement, which is another way to approach ergonomics.

      • @rgoulter@lemmy.worldOP
        link
        fedilink
        27 months ago

        Yeah, minimizing hand movement, and reducing use of the pinky fingers, and letting the thumbs use at least 2-3 keys each are all things that improve comfort.

        • @unmoored
          link
          17 months ago

          It only fulfills point 4 I think, but it does look like it might not be in line with the rules on the sidebar, so it will probably get removed (admittedly I don’t know if posts need to be manually approved here, so I’m not sure about this).

          • @hisbaan@lemm.ee
            link
            fedilink
            27 months ago

            It’s technically a unibody split (notice that t and y are 2u apart) so that qualifies it as ergonomic according to the sidebar if I’m interpreting it correctly

            • @unmoored
              link
              27 months ago

              I thought it might fall into the non-split ortholinear category, but that makes sense once you pointed it out.