Skip to content

feat(device): wire up the Lamzu Atlantis driver - #235

Closed
bpavlina wants to merge 2 commits into
OpenMouse-Project:mainfrom
bpavlina:feat/lamzu-atlantis
Closed

feat(device): wire up the Lamzu Atlantis driver#235
bpavlina wants to merge 2 commits into
OpenMouse-Project:mainfrom
bpavlina:feat/lamzu-atlantis

Conversation

@bpavlina

@bpavlina bpavlina commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Companion to OpenMouse-Project/mouse-protocol#85, which adds the Lamzu Atlantis generation (CompX vendor id 0x3554) as its own driver.

import { LamzuAtlantisHidClient } from "@openmouse/protocol/drivers/lamzu-atlantis/hid";

const NEEDS_OPEN = [LamzuAtlantisHidClient, TeevolutionHidClient, ] as const;

The client's transport is interrupt reports, so it attaches its inputreport listener in open() — without the NEEDS_OPEN entry the first readStatus() would sit waiting for a reply that nothing is listening for.

What the app shows once the protocol PR lands

Read from a Lamzu Atlantis Mini 4K, firmware 1.24, wired:

Field Value
Name / brand Lamzu Atlantis · Lamzu
Firmware Mouse v1.24
Battery 100%, 4222 mV, Charging
DPI stages 400 / 800 / 2000 / 3200 / 6400, colours #ff0000 #00ffff #00ff00 #ffffff #ffff00
Polling 500 Hz, from 125 / 250 / 500 / 1000
Lift-off · debounce · sleep Low (1 mm) · 4 ms · 60 s
Processing motion sync on, angle snapping off, ripple off, competition mode on

Every value matches what Lamzu's own configurator displayed for the same mouse at the same moment.

Not included

No ui/device-images.ts mapping: there is no 3554:* artwork in the bucket, so the Atlantis resolves to unknown-device.png — the same treatment Orbital and moddo get today. Happy to add the mapping once art exists.

🤖 Generated with Claude Code

bpavlina and others added 2 commits September 9, 2026 00:34
Companion to mouse-protocol's Lamzu Atlantis generation (0x3554). The
client opens its notification channel before the first read, so it joins
NEEDS_OPEN.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RWUM7JqBNz5bjMfs3ZVQKn
Without this, the debounce and auto-sleep cards render for the Atlantis
and silently do nothing — applyPulsarValue gates on the client groups,
and NEEDS_OPEN alone does not join one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RWUM7JqBNz5bjMfs3ZVQKn
@snekxs

snekxs commented Sep 11, 2026

Copy link
Copy Markdown
Member

CI failure and merge conflict both trace to the same root cause: this PR imports LamzuAtlantisHidClient from @openmouse/protocol/drivers/lamzu-atlantis/hid, but the mouse-protocol repo has no lamzu-atlantis driver module — only src/drivers/lamzu/hid.ts exporting LamzuHidClient (the existing Lamzu Maya-family driver). This looks like the companion protocol-side PR (adding the Atlantis driver class to mouse-protocol) either never landed or landed under a different module path/name than this PR expects.

Not something I want to guess-fix by writing a new HID driver class speculatively — that needs whoever wrote the original Atlantis wire-format work to confirm the report layout. Needs a maintainer to either (a) locate/merge the companion mouse-protocol PR that adds LamzuAtlantisHidClient, or (b) confirm the intended import path if it already shipped under a different name, after which this PR's own merge conflict in src/device/controller.ts (import ordering vs. newer driver entries added on main since) is a small, mechanical rebase.

@snekxs

snekxs commented Sep 11, 2026

Copy link
Copy Markdown
Member

The protocol-side driver landed in mouse-protocol#91 after this PR was opened, which unblocked it. Resolved the one conflict (additive in controller.ts, sibling driver registrations) against current main in #249, now merged. Since I can't push to this fork branch, closing this one in favor of #249 — thank you for the Lamzu Atlantis work!

@snekxs snekxs closed this in 922f4b4 Sep 11, 2026
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