- Git
- Protobuf
- Zephyr SDK
- West
git submodule update --init --recursivecd zmk/west init -l appwest update
Now, staying in the zmk directory, build with west:
west build --pristine always -s app -b efogtech_trackball_0 -S studio-rpc-usb-uart -S zmk-usb-logging -- -DZMK_EXTRA_MODULES="$(pwd)/../endgame-trackball-config;$(pwd)/../zmk-pmw3610-driver;$(pwd)/../zmk-paw3395-driver;$(pwd)/../zmk-pointer-2s-mixer;$(pwd)/../zmk-axis-clamper;$(pwd)/../zmk-report-rate-limit;$(pwd)/../zmk-ec11-ish-driver;$(pwd)/../zmk-auto-hold;$(pwd)/../zmk-behavior-follower;$(pwd)/../zmk-keymap-shell;$(pwd)/../zmk-acceleration-curves;$(pwd)/../zmk-rotate-plane;$(pwd)/../zmk-runtime-config;$(pwd)/../zmk-adaptive-feedback;$(pwd)/../zmk-bistable-behavior;$(pwd)/../zmk-ble-shell;$(pwd)/../zmk-esb-endpoint;$(pwd)/../zmk-feedback-common" -DCONFIG_ZMK_STUDIO=y -DZMK_CONFIG="$(pwd)/../endgame-trackball-config/config"Look for build/zephyr/zmk.uf2 — it's your firmware.
First time:
git submodule update --init --recursive
mkdir -p output
docker build -t endgame-firmware .Building:
docker run --rm -v "$(pwd):/workspace" -v "$(pwd)/output:/output" endgame-firmwareYou can customize the building process by copying build_trackball.sh to build_trackball_local.sh and tweak that as needed.
If you ever need to re-run west init -l app && west update, just run rm -rf zmk/.west then re-build docker with docker build -t endgame-firmware .
Fork the endgame-trackball-config repository. Any commit will trigger an action that will build the firmware for you.
- Flash the debug firmware.
- Check out your logs via USB.
- Parent repo: https://github.com/efogtech/endgame-trackball
- ZMK docs: https://zmk.dev/docs/
- Zephyr 3.5 docs: https://docs.zephyrproject.org/3.5.0/