Add SimHub DIY belt tensioner support to the G Tensioner#47
Open
mherbold wants to merge 8 commits into
Open
Conversation
The G Tensioner page now has a device type selector with three options: the MAIRA SBT (default, unchanged), and the SimHub DIY belt tensioner running either its motion addon firmware or its free legacy belt tensioner plugin firmware. Supporting both firmwares matters because the motion addon is a paid SimHub feature, and speaking the stock SimHub protocols means owners keep SimHub compatibility for other games without reflashing. - Motion addon firmware: binary framed protocol at 250000 baud, both belt positions per frame, detected by an "enabled motors" query. - Legacy plugin firmware: M1/M2 text lines at 19200 baud, detected passively via the boot banner printed after the DTR reset. - Neither firmware has a vibration command, so ABS / wheel slip / rumble effects are synthesized PC-side by oscillating the position stream at 60fps; sending stops 1s after telemetry stops so the device can park itself. - UsbSerialPortHelper gains a handshakeRequestData parameter for passive and binary handshakes. - New device name strings localized across all 35 languages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… events Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
The G Tensioner page gets a device type selector (Connection group) with three options:
Enabled motors:<n>replyM1 <v>/M2 <v>text lines at 19200 baud (signed ±32767 scale), detected passively via the"<n> steppers enabled"boot banner the Nano prints after the DTR reset on port openBoth protocols were verified against the official firmware sources downloaded from simhubdash.com.
Why
SimHub DIY belt tensioner owners can drive their hardware from MAIRA with the stock SimHub firmware — no reflash — so the rig keeps working with SimHub for other games. Both firmware variants are supported because the motion addon is a paid SimHub license feature; many rigs run the free legacy plugin firmware.
Implementation notes for review
GTensioner.csis device-aware.Tick(SendSimHubPositions). Sending stops 1s after the last base position update so the device can park/sleep itself, mirroring how the SBT sleeps when S packets stop.N/A/B), max motor speed (M), and inverted arms (I) commands are MAIRA-SBT-only; the min/neutral/max window is applied PC-side for SimHub devices, and the inverted-arms switch is disabled for them (their homing fixes the position sense in firmware).UsbSerialPortHelpergains an optionalhandshakeRequestDataparameter:null= existing "WHAT ARE YOU?" text probe, empty = passive listen, bytes = raw binary probe. Probing remains gated to known USB-serial bridge chips.Not included
🤖 Generated with Claude Code