Features⌗

  • Easy WS2812B Addressable LED control
  • Accurate motor velocity measurements
  • Template for making custom velocity controllers
  • Many kinds of pre-built filters for general use
  • Platform-agnostic, meaning it works with both PROS and VEXcode

Installation⌗

PROS⌗

  1. Download the latest version of the Sylib template from the Releases page
  2. In the directory where you downloaded the zip archive, run pros c fetch sylib@<version>.zip
  3. In your PROS project directory, run pros c apply sylib@<version>
  4. In your main.h file, make sure to include sylib/sylib.hpp
  5. In /include/sylib/env.hpp make sure that SYLIB_SRC_PRESENT and SYLIB_ENV_VEXCODE are not defined, and that SYLIB_ENV_PROS is. This makes sure that the right headers are included, and that sylib uses the pre-compiled library provided by the template instead of trying to build it from the non-existent source (which would not compile in a PROS environment anyways).
  6. In your initialize() function, make sure to include sylib::initialize();

note: Sylib requires PROS kernel 3.7.2 or later to run, and is not currently compatible with PROS 4

VEXcode/VEX Visual Studio Code Extension⌗

  1. From the Releases page, download the latest version of the Sylib source code
  2. Copy the contents of the include/ directory from the downloaded files into the include/ directory of your project
  3. Copy the contents of the src/ directory from the downloaded files into the src/ directory of your project
  4. Include sylib/sylib.hpp anywhere relevant, probably including at the top of your main.cpp file
  5. In /include/sylib/env.hpp make sure that SYLIB_ENV_PROS is not defined, and that SYLIB_ENV_VEXCODE is. This makes sure that the right headers are included, and that sylib compiles the source code instead of trying to use the non-existent PROS template.
  6. In your pre-auton function, make sure to include sylib::initialize();

Acknowledgements⌗

This project would not have been possible without the contributions of

  • Leo Riesenbach
  • Lachlan Davidson
  • James Pearman
  • Griffin Tabor
  • Nick Mertin
  • Andrew Strauss
  • Jamie Maki-Fern
  • Salmon