Skip to content

feat(multisync): add JBoards controller support - #2787

Closed
pixelpropshop wants to merge 1 commit into
FalconChristmas:masterfrom
pixelpropshop:feat/jboards-multisync-support
Closed

pixelpropshop wants to merge 1 commit into
FalconChristmas:masterfrom
pixelpropshop:feat/jboards-multisync-support

Conversation

@pixelpropshop

@pixelpropshop pixelpropshop commented Jul 29, 2026 •

Copy link
Copy Markdown

JBoards controllers play FSEQ files locally and follow MultiSync as remotes. This adds them as a known controller type. Rebased onto current master and redone to match the async detector style.

  • Allocate 0xC5 in the "other systems" block. ControlProtocol.txt also gets the Baldrick (0xC4) and Twinkly (0xFA) rows it was missing.
  • DetectJBoardsController pre-filters on the page, then reads /api/system/summary from the board for hostname, model, firmware version, UUID, channel ranges and sync role. It's one request, and the UUID is the board's own.
  • supportsUnicast includes JBoards alongside the existing "below 0x80" test, so a JBoards board in remote mode can be a unicast sync target. No existing type changes behavior.
  • The MultiSync page polls JBoards status the same way as the other non-FPP controllers (through api/system/status?type=JBoards), showing the state, playlist/sequence, elapsed time, uptime, model and version. The platform filter has a JBoards entry.

Tested with fppd built from this branch in Docker against two boards (PocketBeagle 2 and ESP32-P4): both were discovered over HTTP as 0xC5 with the right mode, version, ranges and UUID, and the status proxy returned their state.

Happy to use a different id if 0xC5 isn't the preferred slot.

@pixelpropshop
pixelpropshop force-pushed the feat/jboards-multisync-support branch from d01c2ff to b6fc693 Compare September 26, 2026 19:48
JBoards controllers play FSEQ files locally and follow MultiSync as
remotes. This adds them as a known controller type.

- Allocate 0xC5 in the other systems block. ControlProtocol.txt also
  gets the Baldrick (0xC4) and Twinkly (0xFA) rows it was missing.
- DetectJBoardsController reads the board's /api/system/summary for its
  hostname, model, firmware version, UUID, channel ranges and sync role.
- A JBoards board in remote mode is a unicast sync target.
- The MultiSync page polls JBoards status, uptime and version, and the
  platform filter has a JBoards entry.
@pixelpropshop

Copy link
Copy Markdown
Author

Closing in favor of #3000, a new PR that adds JBoards to MultiSync using the current async detection and status methods, rebased on current master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants