Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/headblockhead/slab-firmware
Experimental firmware for the slab keyboard.
https://github.com/headblockhead/slab-firmware
keyboard slab-keyboard
Last synced: about 1 month ago
JSON representation
Experimental firmware for the slab keyboard.
- Host: GitHub
- URL: https://github.com/headblockhead/slab-firmware
- Owner: headblockhead
- License: cc0-1.0
- Created: 2024-04-21T23:52:49.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-10-31T22:28:28.000Z (about 2 months ago)
- Last Synced: 2024-10-31T23:21:47.882Z (about 2 months ago)
- Topics: keyboard, slab-keyboard
- Language: C
- Homepage:
- Size: 119 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Slab Firmware
The full firmware and downloads for the [Slab keyboard project](https://github.com/headblockhead/slab).Downloads are in the releases section.
## Building
This project uses [Nix](https://nixos.org), run `nix develop` for a development environmnt, `nix build '.?submodules=1#slab-firmware'` to build the firmware and use `nix flake check` to check tests are passing.
## Tasks
### Upload-Release
Directory: ./build
Requires: build-releaseBuilds, then copies the firmware with debug optimisations to the RP2040.
```bash
export PICO_DIR=`findmnt -S LABEL=RPI-RP2 -o TARGET -fn`
cp ./slab.uf2 $PICO_DIR
```### Upload-Debug
Directory: ./build
Requires: build-debugBuilds, then copies the firmware with speed optimisations to the RP2040.
```bash
export PICO_DIR=`findmnt -S LABEL=RPI-RP2 -o TARGET -fn`
cp ./slab.uf2 $PICO_DIR
```### Build-Release
Directory: ./buildBuilds the keyboard firmware optimized for size.
```bash
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4 slab
```### Build-Debug
Directory: ./buildBuilds the keyboard firmware with development outputs.
```bash
cmake -DCMAKE_BUILD_TYPE=Debug ..
make -j4 slab
cp compile_commands.json ../ # Copies the autocomplete information for ccls.
```### Clean-Development
Resets development files for a clean build.
```bash
rm -rf ./build
mkdir build
```### Initialize-Development
Fetches submodules and creates the build folder.
```bash
git submodule update --init --recursive
mkdir -p build
```