Skip to content

ellabellla/lmk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LMK (Lyn Mechanical Keyboard) WORK IN PROGRESS

LMK is a "smart" mechanical keyboard built using a raspberry pi zero.

This project is a work in progress. Currently I have a working prototype keyboard that sends keystrokes, runs arbitrary code, moves the mouse using a joystick, and generally does keyboard stuff.

Software

LMKLib is a software suite that sets up a RPI Zero as a "smart" keyboard. It is made up of 3 major parts:

  • Usb Gadget
    • Configures the libcomposite linux module. Turns the rpi into a usb HID, ethernet adapter, and MIDI controller.
  • Hid-Interface
    • Abstracts the hid devices created by the linux kernel so that multiple programs my interface with them at once.
  • Key-Server
    • Translates the GPIO into a keyboard layout that can be customized and controlled through RPC

The software suite functionality:

  • json defined keyboard layouts
  • runtime tweaking of keyboard settings through variables
  • a module system that supports python and rust
    • GPIO drivers
    • Key functionality expansion
    • custom HID outputs
  • arbitrary code execution
  • ethernet adapter emulation
    • direct ssh between the host and keyboard
  • MIDI
    • acts as a usb midi controller
  • RPC
  • basic graphical interface

The repo of LMKLib can be found here

There are also 2 scripting languages designed to program keyboard macros:

  • Ducky
    • a lazy Ducky Script interpreter
  • Bork
    • a terse keyboard scripting language

Hardware

schematic pcb bom

License

This software is provided under the MIT license. Click here to view.