discstation 0.1.23 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,12 +9,37 @@ use every mode.
9
9
  ## Hardware
10
10
 
11
11
  - **Brain:** Raspberry Pi 4/5 (or any Linux box)
12
- - **Remote (optional):** ESP32-C6 with SSD1306 OLED, rotary encoder, and
13
- buttons — or none at all; the web UI's on-screen remote covers the same
14
- controls when no ESP32 is detected, and steps aside (greyed out,
15
- auto-collapsing) the moment one is plugged in
12
+ - **Remote (optional):** ESP32 DevKit or ESP32-C6 with an SSD1306 OLED, 3
13
+ buttons, and a volume pot — connected by **USB serial** or over **Wi-Fi**
14
+ (see below) — or none at all; the web UI / mobile app's on-screen remote
15
+ covers the same controls when no ESP32 is detected, and steps aside
16
+ (greyed out, auto-collapsing) the moment one appears.
16
17
  - **Drive:** ATAPI DVD writer (e.g. iHAS124) over USB
17
18
 
19
+ ### Wi-Fi remote (optional)
20
+
21
+ The firmware also serves the same line protocol over TCP 2323, so the
22
+ remote can talk to the host over Wi-Fi instead of a USB cable.
23
+
24
+ - **Provisioning (no code edit):** on first boot with no stored credentials
25
+ the remote starts an open `DiscStation-XXXX` access point; join it from a
26
+ phone, the captive portal (or `http://192.168.4.1`) lists nearby networks
27
+ — pick yours, enter the password, done. It reconnects on every boot after
28
+ that. Change networks later: **hold SELECT for 10 s** on the home screen
29
+ to wipe the credentials and reopen the portal.
30
+ Power users can instead `cp arduino/<board>/secrets.h.example secrets.h`
31
+ and set `WIFI_SSID` / `WIFI_PASS` at build time (git-ignored).
32
+ - **Host side:** nothing to configure. With no USB cable present the host
33
+ finds the remote by mDNS automatically (`discstation-xxxx.local`). Set
34
+ `DISC_REMOTE_HOST` in `discstation.env` to an explicit IP only if mDNS is
35
+ blocked on your network, or `off` to never look. A USB cable always wins
36
+ when both are present.
37
+ - **Trust model:** TCP 2323 is unauthenticated on the LAN, same as the USB
38
+ link and the LAN web UI — fine for a home appliance. During the ~30 s of
39
+ portal setup the password crosses an open AP; the ESP32 is 2.4 GHz only
40
+ (a "connected to the router but no data" symptom usually means a
41
+ 5 GHz-only / band-steering network or a wrong password).
42
+
18
43
  ## Features
19
44
 
20
45
  | Mode | Description |
@@ -58,10 +83,12 @@ discstation-setup # dispatches to the installer for your OS, then opens
58
83
 
59
84
  The host runs as a background service; the UI is the built-in web app at
60
85
  `http://localhost:8081`. `discstation-setup` opens it when it finishes, and the
61
- `discstation` command re-opens it any time. It's a PWA — use your browser's
62
- **Install DiscStation** (or the in-page **INSTALL APP** button on Chromium) to
63
- get a standalone app window with a dock/taskbar icon on macOS, Linux, and
64
- Windows.
86
+ `discstation` command re-opens it any time — both also print the LAN address
87
+ (e.g. `Also reachable at http://192.168.1.50:8081/ ...`) so you know what to
88
+ open from a phone or another computer, or enter into the mobile app. It's a
89
+ PWA — use your browser's **Install DiscStation** (or the in-page
90
+ **INSTALL APP** button on Chromium) to get a standalone app window with a
91
+ dock/taskbar icon on macOS, Linux, and Windows.
65
92
 
66
93
  `discstation-setup --help` lists the forwarded env vars. From a git clone,
67
94
  `npm run setup` does the same thing.
@@ -123,6 +150,14 @@ self-signed cert. On startup the host prints the LAN URL to open
123
150
  with no ESP32 attached; greys out and auto-collapses the instant a
124
151
  physical remote is detected, so the two never fight for control.
125
152
 
153
+ ## Mobile App
154
+
155
+ The `mobile/` Expo app (enter the host's LAN address in its settings screen)
156
+ has the same on-screen remote as the web UI — mode buttons, EJECT/CLOSE,
157
+ disc status, and playback transport, tapped from the "REMOTE" tag next to
158
+ the wordmark. Same auto-collapse behavior when a physical ESP32 shows up,
159
+ same underlying `/remote/button` protocol.
160
+
126
161
  ## Disc Support
127
162
 
128
163
  - DVD-R, DVD+R (single and dual-layer)