Code Monkey home page Code Monkey logo

dalsik's Introduction

DALSIK

Davs Let's Split Keyboard firmware.

1. Motivation

I made this as a fun learning project. The code is working and I've been using it on my keyboard since 2017. You can think of this as "QMK lite". As the code is written for only a single keyboard and MCU, it should be easier to understand as QMK.

The code is designed for the Let's Split keyboard created by wootpatoot.

2. Inspired by

3. Prerequisites

The project can be compiled on Linux, if you have to following packages installed:

  • Arduino (for the HID and Serial libraries and USB implementation)
  • avr-gcc (for compilation)
  • pyserial (for resetting the MCU via USB)
  • avrdude (for flashing)

On Arch linux you can run:

$ pacman -S arduino avr-gcc avrdude python-pyserial

4. Keymap

You need to specify the location of you keymap file (see sample_keymap/sample_keymap.cpp) via the DALSIK_KEYMAP env variable. I recommend using direnv for this:

$ cd ~/where/the/dalsik/project/is/cloned
$ cat .envrc
export DALSIK_KEYMAP=/path/to/my/keymap/file.cpp

5. Compilation & flashing

# Clean the previous build artifacts (optional)
$ make clean
# Compile the project
$ make verify
# Run the tests
$ make test
# Flash the MCU
$ make upload

6. Initial flashing

The project assumes that one side of the split keyboard is always on the left and the other is on the right. The sidedness is encoded in EEPROM. To initially set the sidedness of the keyboards, uncomment the corresponding #define SET_KEYBOARD line in src/dalsik/dalsik.h and do a clean verify upload flashing on both sides.

7. Master election

Master election is automatic based on the USB connection. When changing the keymap, only the master side needs to be reflashed. Should the USB connector break on the master keyboard, you can connect the USB cable to the other side, reflash it with your current keymap (if necessary) and it will work.

dalsik's People

Watchers

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