Skip to content

Commit 3e663b2

Browse files
authored
Update README.md
1 parent adc6e14 commit 3e663b2

File tree

1 file changed

+89
-167
lines changed

1 file changed

+89
-167
lines changed

README.md

Lines changed: 89 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,54 @@
11
<div align="center">
22
<h1>FlashForge WebUI</h1>
3-
<p>Standalone WebUI for FlashForge 3D Printers</p>
43
</div>
54

6-
<p align="center">
5+
<div align="center">
6+
Standalone WebUI for FlashForge 3D Printers
7+
</div>
8+
9+
<div align="center">
710
<img src="https://img.shields.io/badge/Node.js-20%2B-green?style=for-the-badge&logo=node.js&logoColor=white">
811
<img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge">
912
<img src="https://img.shields.io/badge/Platforms-Win%20%7C%20macOS%20%7C%20Linux-blue?style=for-the-badge">
10-
</p>
13+
</div>
1114

1215
<div align="center">
1316
<h2>Overview</h2>
1417
</div>
1518

16-
<div align="center">
17-
1819
FlashForge WebUI is a lightweight, standalone web interface for monitoring and controlling FlashForge 3D printers. Designed as a cross-platform alternative to desktop applications, it runs efficiently on low-spec hardware like the Raspberry Pi, making it perfect for dedicated print servers. It supports simultaneous connections to multiple printers, real-time camera streaming, and integrates seamlessly with Spoolman for filament management.
1920

20-
</div>
21-
2221
<div align="center">
2322
<h2>Core Features</h2>
2423
</div>
2524

2625
<div align="center">
27-
<table>
28-
<tr>
29-
<th>Feature</th>
30-
<th>Description</th>
31-
</tr>
32-
<tr>
33-
<td>Multi-Printer Support</td>
34-
<td>Connect to and manage multiple printers simultaneously with isolated contexts</td>
35-
</tr>
36-
<tr>
37-
<td>Live Monitoring</td>
38-
<td>Real-time tracking of temperatures, print progress, and printer status</td>
39-
</tr>
40-
<tr>
41-
<td>Camera Streaming</td>
42-
<td>Low-latency video monitoring with RTSP and MJPEG support</td>
43-
</tr>
44-
<tr>
45-
<td>Printer Control</td>
46-
<td>Full control over print jobs (pause, resume, stop) and printer settings</td>
47-
</tr>
48-
<tr>
49-
<td>Spoolman Integration</td>
50-
<td>Native integration for filament inventory and usage tracking</td>
51-
</tr>
52-
<tr>
53-
<td>Responsive Dashboard</td>
54-
<td>Customizable grid-based UI that works on desktop, tablet, and mobile</td>
55-
</tr>
56-
<tr>
57-
<td>Cross-Platform</td>
58-
<td>Native binaries for Windows, macOS, and Linux (x64, ARM64, ARMv7)</td>
59-
</tr>
60-
</table>
26+
27+
| Feature | Description |
28+
| --- | --- |
29+
| **Multi-Printer Support** | Connect to and manage multiple printers simultaneously with isolated contexts |
30+
| **Live Monitoring** | Real-time tracking of temperatures, print progress, and printer status |
31+
| **Camera Streaming** | Low-latency video monitoring with RTSP and MJPEG support |
32+
| **Printer Control** | Full control over print jobs (pause, resume, stop) and printer settings |
33+
| **Spoolman Integration** | Native integration for filament inventory and usage tracking |
34+
| **Responsive Dashboard** | Customizable grid-based UI that works on desktop, tablet, and mobile |
35+
| **Cross-Platform** | Native binaries for Windows, macOS, and Linux (x64, ARM64, ARMv7) |
36+
6137
</div>
6238

6339
<div align="center">
6440
<h2>Supported Printers</h2>
41+
<p>FlashForge WebUI supports a wide range of FlashForge printers through its adaptable backend architecture.</p>
6542
</div>
6643

6744
<div align="center">
6845

69-
FlashForge WebUI supports a wide range of FlashForge printers through its adaptable backend architecture.
70-
71-
</div>
46+
| Series | Models | API Type |
47+
| --- | --- | --- |
48+
| **Adventurer 5M** | Adventurer 5M, 5M Pro | New (HTTP API) |
49+
| **AD5X** | AD5X | New (HTTP API) |
50+
| **Legacy** | Older FlashForge Models | Legacy (FlashForgeClient) |
7251

73-
<div align="center">
74-
<table>
75-
<tr>
76-
<th>Series</th>
77-
<th>Models</th>
78-
<th>API Type</th>
79-
</tr>
80-
<tr>
81-
<td>Adventurer 5M</td>
82-
<td>Adventurer 5M, 5M Pro</td>
83-
<td>New (HTTP API)</td>
84-
</tr>
85-
<tr>
86-
<td>AD5X</td>
87-
<td>AD5X</td>
88-
<td>New (HTTP API)</td>
89-
</tr>
90-
<tr>
91-
<td>Legacy</td>
92-
<td>Older FlashForge Models</td>
93-
<td>Legacy (FlashForgeClient)</td>
94-
</tr>
95-
</table>
9652
</div>
9753

9854
<div align="center">
@@ -104,40 +60,31 @@ FlashForge WebUI supports a wide range of FlashForge printers through its adapta
10460
</div>
10561

10662
<div align="center">
107-
<table>
108-
<tr>
109-
<th>Requirement</th>
110-
<th>Details</th>
111-
</tr>
112-
<tr>
113-
<td>Node.js</td>
114-
<td>Version 20.0.0 or higher (for source installation)</td>
115-
</tr>
116-
<tr>
117-
<td>Network</td>
118-
<td>Connection to your printer(s)</td>
119-
</tr>
120-
</table>
121-
</div>
12263

123-
<div align="center">
64+
| Requirement | Details |
65+
| --- | --- |
66+
| **Node.js** | Version 20.0.0 or higher (for source installation) |
67+
| **Network** | Connection to your printer(s) |
12468

125-
**Pre-built Binaries**
69+
</div>
12670

71+
<div align="center">
72+
<h3>Pre-built Binaries</h3>
73+
<p>Download the appropriate binary for your platform from the <a href="https://github.com/Parallel-7/FlashForgeWebUI/releases">Releases</a> page:</p>
12774
</div>
12875

129-
Download the appropriate binary for your platform from the [Releases](https://github.com/Parallel-7/FlashForgeWebUI/releases) page:
76+
<div align="center">
13077

13178
| Platform | Binary | Notes |
132-
|----------|--------|-------|
133-
| Windows x64 | `flashforge-webui-win-x64.exe` | Most Windows PCs |
134-
| macOS x64 | `flashforge-webui-macos-x64` | Intel Macs |
135-
| macOS ARM | `flashforge-webui-macos-arm64` | Apple Silicon (M1/M2/M3) |
136-
| Linux x64 | `flashforge-webui-linux-x64` | Most Linux PCs |
137-
| Linux ARM64 | `flashforge-webui-linux-arm64` | Raspberry Pi 4/5 (64-bit OS) |
138-
| Linux ARMv7 | `flashforge-webui-linux-armv7` | Raspberry Pi 3/4 (32-bit OS) |
79+
| --- | --- | --- |
80+
| **Windows x64** | `flashforge-webui-win-x64.exe` | Most Windows PCs |
81+
| **macOS x64** | `flashforge-webui-macos-x64` | Intel Macs |
82+
| **macOS ARM** | `flashforge-webui-macos-arm64` | Apple Silicon (M1/M2/M3) |
83+
| **Linux x64** | `flashforge-webui-linux-x64` | Most Linux PCs |
84+
| **Linux ARM64** | `flashforge-webui-linux-arm64` | Raspberry Pi 4/5 (64-bit OS) |
85+
| **Linux ARMv7** | `flashforge-webui-linux-armv7` | Raspberry Pi 3/4 (32-bit OS) |
13986

140-
**Raspberry Pi Users:** Use `flashforge-webui-linux-arm64` for 64-bit Raspberry Pi OS, or `flashforge-webui-linux-armv7` for 32-bit.
87+
</div>
14188

14289
```bash
14390
# Make the binary executable (Linux/macOS)
@@ -151,9 +98,7 @@ chmod +x flashforge-webui-linux-arm64
15198
```
15299

153100
<div align="center">
154-
155-
**Running from Source**
156-
101+
<h3>Running from Source</h3>
157102
</div>
158103

159104
```bash
@@ -174,23 +119,26 @@ npm start
174119
npm start -- --last-used
175120
```
176121

177-
**Development Mode:**
122+
<div align="center">
123+
<h3>Development Mode:</h3>
124+
</div>
125+
178126
```bash
179127
# Build and watch for changes with hot reload
180128
npm run dev
181129
```
182130

183131
<div align="center">
184132
<h2>Usage</h2>
133+
<p>After starting the server, open your browser and navigate to:</p>
185134
</div>
186135

187-
After starting the server, open your browser and navigate to:
188-
189136
```
190137
http://localhost:3000
191138
```
192-
193-
Or if accessing from another device on your network:
139+
<div align="center">
140+
<p>Or if accessing from another device on your network:</p>
141+
</div>
194142

195143
```
196144
http://<server-ip>:3000
@@ -202,35 +150,39 @@ http://<server-ip>:3000
202150
<h2>Command Line Options</h2>
203151
</div>
204152

153+
<div align="center">
154+
205155
| Option | Description |
206-
|--------|-------------|
207-
| `--last-used` | Connect to the last used printer on startup |
208-
| `--all-saved-printers` | Connect to all saved printers on startup |
209-
| `--printers="IP:TYPE:CODE,..."` | Connect to specific printers (TYPE: "new" or "legacy") |
210-
| `--no-printers` | Start WebUI only, without connecting to any printer |
211-
| `--webui-port=PORT` | Override the WebUI port (default: 3000) |
212-
| `--webui-password=PASS` | Override the WebUI password |
156+
| --- | --- |
157+
| **--last-used** | Connect to the last used printer on startup |
158+
| **--all-saved-printers** | Connect to all saved printers on startup |
159+
| **--printers="IP:TYPE:CODE,..."** | Connect to specific printers (TYPE: "new" or "legacy") |
160+
| **--no-printers** | Start WebUI only, without connecting to any printer |
161+
| **--webui-port=PORT** | Override the WebUI port (default: 3000) |
162+
| **--webui-password=PASS** | Override the WebUI password |
163+
164+
</div>
213165

214166
<div align="center">
215167
<h2>Configuration</h2>
168+
<p>The application automatically creates a configuration file at data/config.json on first run.</p>
216169
</div>
217170

171+
218172
<div align="center">
219173

220-
The application automatically creates a configuration file at `data/config.json` on first run.
174+
| Setting | Default | Description |
175+
| --- | --- | --- |
176+
| **WebUIEnabled** | `true` | Enable/disable the web interface |
177+
| **WebUIPort** | `3000` | Port for the web server |
178+
| **WebUIPassword** | `changeme` | Login password (change this!) |
179+
| **WebUIPasswordRequired** | `true` | Require password to access |
180+
| **SpoolmanEnabled** | `false` | Enable Spoolman integration |
181+
| **SpoolmanServerUrl** | `""` | Your Spoolman server URL (e.g., `http://192.168.1.100:7912`) |
182+
| **CameraProxyPort** | `8181` | Starting port for camera proxies |
221183

222184
</div>
223185

224-
| Setting | Default | Description |
225-
|---------|---------|-------------|
226-
| `WebUIEnabled` | `true` | Enable/disable the web interface |
227-
| `WebUIPort` | `3000` | Port for the web server |
228-
| `WebUIPassword` | `changeme` | Login password (change this!) |
229-
| `WebUIPasswordRequired` | `true` | Require password to access |
230-
| `SpoolmanEnabled` | `false` | Enable Spoolman integration |
231-
| `SpoolmanServerUrl` | `""` | Your Spoolman server URL (e.g., `http://192.168.1.100:7912`) |
232-
| `CameraProxyPort` | `8181` | Starting port for camera proxies |
233-
234186
<div align="center">
235187
<h2>Building from Source</h2>
236188
</div>
@@ -249,67 +201,37 @@ npm run build:mac-arm # macOS ARM (Apple Silicon)
249201
<h2>Troubleshooting</h2>
250202
</div>
251203

252-
**"Cannot GET /" or blank page when accessing WebUI:**
253-
- If running from source: Make sure you ran `npm run build` before `npm start`
254-
- If using a pre-1.0.2 binary: Update to version 1.0.2 or later (fixes static file serving bug)
255-
256-
**"Permission denied" when running binary:**
257-
```bash
258-
chmod +x flashforge-webui-linux-*
259-
```
260-
261-
**Port already in use:**
262-
- Change the port in `data/config.json` or use `--webui-port=3001`
204+
<div align="center">
263205

264-
**Cannot connect to printer:**
265-
- Ensure your printer is on the same network as the device running WebUI
266-
- Check that the printer's IP address is correct
267-
- For legacy printers, ensure TCP port 8899 is accessible
206+
| Issue | Solution |
207+
| --- | --- |
208+
| **"Cannot GET /" or blank page when accessing WebUI** | If running from source: Make sure you ran `npm run build` before `npm start`<br>If using a pre-1.0.2 binary: Update to version 1.0.2 or later (fixes static file serving bug) |
209+
| **"Permission denied" when running binary** | Run `chmod +x flashforge-webui-linux-*` to make executable |
210+
| **Port already in use** | Change the port in `data/config.json` or use `--webui-port=3001` |
211+
| **Cannot connect to printer** | Ensure your printer is on the same network as the device running WebUI<br>Check that the printer's IP address is correct<br>For legacy printers, ensure TCP port 8899 is accessible |
212+
| **Selecting the correct binary for your platform** | Windows: `flashforge-webui-win-x64.exe`<br>macOS Intel: `flashforge-webui-macos-x64`<br>macOS Apple Silicon: `flashforge-webui-macos-arm64`<br>Linux x64: `flashforge-webui-linux-x64`<br>Raspberry Pi (64-bit OS): `flashforge-webui-linux-arm64`<br>Raspberry Pi (32-bit OS): `flashforge-webui-linux-armv7`<br>Check your architecture with `uname -m` (x86_64 = x64, aarch64 = ARM64, armv7l = ARMv7) |
268213

269-
**Selecting the correct binary for your platform:**
270-
- Windows: `flashforge-webui-win-x64.exe`
271-
- macOS Intel: `flashforge-webui-macos-x64`
272-
- macOS Apple Silicon: `flashforge-webui-macos-arm64`
273-
- Linux x64: `flashforge-webui-linux-x64`
274-
- Raspberry Pi (64-bit OS): `flashforge-webui-linux-arm64`
275-
- Raspberry Pi (32-bit OS): `flashforge-webui-linux-armv7`
276-
- Check your architecture with `uname -m` (x86_64 = x64, aarch64 = ARM64, armv7l = ARMv7)
214+
</div>
277215

278216
<div align="center">
279217
<h2>License</h2>
280218
</div>
281219

282220
<div align="center">
283-
284-
MIT License
285-
221+
MIT License
286222
</div>
287223

288224
<div align="center">
289225
<h2>Acknowledgments</h2>
290226
</div>
291227

292228
<div align="center">
293-
<table>
294-
<tr>
295-
<th>Project</th>
296-
<th>Role</th>
297-
</tr>
298-
<tr>
299-
<td><a href="https://github.com/GhostTypes/ff-5mp-api-ts">ff-5mp-api-ts</a></td>
300-
<td>FlashForge API Client Library</td>
301-
</tr>
302-
<tr>
303-
<td><a href="https://github.com/Parallel-7/slicer-meta">slicer-meta</a></td>
304-
<td>Printer Metadata & Model Utilities</td>
305-
</tr>
306-
<tr>
307-
<td>FlashForgeUI-Electron</td>
308-
<td>Original Desktop Application</td>
309-
</tr>
310-
<tr>
311-
<td>Spoolman</td>
312-
<td>Filament Management</td>
313-
</tr>
314-
</table>
229+
230+
| Project | Role |
231+
| --- | --- |
232+
| **[ff-5mp-api-ts](https://github.com/GhostTypes/ff-5mp-api-ts)** | FlashForge API Client Library |
233+
| **[slicer-meta](https://github.com/Parallel-7/slicer-meta)** | Printer Metadata & Model Utilities |
234+
| **[FlashForgeUI-Electron](https://github.com/Parallel-7/FlashForgeUI-Electron)** | Original Desktop Application |
235+
| [**Spoolman**](https://github.com/Donkie/Spoolman) | Filament Management |
236+
315237
</div>

0 commit comments

Comments
 (0)