[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81462":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":14,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":15,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":18,"hasPages":16,"topics":19,"createdAt":8,"pushedAt":8,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":13,"starSnapshotCount":13,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},81462,"BambooMobile","joel-sgc\u002FBambooMobile","joel-sgc",null,"TypeScript",32,7,31,0,1,36.81,false,"main",true,[],"2026-06-12 04:01:33","# BambooMobile\n\nA mobile-first companion app for Bambu Lab printers that works entirely over your local network! **no Bambu cloud, no account required.**\n\nBuilt with [Tauri v2](https:\u002F\u002Ftauri.app\u002F) (Rust backend) + React\u002FTypeScript frontend, targeting Android.\n\n---\n\n## ⚠️ Disclaimer\n\nYes, this was vibe coded. Mostly the backend logic, with Claude. If you don't like it you can either fork it and rewrite it yourself or leave the repo. I don't know Rust and I don't even want to try and understand how BambuLab printers communicate commands. There are probably some other features or general bug fixes in here that I forgot to document. If you want to whine about it, go do it somewhere I can't hear you please.\n\nThe app works on my P1S, if someone else can test it on their printer that'd be great!\n\n---\n\n## Screenshots\n\n|                   Home                   |                    File Manager                    |                  Timelapses                   |                   Printers                   |\n| :--------------------------------------: | :------------------------------------------------: | :-------------------------------------------: | :------------------------------------------: |\n| \u003Cimg src=\"assets\u002FHome.png\" width=\"220\"\u002F> | \u003Cimg src=\"assets\u002FFile%20Manager.png\" width=\"220\"\u002F> | \u003Cimg src=\"assets\u002FTimelapse.png\" width=\"220\"\u002F> | \u003Cimg src=\"assets\u002FPrinters.png\" width=\"220\"\u002F> |\n\n---\n\n## Why This Exists (The Right to Repair Angle)\n\nBambu Lab makes excellent printers. They also make it increasingly difficult to use those printers without going through their cloud infrastructure. The official app requires a Bambu account. Their cloud goes down sometimes. Their API terms can change. And if you're in a region with poor connectivity, or you simply don't want your print data phoning home, you're stuck with whatever the official tooling allows.\n\nThis is a right to repair problem. When you buy a $700 printer, you should be able to operate it without a third party's servers being in the way. The printer is on your local network. The MQTT broker is on the printer. The camera stream is on the printer. None of this requires the internet, but Bambu's official apps route through their cloud anyway.\n\nBambooMobile connects directly to your printer over LAN using the same open protocols that tools like [OrcaSlicer](https:\u002F\u002Fgithub.com\u002FSoftFever\u002FOrcaSlicer) and [LanBu](https:\u002F\u002Fgithub.com\u002Fnicholasgasior\u002Flanbu) use. Everything stays on your network. Your printer data stays yours.\n\nAs manufacturers increasingly lock down hardware through software and cloud dependencies, community-built alternatives become more important, not just as conveniences, but as a matter of ownership. You paid for the hardware. You should be able to use it on your own terms, indefinitely, regardless of what happens to any company's servers or business model.\n\nProjects like [OpenBambuAPI](https:\u002F\u002Fgithub.com\u002FDoridian\u002FOpenBambuAPI) document these protocols so that anyone can build alternatives. That work matters. This app is built on top of it.\n\n---\n\n## Features\n\n- 🔄 **Multiple Printer Support** — switch between printers, automatic local network name detection, and per-printer credential storage.\n- 📷 **Live camera feed** — MJPG over TLS on port 6000, pure Rust implementation.\n- 📊 **Print status & Controls** — view progress %, layer counter, remaining time, and start (pre-uploaded gcode), pause, resume, or stop prints.\n- 🗂️ **File Manager & Timelapses** — FTP (port 990) integration to view, download, delete files, and view model previews.\n- 🔔 **App Notifications** — push alerts for print completion and failures.\n- 🌡️ **Temperatures** — nozzle and bed with targets, now managed via dedicated UI modals.\n- 💡 **Chamber light** toggle (works regardless of whether the printer is running).\n- 🎛️ **Print speed** — dedicated dialog for Silent \u002F Standard \u002F Sport \u002F Ludicrous modes.\n- 📱 **Refined UI\u002FUX** — pull-to-refresh functionality, improved navigation, intuitive familiar layout, and respects Android safe area insets for edge-to-edge display.\n- 🧵 **AMS filament info** — per-unit humidity grade (A–E scale), per-slot type and colour.\n- 🪡 **External spool** display.\n- 🕹️ **Manual jog controls** — OrcaSlicer-style XY wheel, extruder column, Z\u002Fbed row with ±1\u002F±10 mm steps and a home button.\n- 🛠️ **MQTT Debug Page** — built-in view for troubleshooting raw telemetry and error handling.\n- 💾 **Persistent credentials** — stored in app data via `tauri-plugin-store`, not in browser storage.\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- [Rust](https:\u002F\u002Frustup.rs\u002F) + Android NDK (for Android builds)\n- [Node.js](https:\u002F\u002Fnodejs.org\u002F) + [pnpm](https:\u002F\u002Fpnpm.io\u002F)\n- Tauri CLI v2: `pnpm add -g @tauri-apps\u002Fcli`\n\n### Development (desktop)\n\n```bash\npnpm install\npnpm tauri dev\n```\n\n### Android build\n\n```bash\npnpm tauri android build\n```\n\nYou'll need your printer's **IP address**, **access code** (touchscreen → Settings → WLAN), and **serial number**. The app asks for these on first launch and remembers them.\n\n---\n\n## Roadmap \u002F TODO\n\n- [x] **Multiple printer support** — switch between printers, per-printer credential storage, printer picker on launch\n- [x] **Print file management over FTP (port 990)**\n- [x] **Push notifications for print completion and failures**\n- [ ] **MakerWorld-equivalent integration** — some kind of browse\u002Fdownload flow for print files without going through the official app. Not exactly sure what shape this takes yet, but it's on the list. We'll see what's possible.\n- [ ] Fan speed control\n- [ ] AMS filament remaining percentage (when reported by firmware)\n\n---\n\n## Protocol Notes\n\nFor anyone building on top of this:\n\n- **Camera**: TLS on port 6000. Send an 80-byte auth packet (`0x40` LE size, `0x3000` LE type, `\"bblp\"` at offset 16, access code at offset 48), then read 16-byte frame headers followed by raw JPEG data.\n- **MQTT**: TLS on port 8883, credentials `bblp` \u002F `\u003Caccess_code>`. Subscribe to `device\u002F\u003Cserial>\u002Freport`, publish to `device\u002F\u003Cserial>\u002Frequest`.\n- **TLS**: Bambu printers use self-signed certificates — skip verification.\n- Full protocol documentation: [OpenBambuAPI](https:\u002F\u002Fgithub.com\u002FDoridian\u002FOpenBambuAPI)\n\n---\n\n## License\n\nDo whatever you want with it, but if you fork it and change it, your version has to be open source too. Licensed under the **GNU Affero General Public License v3 (AGPL-3.0)**.\n","BambooMobile 是一款专为 Bambu Lab 3D 打印机设计的移动优先伴侣应用，能够在本地网络环境下运行，无需依赖 Bambu 云服务或账户。该应用采用 Tauri v2（Rust 后端）与 React\u002FTypeScript 前端技术构建，主要针对 Android 平台开发。其核心功能包括文件管理、时间推移摄影和打印机控制等，并且所有操作均在用户的局域网内完成，确保数据隐私和安全。适用于需要独立于制造商云端服务之外进行打印作业的用户场景，尤其适合对隐私保护有较高要求或者网络连接条件不佳的环境。",2,"2026-06-11 04:05:09","CREATED_QUERY"]