From 3542b1b53bfae616926dde6e59661211adc9d69b Mon Sep 17 00:00:00 2001 From: WandererAstro Date: Thu, 18 Jun 2026 15:44:11 +0800 Subject: [PATCH] Add Wanderer FilterCube (RASA) driver documentation, update Snowflake documentation --- .../rasa-filtercube/rasa-filtercube.md | 26 ++++++++++++++++++ .../rasa-filtercube/rasa-filtercube.webp | Bin 0 -> 5552 bytes .../rasa-filtercube/rasa-filtercube.yaml | 10 +++++++ .../wanderer-snowflake/wanderer-snowflake.md | 24 ++++++++++------ .../wanderer-snowflake.yaml | 1 + 5 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.md create mode 100644 src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.webp create mode 100644 src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.yaml diff --git a/src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.md b/src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.md new file mode 100644 index 0000000..f455aa5 --- /dev/null +++ b/src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.md @@ -0,0 +1,26 @@ +--- +title: Wanderer FilterCube +categories: ["filter-wheels"] +description: INDI driver for the Wanderer Astro FilterCube (RASA), a 5-position filter wheel for Celestron RASA11, RASA36 and other similar prime focus telescopes, with zero optical obstruction. +thumbnail: ./rasa-filtercube.webp +--- + +## Overview + +The Wanderer FilterCube is a compact **5-position** electronic filter wheel designed for Celestron RASA11, RASA36 and other similar prime focus telescopes. Mounted at the prime focus, it introduces **zero optical obstruction** — light passes straight through with no vanes or secondary obstruction in the optical path, so it does not compromise the fast, wide-field performance these telescopes are built for. The device identifies itself on the bus as model **WFC50** and communicates via a USB-to-serial interface (CDC, CH340) using a simple numeric command protocol at **19200 baud, 8N1**. + +Like other Wanderer Astro wheels, the device continuously streams its status over the serial port, with fields separated by the `A` character. The driver parses this stream to track the current position and to verify the model at connection time. + +## Features + +- **5 filter positions** +- **Zero optical obstruction** at the prime focus — no vanes or secondary in the optical path +- **Model & firmware display** — the model (`WFC50`) and firmware version are read at handshake and shown in the read-only *Device Info* property +- **Device ID read/write** (0–10, command `1900000` + id) — useful when running several wheels from the same host +- **Per-filter name read/write** — each position stores a **single letter** (B–Z = 2–26; command `(161 + slot) * 10000 + letter`) +- Continuous status stream parsed in real time — current position is always known +- **Strict model validation** — the driver only connects to a `WFC50`; any other device on the selected port is rejected +- **Firmware requirement** — firmware **≥ 20260312** is required; older firmware is rejected with an upgrade prompt + +> [!NOTE] +> Unlike the Wanderer Snowflake, the FilterCube exposes **no** automatic-calibration and **no** zero-detection commands. It relies on its own mechanical reference and requires no calibration pass. diff --git a/src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.webp b/src/content/docs/filter-wheels/wanderer-astro/rasa-filtercube/rasa-filtercube.webp new file mode 100644 index 0000000000000000000000000000000000000000..f813c2a334416b806106b599a19eb0fe067a011a GIT binary patch literal 5552 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 **Note:** If the 12 V power supply is not connected the wheel will accept commands but will not move. The status stream will still be available. +> [!NOTE] +> If the 12 V power supply is not connected the wheel will accept commands but will not move. The status stream will still be available. -![INDI control panel – Main Control tab] +> [!IMPORTANT] +> If the wrong serial port is selected and the attached device is not a Snowflake (for example a Wanderer FilterCube or another Wanderer Astro device), the driver refuses to connect and reports a model mismatch instead of silently taking over the wrong device. ## Operation @@ -56,9 +64,7 @@ Select the target filter in the **Filter Slot** field (1–8) or use the **Filte ### Filter names and offsets -Filter names and focus offsets can be set in the **Filter** tab of the Ekos equipment manager. Names are stored on the device (up to 26 characters, letters B–Z per position). Offsets are stored on the device as integer values (0–255). - -![Ekos Filter Manager] +Filter names and focus offsets can be set in the **Filter** tab of the Ekos equipment manager. Each name is stored on the device as a **single letter** in the range **B–Z** (letter `A` is reserved by the protocol as the field delimiter). Invalid entries are rejected and the previous value is restored. Offsets are stored on the device as integer values (0–255). ### Calibration @@ -76,12 +82,12 @@ Auto calibrate is also sent automatically at every connection, matching the beha | Symptom | Likely cause | Fix | |---------|-------------|-----| -| *Failed to read status* at connect | Wrong port or 12 V not connected | Check the port in the Connection tab; verify power | +| *Failed to read status* / model mismatch at connect | Wrong port, or a different Wanderer Astro device is attached | Select the correct serial port for the Snowflake | +| *Firmware is outdated* | Firmware < 20260124 | Update the firmware to the latest version | | Wheel does not move | 12 V not connected | Connect the power supply | | Filter position shown as wrong number after startup | Partial status frame received during resync | Disconnect and reconnect; the driver re-reads the status stream | | *Timed out waiting for filter wheel to reach target* | Very slow move (calibration pass) or mechanical obstruction | Wait and retry; run **Zero detection** to home the wheel | ## Issues -- Filter name encoding uses letters B–Z only (letter A is reserved by the protocol). Names entered as "A" will be silently ignored by the device. -- The `pacman -Syu libindi` upgrade may overwrite `/usr/share/indi/drivers.xml`; re-run `deploy-wanderer-snowflake-system.sh` after any libindi upgrade. +- Filter names use a single letter (B–Z) per position. Letter `A` is reserved by the protocol as the field delimiter and is rejected; the previous value is restored. diff --git a/src/content/docs/filter-wheels/wanderer-astro/wanderer-snowflake/wanderer-snowflake.yaml b/src/content/docs/filter-wheels/wanderer-astro/wanderer-snowflake/wanderer-snowflake.yaml index 61be312..dbab0d1 100644 --- a/src/content/docs/filter-wheels/wanderer-astro/wanderer-snowflake/wanderer-snowflake.yaml +++ b/src/content/docs/filter-wheels/wanderer-astro/wanderer-snowflake/wanderer-snowflake.yaml @@ -5,5 +5,6 @@ manufacturer_name: Wanderer Astro # Additional Metadata executable: indi_wanderer_snowflake_wheel +platforms: Linux, mac Author: Jérémie Klein (https://github.com/grm) version: 1.0