• C 80.3%
  • C++ 14.8%
  • Java 3.1%
  • CMake 0.4%
  • TypeScript 0.3%
  • Other 0.6%
Find a file
2026-06-23 10:23:50 +02:00
.github add arm gcc 2026-04-28 18:41:09 +02:00
build-environment PI4 is not used and also we do not have plans to use it, so lets remove it 2026-05-13 13:55:29 +02:00
cmake fixup audio-engine connection to new ehc protocol 2026-06-10 22:05:56 +02:00
configuration Merge branch 'led-multi-issue' into sb26-multi-ticket 2026-05-06 12:11:08 +02:00
doc updated doc once more 2024-06-11 15:46:26 +02:00
hooks wip 2026-03-31 12:28:11 +02:00
os PI4 is not used and also we do not have plans to use it, so lets remove it 2026-05-13 13:55:29 +02:00
package Merge pull request #5142 from nonlinear-labs-dev/c25-dual-parameters 2026-06-23 10:23:50 +02:00
update let teh device simulate a ethernet device via usb, so we can access it without additional network hardware 2026-05-05 18:09:34 +02:00
.clang-format fix midi timing 2019-03-07 18:57:10 +01:00
.gitattributes finish STM integration for hall-keybed-scanner 2026-03-11 12:01:17 +01:00
.gitignore left-control-panel : fix ADC sampling 2026-04-16 21:06:37 +02:00
.gitmodules Merge branch 'next-milestone' into stm-firmware 2026-04-17 13:18:47 +02:00
AGENTS.md add latest stm packages 2026-05-04 19:01:08 +02:00
CMakeLists.txt change include catch2 to submodule instead of FetchContent 2025-12-09 13:39:56 +01:00
CMakePresets.json make install for nonmaps development 2025-12-02 18:27:35 +01:00
COPYING.md incorporate review comments 2024-07-05 08:51:50 +02:00
dos2unix_all.bat CRLF-->LF conversion stuff 2020-06-10 19:17:56 +02:00
README.md more build documentation 2025-12-03 10:45:45 +01:00
reformat-all.sh fix reformat-all.sh 2023-04-05 11:10:47 +02:00

Run Unit Tests

nl Firmware

prepare environment

  • install bindfs, podman, jq, ccache
  • edit /etc/fuse.conf: uncomment (or add) user_allow_other

Prepare build directory

  • git clone git@github.com:nonlinear-labs-dev/C15.git C15
  • git submodule update --init --recursive
  • cd C15
  • cmake --preset dev-debug
    • the dev-debug preset already contains default binary and install directories
      • if desired, provide a custom binary directory (-B), e.g. outside the repository folder by adding -B ../build
      • if desired, provide a custom install directory (CMAKE_INSTALL_PREFIX), e.g. outside the repository folder by adding -DCMAKE_INSTALL_PREFIX=../nl-rootfs
    • for building yocto-based updates it is recommended to provide a cache folder by adding -DYOCTO_SHARED_CACHE_DIR="<desired_yocto_cache_dir>"
    • if desired, choose another cmake preset, e.g. dev-release

Build binaries for local development PC

  • cmake --build --preset dev-debug --target install

Build Update for C15

  • cmake --build --preset dev-debug --target update-c15

Build Tests with coverage

  • install lcov
  • configure cmake with -DENABLE_COVERAGE=On
  • build <target>-coverage and inspect results in build-dir/package/<target>/<target>-coverage

For developing the meteor package

  • start either c16-playground or c15-playground
  • make meteor-dev-environment-base
  • wait until settled
  • open with your ide: ...build-folder/package/meteor/ide
  • open in browser: http://localhost:3000/index.html?page=[c16 | c16Debug |nonmaps | nonmapsPresetSearch]
  • if needed for developing NonMaps: see For developing NonMaps

Debugging a remote meteor UI

  • start ssh-tunnel to target ssh -L 9222:localhost:9222 sscl@raspi-ip
  • open chrome on the developer-pc and navigate to chrome://inspect/#devices
  • navigate to Devices and select inspect for the c16 URL below the Remote Target #LOCALHOST heading (this might take a few seconds to show up)

For developing NonMaps

  1. Once: configure using cmake --preset dev-nonmaps --fresh
  2. After every commit:
  3. run cmake --build --preset dev-nonmaps
  4. start the c15-playground
  5. Enable gwt compile as documented here. In short:
  • navigate to package/nonmaps/
  • run mvn gwt:devmode (once install maven if not done yet)
  1. Then, open localhost:8080 in the browser

Useful: Save the following bookmarks to your browser:

  • "nonmaps: enable dev mode": javascript:%7B window.__gwt_bookmarklet_params %3D %7B'server_url'%3A'http%3A%2F%2Flocalhost%3A9876%2F'%7D%3B var s %3D document.createElement('script')%3B s.src %3D 'http%3A%2F%2Flocalhost%3A9876%2Fdev_mode_on.js'%3B void(document.getElementsByTagName('head')%5B0%5D.appendChild(s))%3B%7D
  • "nonmaps: compile": javascript:%7B window.__gwt_bookmarklet_params %3D %7Bserver_url%3A'http%3A%2F%2Flocalhost%3A9876%2F'%2Cmodule_name%3A'nonmaps'%7D%3B var s %3D document.createElement('script')%3B s.src %3D 'http%3A%2F%2Flocalhost%3A9876%2Fdev_mode_on.js'%3B void(document.getElementsByTagName('head')%5B0%5D.appendChild(s))%3B%7D

Show the developer options, if needed:

  1. in the Web UI, enable Setup > GUI Settings > Show Developer Options
  2. scroll to the north where the "Developer Options" box should be shown now