/SQUIRREL-pico

An implementation of SQUIRREL for the Raspberry Pi Pico

Primary LanguageC

SQUIRREL Pico: SQUIRREL for the Raspberry Pi Pico.

or: Simplified QMK Uniquely Immaculate (and) Readable Runtime Editable Library

🚧 This project is currently under construction, so do not expect a usable result yet! 🚧

This is an implementation of SQUIRREL as a template example for a 5-key keyboard.

Guide

  • external/ Exernal libraries, maintained seperatly to the project.
    • pico-sdk The pico SDK, used to build for the pico.
    • squirrel The SQUIRREL library, provides key functions and quantum layers, etc.
  • src/ Source code of the project.
  • .gitignore Removes some files from version control to not track build results, etc.
  • .gitmodules Defines the submodules (in external)
  • CMakeLists.txt Defines how to build the project and its libraries.
  • README.md This file (documentation and XC tasks.)
  • shell.nix A nix shell file that provides a reproducable and declarative environment for building and debugging.

Tasks

Build

Directory: ./build

Builds the keyboard firmware.

cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4 SQUIRREL-pico

Build-debug

Directory: ./build

Builds the keyboard firmware with debug build type.

cmake -DCMAKE_BUILD_TYPE=Debug .. 
make -j4 SQUIRREL-pico
cp compile_commands.json ../ # Copies the autocomplete information for ccls.

Clean

Cleans the build directory for a fresh build.

rm -rf ./build
mkdir build

Init-submodules

Fetches SQUIRREL and the pico-sdk submodules for use in the project.

git submodule update --init --recursive

Update-submodules

Requires: init-submodules

This fetches the latest version of SQUIRREL and the pico-sdk from their remotes. Be careful of breaking changes!

git submodule update --remote