diff --git a/docs/add-ons/hall-effect-trigger.mdx b/docs/add-ons/hall-effect-trigger.mdx
new file mode 100644
index 0000000..8eeace3
--- /dev/null
+++ b/docs/add-ons/hall-effect-trigger.mdx
@@ -0,0 +1,67 @@
+---
+title: Hall-Effect Trigger
+# tags:
+# -
+pagination_next: null
+pagination_prev: null
+description: "Add-on to use hall-effect trigger buttons with GP2040-CE"
+---
+
+# Hall-Effect Trigger
+
+Purpose: This add-on is intended for the use of hall-effect buttons either on their own or through the use of a multiplexer breakout board.
+
+
+
+## Web Configurator Options
+
+- `Channels Per Multiplexer` - The number of channels on your multiplexer or multiplexers. Please note that if you are using multiple they must all be the same. If using no multiplexers and connecting direction select `Direct (No Mux)`
+- `Select Pin 0` - The GPIO pin used for the select pin on your multiplexer or multiplexers.
+- `Select Pin 1` - The GPIO pin used for the select pin on your multiplexer or multiplexers.
+- `Select Pin 2` - The GPIO pin used for the select pin on your multiplexer or multiplexers.
+- `Select Pin 3` - The GPIO pin used for the select pin on your multiplexer or multiplexers.
+- `ADC Pin 0` - The ADC GPIO pin used for the first multiplexer or individual hall-effect switch.
+- `ADC Pin 1` - The ADC GPIO pin used for the second multiplexer or individual hall-effect switch.
+- `ADC Pin 2` - The ADC GPIO pin used for the third multiplexer or individual hall-effect switch.
+- `ADC Pin 3` - The ADC GPIO pin used for the fourth multiplexer or individual hall-effect switch.
+- `Analog Smoothing` - Enabled analog smoothing which may be useful if you are getting noisy readings.
+- `Smoothing Factor` - An EMA value between 1 and 99. A value of 1 is the most smoothing and a value of 99 is the least smoothing.
+
+## Calibrating
+
+
+
+### How to calibrate hall-effect switches
+
+All connected hall-effect switches will need to be calibrated either individually or all at once. In most cases it is recommended to calibrate all hall-effect buttons at the same time unless you are using different types of hall-effect switches.
+
+1 - Press the `Calibrate All` button or press the magnet button for any one individual multiplexer channel.
+2 - With the button not pressed wait for the `Idle Voltage Reading` to settle.
+3 - Press the `Calibrate Idle` button
+4 - Full press the hall-effect switch. While still holding the switch fully pressed press the `Calibrate Pressed` button.
+
+
+
+Advanced calibration can also be done manually by pressing the `Manual Adjustments` button.
+
+Inside advanced calibration the following options are available:
+- `Idle Voltage` - The voltage of the switch at idle.
+- `Activation Voltage` - The voltage of the switch at the activation point you would like to set.
+- `Pressed Voltage` - The voltage of the switch at the maximum pressed value.
+- `Flip Polarity` - Not yet supported.
+
+The `Activation Point Reading` section will give you a live view of your hall-effect switch as you press it.
+
+If you are in the `Calibrate All` section you will see an `Overwrite All Triggers` button that will allow you to overwrite all preiously saved settings.
+
+## Hall-Effect Voltage Table
+
+
+
+The hall-effect voltage table will give you a summary of all current settings for your hall-effect switches.
+
+:::note
+
+Please ensure you click on the `Save Trigger Values` before navigating to another page in web-config or rebooting to controller mode or your changes will not be saved.
+
+:::
\ No newline at end of file
diff --git a/docs/assets/images/gpc-add-ons-hall-effect-trigger-calibrate-advanced.png b/docs/assets/images/gpc-add-ons-hall-effect-trigger-calibrate-advanced.png
new file mode 100644
index 0000000..103d387
Binary files /dev/null and b/docs/assets/images/gpc-add-ons-hall-effect-trigger-calibrate-advanced.png differ
diff --git a/docs/assets/images/gpc-add-ons-hall-effect-trigger-calibrate.png b/docs/assets/images/gpc-add-ons-hall-effect-trigger-calibrate.png
new file mode 100644
index 0000000..dfe4757
Binary files /dev/null and b/docs/assets/images/gpc-add-ons-hall-effect-trigger-calibrate.png differ
diff --git a/docs/assets/images/gpc-add-ons-hall-effect-trigger-voltage-table.png b/docs/assets/images/gpc-add-ons-hall-effect-trigger-voltage-table.png
new file mode 100644
index 0000000..0296a2b
Binary files /dev/null and b/docs/assets/images/gpc-add-ons-hall-effect-trigger-voltage-table.png differ
diff --git a/docs/assets/images/gpc-add-ons-hall-effect-trigger.png b/docs/assets/images/gpc-add-ons-hall-effect-trigger.png
new file mode 100644
index 0000000..d5fa7ab
Binary files /dev/null and b/docs/assets/images/gpc-add-ons-hall-effect-trigger.png differ
diff --git a/docs/assets/images/gpc-home.png b/docs/assets/images/gpc-home.png
index c843554..4007e3e 100644
Binary files a/docs/assets/images/gpc-home.png and b/docs/assets/images/gpc-home.png differ
diff --git a/docs/assets/images/gpc-settings-input-mode.png b/docs/assets/images/gpc-settings-input-mode.png
index e8e5e80..b1d7a1d 100644
Binary files a/docs/assets/images/gpc-settings-input-mode.png and b/docs/assets/images/gpc-settings-input-mode.png differ
diff --git a/docs/assets/images/gpc-settings-ps4.png b/docs/assets/images/gpc-settings-ps4.png
index 11d346f..4e2a2c8 100644
Binary files a/docs/assets/images/gpc-settings-ps4.png and b/docs/assets/images/gpc-settings-ps4.png differ
diff --git a/docs/assets/images/gpc-settings-ps5-host-usb.png b/docs/assets/images/gpc-settings-ps5-host-usb.png
index 6d23325..9e2d319 100644
Binary files a/docs/assets/images/gpc-settings-ps5-host-usb.png and b/docs/assets/images/gpc-settings-ps5-host-usb.png differ
diff --git a/docs/assets/images/gpc-settings-ps5.png b/docs/assets/images/gpc-settings-ps5.png
index de2183d..9e2d319 100644
Binary files a/docs/assets/images/gpc-settings-ps5.png and b/docs/assets/images/gpc-settings-ps5.png differ
diff --git a/docs/faq/faq-console-compatibility.mdx b/docs/faq/faq-console-compatibility.mdx
index fdb3ba7..6074509 100644
--- a/docs/faq/faq-console-compatibility.mdx
+++ b/docs/faq/faq-console-compatibility.mdx
@@ -205,41 +205,10 @@ For Xbox 360 compatibility, you will need to use the [XInput](../web-configurato
### What is the Xbox 360 Input Mode?
-:::caution Additional Hardware Required
-
-- [USB Host Port](../controller-build/usb-host.mdx)
-- Xbox 360 Authentication Device
-
-:::
-
-Xbox 360 Mode through XInput grants GP2040-CE compatibility with the Xbox 360 by using a dongle to answer authentication
+Xbox 360 Mode through XInput grants GP2040-CE compatibility with the Xbox 360.
For more information, refer to [Xbox 360 Input Mode](../web-configurator/menu-pages/01-settings.mdx) in the `Web Configurator - Add-ons` section of the documentation.
-### What dongle do I use for Xbox 360 Input Mode?
-
-Currently there is only one dongle that will work for Xbox 360 input mode:
-
-- [MagicBoots FPS Adapter Joystick Converter for Xbox 360](https://www.mayflash.com/product/MAG360.html)
-
-Because your experience and purchased products may vary, GP2040-CE will not provide additional specific recommendations beyond these known working devices.
-
-:::caution Xbox 360 Controllers
-
-Xbox 360 Wireless Controllers, Xbox 360 Wired Controllers, and other licensed Xbox 360 controllers will not work with this add-on.
-
-:::
-
-### How do I know the Xbox 360 Input Mode add-on is working?
-
-Because of the numerous devices to be used for passthrough authentication, there is not just one way to verify that the input mode is working without plugging the controller into a console and attempting to use it.
-
-For the MagicBoots Adapter listed above, there is an indicator light on the dongle that should flash on boot and then become solid after a moment. If the indicator light is on and solid, your controllers _should_ be compatible and you may use your controller as intended.
-
-### Can I remove the Xbox 360 authentication device once I have plugged in my controller?
-
-Xbox 360 consoles only perform the authentication process once when the controller is plugged into the console. Once this occurs, the passthrough authentication device can be removed. However, it is still recommended to keep the device plugged in.
-
## Xbox One, Xbox Series S, and Xbox Series X
### How do I get my GP2040-CE unit to work on a Xbox One, Xbox Series S, or Xbox Series X?
diff --git a/docs/faq/faq-general.mdx b/docs/faq/faq-general.mdx
index bd4f34a..e99f0f0 100644
--- a/docs/faq/faq-general.mdx
+++ b/docs/faq/faq-general.mdx
@@ -16,14 +16,16 @@ description: "General FAQ related to the GP2040-CE project"
This will depend on the platform you will be playing on:
- Use `XInput Mode` as the preferred mode for compatibility with PC games and 3rd party console adapters
-- Use `PS4 Mode` on PS4, and on PS4 games on PS5 systems
+- Use `Xbox One` on an Xbox One S/X or Series X/S (requires the use of an authentication device)
- Use `PS3 Mode` on PS3, and on PS4 with games that support legacy controllers
+- Use `PS4 Mode` on PS4, and on PS4 games on PS5 systems
+- Use `PS5 Mode` on PS5 for games that support legacy controllers (requires the use of an authentication device)
- Use `Switch Mode` on Nintendo Switch
- Use `Keyboard Mode` for MAME cabinets, PC rhythm games, etc.
If you have a configured USB Host port, Passthrough enabled, and an appropriate authentication device, you can use a GP2040-CE controller in the following situations.
-- Use [`PS4 Input Mode`](../web-configurator/menu-pages/01-settings.mdx#additional-ps4-settings) on PS5 games on PS5 systems that support "categorized" controller (e.g. arcade stick, racing wheel, flight sim joystick, etc.)
+- Use [`PS5 Input Mode`](../web-configurator/menu-pages/01-settings.mdx#additional-ps4-settings) on PS5 games on PS5 systems that support "categorized" controller (e.g. arcade stick, racing wheel, flight sim joystick, etc.)
- Use [`Xbox One Input Mode`](../web-configurator/menu-pages/01-settings.mdx#additional-xbox-one-settings) on Xbox One, Xbox Series X, and Xbox Series S.
If you are using a Classic or Mini console, there are additional USB input modes to use with these emulated consoles.
diff --git a/docs/getting-help-support.mdx b/docs/getting-help-support.mdx
index 4d5648e..6948d69 100644
--- a/docs/getting-help-support.mdx
+++ b/docs/getting-help-support.mdx
@@ -11,16 +11,23 @@ description: "How to get help on issues with GP2040-CE"
## Discord
-If you need help with something, the best place to get quick support is our [Discord Server](https://discord.gg/k2pxhke7q8). Once you've read the [pinned post](https://discord.com/channels/1049366310389289001/1132450634243772519), create a post in the [support channel](https://discord.com/channels/1049366310389289001/1132447732662018089) with the following information.
+If you need help with something, the best place to get quick support may be our [Discord Server](https://discord.gg/k2pxhke7q8).
-1. What is the name of the device are you using?
-2. Where did you buy it? Provide a link to sales page.
-3. What version of the firmware are you currently running? Check this via the Web Configurator (e.g. 0.4.3, 0.5.0, 0.7.4, etc.)
-4. Which distribution of the firmware are you currently running? Provide the exact file name (e.g. GP2040-CE_X.X.X_Pico.uf2).
-5. What is the problem that you are having?
-6. What troubleshooting steps have you already done?
+Please note that we do not offer support for commercial products that have been purchased from most sellers. In these cases please reach out to the seller for help and support first.
-If this is a custom device, a hardware issue or you believe the firmware issue may be caused by hardware include any images .
+Once you've read the [pinned post](https://discord.com/channels/1049366310389289001/1132450634243772519), create a post in the [support channel](https://discord.com/channels/1049366310389289001/1132447732662018089) with the following information.
+
+1 - Are you a vendor?
+2 - What device are you using?
+3 - Where did you buy it? (post link to sales page)
+4 - Have you reached out to the vendor with this support question already? (please give a summary of the conversation)
+5 - What version and distribution of the firmware are you currently running? (check this via web-config)
+6 - What is the problem that you are having?
+7 - What trouble shooting steps have you already done?
+
+Please also include a picture of the front and back of the device in question along with at least one image of the controller board if the device is a full stick or has a case. Please also include images of your web-config pages if required.
+
+Any support posts that do not have this information filled out and pictures included will not be answered.
## Github Issues
diff --git a/docs/hotkeys.mdx b/docs/hotkeys.mdx
index 89c2927..14b8cb4 100644
--- a/docs/hotkeys.mdx
+++ b/docs/hotkeys.mdx
@@ -139,7 +139,7 @@ This hotkey will prevent non-cardinal directions from registering. When a second
This hotkey will alter the behavior of the directional buttons mapped with the [Dual Direction Input](./add-ons/dual-direction-input.mdx) add-on to prevent non-cardinal directions from registering. When a second cardinal direction input is received, the gamepad direction will change to the newest cardinal direction, similar to [SOCD Last Win](#socd-last-win).
-## Load Profile #1-4
+## Load Profile #1-6
This hotkey will load various input to GPIO pin mapping profiles set in [Profile Settings](./web-configurator/menu-pages/02-gpio-pin-mapping.mdx#profiles) in the Web Configurator.
diff --git a/docs/web-configurator/menu-pages/00-home.mdx b/docs/web-configurator/menu-pages/00-home.mdx
index aaf5107..affc653 100644
--- a/docs/web-configurator/menu-pages/00-home.mdx
+++ b/docs/web-configurator/menu-pages/00-home.mdx
@@ -14,9 +14,12 @@ description: "Home page for the GP2040-CE Web Configurator"
Here you can see the system stats for your device.
## Version
-`Device Name` - This will tell you the name of the device as well as the name of the UF2 that was placed onto the unit.
-`Current` - The current version of the firmware that is running on the device
-`Latest` - The latest available version of the firmware in our release section
+`Device Name` - This will tell you the name of the device as well as the name of the UF2 that was placed onto the unit.
+`Current` - The current version of the firmware that is running on the device.
+`Latest` - The latest available version of the firmware in our release section.
+`Architecture` - The architecture of the current build.
+`Build Type` - This will tell you what kind of build this is.
+`Build` - This will tell you the commit that this build came from.
## Memory
This section shows various stats about your flash memory module.
diff --git a/docs/web-configurator/menu-pages/01-settings.mdx b/docs/web-configurator/menu-pages/01-settings.mdx
index 7131767..ea2ea53 100644
--- a/docs/web-configurator/menu-pages/01-settings.mdx
+++ b/docs/web-configurator/menu-pages/01-settings.mdx
@@ -17,6 +17,7 @@ import TabItem from "@theme/TabItem";

- `Current Input Mode` - Choose the main input mode (XINPUT, DINPUT, Switch, PS4, HID-Keyboard, etc.) this connected device will boot into when powered on. This selection will persist through unplug and plugging back in the controller.
+- `Input Mode Controller Type` - Choose the subtype for this controller (please note this is experimental beyond `Gamepad`)
- `Authentication Settings` - Choose a method of authentication if needed for the mode.
:::note
@@ -56,6 +57,7 @@ Here you can remap the GP2040-CE buttons to different keyboard keycodes that wil

+- `Input Mode Controller Type` - Choose the subtype for this controller (please note this is experimental beyond `Gamepad`)
- `Switch Touchpad and Share` - Share will now be mapped to A2 rather than S1, Touchpad will be now mapped to S1 rather than A2
- `Identification Mode` is an option to allow for situations where a true DualShock 4 would be required. This doesn't make it a real DS4 for technical reasons, but it does make the firmware behave more like one.
- `Console` - This is what everyone is used to. It works on PS4/PS5 with the same restrictions you would expect for authorization.
diff --git a/docs/web-configurator/menu-pages/02-gpio-pin-mapping.mdx b/docs/web-configurator/menu-pages/02-gpio-pin-mapping.mdx
index abdbc55..d832da5 100644
--- a/docs/web-configurator/menu-pages/02-gpio-pin-mapping.mdx
+++ b/docs/web-configurator/menu-pages/02-gpio-pin-mapping.mdx
@@ -27,6 +27,11 @@ The following options are available for assignment to each GPIO Pin.
- [Macro](./09-macros.mdx)
- Function
- Extras
+- Analog directions (Analog max vlaue input X[-/+] and Y[-/+])
+- Mini-menu interaction and navigation
+- Tilt
+- Focus Mode enable
+- Toggle 4-Way joystick mode
:::note
- Multiple [Buttons](../../usage.mdx#buttons) can be assigned to a single GPIO pin (SOCD Cleaning, [Hotkeys](../../hotkeys.mdx), can both be activated).
@@ -53,7 +58,7 @@ If you do not know what pins are mapped to which button on your device, there is
You can configure profiles that will change the GPIO to GP2040-CE button mappings based on what profile number you have set. This means that you can have button layouts for different use cases and change between them without the need to enter the Web Configurator and remap GPIO pins.
-The profile number can be changed by either using the Web Configurator on the [Settings page](../../web-configurator/menu-pages/01-settings.mdx) or using a [hotkey shortcut](../../hotkeys.mdx#load-profile-1-4). There is not a default input combination associated with these `Load Profile #1-4`, `Next Profile`, or `Previous Profile` hotkey shortcuts so you will likely need to set them up in the Settings page under [Hotkey Settings](../../web-configurator/menu-pages/01-settings.mdx#hotkey-settings). The default is profile #1 on first boot, but will remember the last set profile between boots.
+The profile number can be changed by either using the Web Configurator on the [Settings page](../../web-configurator/menu-pages/01-settings.mdx) or using a [hotkey shortcut](../../hotkeys.mdx#load-profile-1-4). There is not a default input combination associated with these `Load Profile #1-6`, `Next Profile`, or `Previous Profile` hotkey shortcuts so you will likely need to set them up in the Settings page under [Hotkey Settings](../../web-configurator/menu-pages/01-settings.mdx#hotkey-settings). The default is profile #1 on first boot, but will remember the last set profile between boots.
### Profile Name
Profile name can be set to help identify what the profile is used for. This is especially useful if you have multiple profiles set up for different use cases.
@@ -78,8 +83,4 @@ At this time, profiles are limited to changing GPIO pin assignment and cannot be
- Focus Mode
- Keyboard Host Button-to-Key mapping
-:::
-
-## Custom builds
-
-How to wire buttons to GPIO pins is described in the [Wiring section](../../controller-build/wiring.mdx).
\ No newline at end of file
+:::
\ No newline at end of file
diff --git a/docs/web-configurator/menu-pages/07-display-configuration.mdx b/docs/web-configurator/menu-pages/07-display-configuration.mdx
index 5cbf5d0..6ccb25a 100644
--- a/docs/web-configurator/menu-pages/07-display-configuration.mdx
+++ b/docs/web-configurator/menu-pages/07-display-configuration.mdx
@@ -101,6 +101,7 @@ Going from left to right, the display elements are
- [Input Mode](../../usage.mdx#input-modes) - Displays the current input mode
- `XINPUT` - XInput
- `SWITCH` - Nintendo Switch
+ - `SWPRO` - Nintendo Switch Pro Controller
- `DINPUT` - PS3/DirectInput
- `HID-KB` - Keyboard
- `PS4` - Controller Mode set as `Controller`, will change to `PS4:AS` on successful authentication