Skip to content

Add CYCPLUS BC2 shifter support - #3905

Open
cagnulein wants to merge 3 commits into
masterfrom
claude/add-cycplus-bc2-device-014qutRiZ1uaJze6ud8iNDWg
Open

Add CYCPLUS BC2 shifter support#3905
cagnulein wants to merge 3 commits into
masterfrom
claude/add-cycplus-bc2-device-014qutRiZ1uaJze6ud8iNDWg

Conversation

@cagnulein

Copy link
Copy Markdown
Owner

Implements support for the CYCPLUS BC2 Bluetooth shifter device following the same pattern as Zwift Click and Elite Square controllers.

Features:

  • Uses Nordic UART Service for communication
  • Monitors 8-byte packets for shift up/down button states (bytes 6 and 7)
  • Triggers gear changes when button state transitions between pressed values
  • Integrates with bike gear control system
  • Enabled via zwift_play setting

Files changed:

  • src/zwift_play/cycplusbc2.h: Header with Nordic UART UUIDs and class definition
  • src/zwift_play/cycplusbc2.cpp: Implementation with button state tracking
  • src/devices/bluetooth.h: Added cycplusbc2Device pointer
  • src/devices/bluetooth.cpp: Added device discovery and signal connections
  • src/qdomyos-zwift.pri: Added new source files to build

The device name is "CYCPLUS BC2" and follows the reference implementation from https://github.com/jonasbark/swiftcontrol

Implements support for the CYCPLUS BC2 Bluetooth shifter device following
the same pattern as Zwift Click and Elite Square controllers.

Features:
- Uses Nordic UART Service for communication
- Monitors 8-byte packets for shift up/down button states (bytes 6 and 7)
- Triggers gear changes when button state transitions between pressed values
- Integrates with bike gear control system
- Enabled via zwift_play setting

Files changed:
- src/zwift_play/cycplusbc2.h: Header with Nordic UART UUIDs and class definition
- src/zwift_play/cycplusbc2.cpp: Implementation with button state tracking
- src/devices/bluetooth.h: Added cycplusbc2Device pointer
- src/devices/bluetooth.cpp: Added device discovery and signal connections
- src/qdomyos-zwift.pri: Added new source files to build

The device name is "CYCPLUS BC2" and follows the reference implementation
from https://github.com/jonasbark/swiftcontrol
Use static_cast to disambiguate the overloaded error signal from
QLowEnergyService, following the same pattern used in zwiftclickremote.cpp
Include QLowEnergyConnectionParameters header for Android builds to fix
incomplete type error when using connection parameters in serviceScanDone()
@stale

stale Bot commented Dec 6, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Dec 6, 2025
@stale stale Bot closed this Dec 13, 2025
@cagnulein cagnulein reopened this Dec 13, 2025
@stale stale Bot removed the wontfix This will not be worked on label Dec 13, 2025
@stale

stale Bot commented Dec 28, 2025

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Dec 28, 2025
@stale stale Bot closed this Jan 5, 2026
@cagnulein cagnulein reopened this Jan 5, 2026
@stale stale Bot removed the wontfix This will not be worked on label Jan 5, 2026
@stale

stale Bot commented Jan 20, 2026

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Jan 20, 2026
@stale stale Bot closed this Jan 27, 2026
@cagnulein cagnulein reopened this Jan 27, 2026
@stale stale Bot removed the wontfix This will not be worked on label Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants