Skip to content

coyt/LOST60

Repository files navigation

LOST60

Bluetooth Mechanical Keyboard Firmware

LOST60 PCB Version 2.0 (SPRING 2020)

LOST60 PCB Version 1.0 (FALL 2019)

The Ultimate Hackable Bluetooth Mechanical Keyboard

Overview

Codebase for the LOST60 Bluetooth 60% Mechanical Keyboard PCB. The PCB utilizes a Nordic Semiconductor nrf52840 bluetooth SoC (Rigado BMD-340 module) as the sole processor.

Why custom firmare and not TMK/QMK/something else? Well, porting the necessary code is exceedingly difficult and time consuming due to the novelty of the nrf52840. Furthermore, some fundamental differences in featuresets exist - for example, the intent is to dynamically store and/or update configs and keymaps during runtime NOT during compile time as TMK/QMK do it currently. This should allow fast updates, dynamic config changes, and entirely new features. Streatch features include a hardware password manager built directly into the keyboard as well as support for HID hacking tools such as Ducky Script

Version 2.0 System Diagram

Hardware Features

  • 60% Mechanical Keyboard design based on GH60 Layout
  • USBC connector
  • Bluetooth 5.0 support
  • Full RGB underlighting with "neopixels"
  • Independently addressable single color key backlingting
  • Qi wireless charging
  • Advanced battery charging and management circuitry
  • Rotary encoder and TWO speakers for Synthesizer features (under development)
  • Several expansion ports (QUIIC, GROVE, CUSTOM)

Software Features

  • Bluetooth HID keyboard
  • Simple Arduino style programming
  • Bootloader allowing firmware updates over USB C (Program your keyboard WITH your keyboard!)

Planned Firmware Updates

  • Fix BLE key modifier led's
  • Organize Code
    • Separate & orgainze core and header files
    • Develop architectural contorl schema - rtos tasks / state machine
    • Setup FreeRTOS inter-task communication
  • USB HID / BLE HID autoswitching
  • Low Power Modes
    • Power Consumption Testng
  • Implement layers
  • Implement unified config
    • FreeRTOS CLI setup
    • Configure persistent storage
    • Add JSON parser for QMK config generators

Planned Hardware Updates

  • Add coulomb counting IC / improve voltage and power measurement (Complete in V2.0)
  • Improve backlighting LED brightness
  • Extend USB C connector out a bit (Complete in V2.0)
  • Fix underlighting load switch fly wire (Complete in V2.0)
  • Fix LiPo charger ground pour problem & improve charge rate (Complete in V2.0)
  • Remove onboard Lithium protection IC (Complete in V2.0)
  • Add physical power switch connection point
  • Change wiring so I/O emulates Feather nrf52840 board
  • Add QSPI memory chip (Complete in V2.0)

Development Setup

This code uses Adafruit's Arduino core for nRF52 which includes easy to use Bluetooth libraries that work on the nrf52840 SoC. To correctly run code, the Adafruit feather nrf52840 bootloader must be burned onto the nrf52840 SoC. This bootloader performs several functions including burning the Soft Device required for BLE and enabling USB com port and USB MSD programming. Burning it is easy to do with the Arduino IDE and a J-Link programmer.

Simply install Arduino IDE and add the Adafruit Arduino core for nrf52 (board support package) - follow their instructions here. Then, connect a J-link to your nrf52840 via the SWD pins. Now, through the arduino IDE, select the burn bootlaoder option using J-Link.

Afther the bootloader has been installed, you can uplaod code from PlatformIO via the J-link with the setings in this repo.

Credits

About

Bluetooth Mechanical Keyboard Firmware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published