Giter VIP home page Giter VIP logo

fak-config's Introduction

fak-config

FAK user configuration repository.

FAK is a keyboard firmware for the CH55x series of microcontrollers.

CH55x microcontrollers are both cheap, and very simple to design keyboards for.

FAK uses the Nickel configuration language (a "JSON + functions + types" language) for defining keyboard and keymap definitions. Nickel is a pleasant and expressive language to use for this.

This repository includes definitions for my keyboards and keymaps.

Overview

  • shared/lib - Nickel code which may be shared across keymaps/keyboard Nickel code.

    • layouts.ncl - helper code for various Alphabetical layouts. (QWERTY, Dvorak, etc.).

    • keymaps/split_3x5_3/ - keymaps for a "split 3x5 + 3" layout.

      • rgoulter - my split 3x5 + 3 keymap, a miryoku-inspired keymap.
    • keyboards/ - FAK keyboard definitions.

      • ch552-36

      • ch552-36-rhs - definition for using RHS-only as central. Useful for checking the RHS is soldered correctly.

      • ch552-44

        • layouts - supports implementing keymaps in other layouts. (e.g. using split_3x5_3 on the ch552-44).
      • ch552-48

        • layouts - supports implementing keymaps in other layouts. (e.g. using split_3x5_3 on the ch552-44).

Keyboards

Design files for PCBs, plates, 3DP/CNC from rgoulter's Keyboard Labs.

Designation Summary/Keywords Image
CH552-44 44-key ortholinear, MX, BM40/JJ40-compatible, no frills
CH552-48 48-key ortholinear (4x12), MX, BM40/JJ40-compatible, no frills
CH552-48-LPR 48-key ortholinear (4x12), low profile redragon, no frills
CH552-36 36 key (2x3x5+3), split, column-staggered, MX, sub-100x100, no frills

Setup

Refer to upstream documentation for setting up fak-config.

Using Nix

If you have Nix installed on your system, a Nix flake is provided.

With direnv, allow the .envrc using direnv allow.

Commands

Now that you have your development environment set up and ready, compiling is as easy as fak compile -kb [keyboard] -km [keymap]. You may omit -km [keymap] if keymap is "default" (e.g., fak compile -kb [keyboard]). This will also print the path(s) where it put the firmware files in, which is helpful in a remote setup.

If you're using a local setup, you can flash directly with fak flash -kb [keyboard] -km [keymap]. Then if you have a split, flash the peripheral side with fak flash_p -kb [keyboard] -km [keymap]. Likewise, you may omit -km [keymap] if keymap is "default".

If something's off, wrong, or not working, cleaning your build files might help with fak clean.

To compile every keyboard with its every keymap, enter fak compile_all. Whenever you push, this is what GitHub Actions actually does behind the scenes to update the latest release with all ready-to-flash .ihx files.

fak-config's People

Contributors

semickolon avatar rgoulter avatar eldritch-elder avatar quintuple-lained avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.