diff --git a/README.md b/README.md index fcc3e81..605e935 100644 --- a/README.md +++ b/README.md @@ -1,102 +1,33 @@ -

- - GP2040-CE - -

+# GP2040-CE Site Documentation -

- Multi-Platform Gamepad Firmware for RP2040 -

+This is the documentation repository for the GP2040-CE Gamepad Firmware. It is powered by [Docusaurus](https://docusaurus.io/) and can found [here](https://gp2040-ce.info). -

- - -
- - -

+## Building the site -

- GP2040-CE (Community Edition) is a gamepad firmware for the Raspberry Pi Pico and other boards based on the RP2040 microcontrollers that combines multi-platform compatibility, low latency and a rich feature set to provide endless customization possibilities without sacrificing performance. -

+The site is built automatically with every push and merge, using the [Github Action](https://github.com/OpenStickCommunity/Site/blob/main/.github/workflows/deploy.yml). -

- GP2040-CE is compatible with PC, PS3, PS4, PS5, Nintendo Switch, Xbox One, Steam Deck, MiSTer and Android. -

+NOTE: You need to have Node.js (>= 16.14) installed on your system to build this site. Node.js can be found [here](https://nodejs.org/en/download/package-manager) -## Links +1. Clone the repository -[Downloads](https://gp2040-ce.info/downloads) | [Installation](https://gp2040-ce.info/installation) | [Wiring](https://gp2040-ce.info/controller-build/wiring) | [Usage](https://gp2040-ce.info/usage) | [FAQ](https://gp2040-ce.info/faq/faq-general) | [GitHub](https://github.com/OpenStickCommunity/GP2040-CE) +`git clone https://github.com/OpenStickCommunity/Site.git` -Full documentation can be found at [https://gp2040-ce.info](https://gp2040-ce.info) +2. Move to the folder where the repository is cloned -## Features +`cd Site` -- Select from 13 input modes including X-Input, Nintendo Switch, Playstation 4/5, Xbox One, D-Input, and Keyboard -- Input latency average of 0.76ms in Xinput and 0.91ms for Playstation 5. -- Multiple SOCD cleaning modes - Up Priority (a.k.a. Stickless), Neutral, and Second Input Priority. -- Left and Right stick emulation via D-pad inputs as well as dedicated toggle switches. -- Dual direction via D-pad + LS/RS. -- Reversed input via a button. -- [Turbo and Turbo LED](https://gp2040-ce.info/add-ons/turbo) with selectable speed -- Per-button RGB LED support. -- PWM Player indicator LED support (XInput only). -- Multiple LED profiles support. -- Support for 128x64 monochrome I2C displays - SSD1306, SH1106, and SH1107 compatible. -- Custom startup splash screen and easy image upload via web configuration. -- Support for passive buzzer speaker (3v or 5v). -- [Built-in, embedded web configuration](https://gp2040-ce.info/web-configurator) - No download required! +3. Install the dependencies -Visit the [GP2040-CE Usage](https://gp2040-ce.info/usage) page for more details. +`npm install` -## Performance +4. Start the website -Input latency is tested using the methodology outlined at [WydD's inputlag.science website](https://inputlag.science/controller/methodology), using the default 1000 Hz (1 ms) polling rate in the firmware. You can read more about the setup we use to conduct latency testing [HERE](https://github.com/OpenStickCommunity/Site/blob/main/latency_testing/README.md) if you are interested in testing for yourself or would just like to know more about the devices used to do the testing. +`npm start` -| Version | Mode | Poll Rate | Min | Max | Avg | Stdev | % on time | %1f skip | %2f skip | -| -------- | -------- | --------- | ------- | ------- | ------- | ------- | --------- | -------- | -------- | -| v0.7.10 | Xinput | 1 ms | 0.45 ms | 1.28 ms | 0.76 ms | 0.24 ms | 98.48% | 1.52% | 0% | -| v0.7.10 | Switch | 1 ms | 0.41 ms | 1.22 ms | 0.73 ms | 0.24 ms | 98.52% | 1.48% | 0% | -| v0.7.10 | HID USB | 1 ms | 0.42 ms | 1.24 ms | 0.73 ms | 0.24 ms | 98.53% | 1.47% | 0% | -| v0.7.10 | PS3 | 1 ms | 0.52 ms | 1.33 ms | 0.82 ms | 0.24 ms | 98.38% | 1.62% | 0% | -| v0.7.10 | PS4 | 1 ms | 0.55 ms | 2.38 ms | 0.91 ms | 0.31 ms | 98.19% | 1.81% | 0% | -| v0.7.10 | PS5 | 1 ms | 0.55 ms | 2.38 ms | 0.90 ms | 0.31 ms | 98.20% | 1.80% | 0% | +The website will be running at (i.e. ) -Full results can be found in the [GP2040-CE v0.7.10 Firmware Latency Test Results](https://github.com/OpenStickCommunity/Site/raw/main/latency_testing/GP2040-CE_Firmware_Latency_Test_Results_v0.7.10.xlsx) .xlsx Sheet. - -Results from v0.7.9 can be found [HERE](https://github.com/OpenStickCommunity/Site/raw/main/latency_testing/GP2040-CE_Firmware_Latency_Test_Results_v0.7.9.xlsx). Previous results can be found in the `latency_testing` folder. - -## Support - -If you would like to discuss features, issues or anything else related to GP2040-CE please [create an issue](https://github.com/OpenStickCommunity/GP2040-CE/issues/new) or join the [OpenStick GP2040-CE Discord](https://discord.gg/k2pxhke7q8) support channel. +You can now edit the files in the docs folder and the site will reflect the changes immediately thanks to live reloading. ## Contributing -Want to help improve GP2040-CE? There are a bunch of ways to contribute! - -### Community Participation - -Have an idea for a cool new feature, or just want to discuss some technical details with the developers? Join the [OpenStick GP2040-CE Discord](https://discord.gg/k2pxhke7q8) server to participate in our active and ever-growing community! - -### Pull Requests - -Pull requests are welcome and encouraged for enhancements, bug fixes and documentation updates. - -Please respect the coding style of the file(s) you are working in, and enforce the use of the `.editorconfig` file when present. - -## Acknowledgements - -- [FeralAI](https://github.com/FeralAI) for building [GP2040](https://github.com/FeralAI/GP2040) and laying the foundation for this community project -- Ha Thach's excellent [TinyUSB library](https://github.com/hathach/tinyusb) examples -- fluffymadness's [tinyusb-xinput](https://github.com/fluffymadness/tinyusb-xinput) sample -- Kevin Boone's [blog post on using RP2040 flash memory as emulated EEPROM](https://kevinboone.me/picoflash.html) -- [bitbank2](https://github.com/bitbank2) for the [OneBitDisplay](https://github.com/bitbank2/OneBitDisplay) and [BitBang_I2C](https://github.com/bitbank2/BitBang_I2C) libraries, which were ported for use with the Pico SDK -- [arntsonl](https://github.com/arntsonl) for the amazing cleanup and feature additions that brought us to v0.5.0 -- [alirin222](https://github.com/alirin222) for the awesome turbo code ([@alirin222](https://twitter.com/alirin222) on Twitter) -- [deeebug](https://github.com/deeebug) for improvements to the web-UI and fixing the PS3 home button issue -- [TheTrain](https://github.com/TheTrainGoes/GP2040-Projects) and [Fortinbra](https://github.com/Fortinbra) for helping keep our community chugging along -- [PassingLink](https://github.com/passinglink/passinglink) for the technical details and code for PS4 implementation -- [Youssef Habchi](https://youssef-habchi.com/) for allowing us to purchase a license to use Road Rage font for the project -- [tamanegitaro](https://github.com/tamanegitaro/) and [alirin222](https://github.com/alirin222) for the basis of the mini/classic controller work -- [Ryzee119](https://github.com/Ryzee119) for the wonderful [ogx360_t4](https://github.com/Ryzee119/ogx360_t4/) and xid_driver library for Original Xbox support -- [Santroller](https://github.com/Santroller/Santroller) and [GIMX](https://github.com/matlo/GIMX) for technical examples of Xbox One authentication using pass-through +We appreciate all contributions to this repository. Please make a Pull Request, no matter how small, all contributions are valuable! diff --git a/docs/add-ons/rotary-encoders.mdx b/docs/add-ons/rotary-encoders.mdx index 53d77e5..85781e2 100644 --- a/docs/add-ons/rotary-encoders.mdx +++ b/docs/add-ons/rotary-encoders.mdx @@ -9,9 +9,10 @@ description: "Add-on to allow for the use of rotary encoders." # Rotary Encoders -:::Note +:::warning Beta Please note that rotary encoders are currently in beta. + ::: Purpose: Rotary encoders allow for continuous or limited min-max pulses on specified pins. diff --git a/docusaurus.config.js b/docusaurus.config.js index 0ec9c37..5666271 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -140,9 +140,9 @@ const config = { name: "README", // used by CLI, must be path safe sourceBaseUrl: "https://raw.githubusercontent.com/OpenStickCommunity/GP2040-CE/main/", // the base url for the markdown (gets prepended to all of the documents when fetching) - outDir: "/", // the base directory to output to. + outDir: "/docs", // the base directory to output to. documents: ["README.md"], // the file names to download - performCleanup: false, + performCleanup: true, modifyContent(filename, content) { if (filename.includes("README")) { return content; // <-- this last part adds in the rest of the content, which would otherwise be discarded diff --git a/src/pages/index.mdx b/src/pages/index.mdx index a9e03d8..5005de6 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -1,3 +1,12 @@ -import Readme from "../../README.md" +--- +title: GP2040-CE Homepage +# tags: +# - +pagination_next: null +pagination_prev: null +description: "GP2040-CE (Community Edition) is a gamepad firmware for the Raspberry Pi Pico and other boards based on the RP2040 microcontrollers that combines multi-platform compatibility, low latency and a rich feature set to provide endless customization possibilities without sacrificing performance." +--- - \ No newline at end of file +import Homepage from "../../docs/README.md" + + \ No newline at end of file