Farm Control v2.4
Changelog
v2.42026-07-06
  • Tabs are now reorderable + a default tab can be set (⚙ Settings → Tabs) — e.g. open straight to Library during a batch-print day, or Printers to check the farm. Saved per device, works in local mode too
v2.32026-07-06
  • 🎨 Theme picker (header) — 5 themes shared with Batchlog: VDD (default), Control Room, Blueprint, Route Card, Mahjong Parlor; live mini-preview cards, choice saved per device
  • All fonts/colors routed through CSS variables (--font-display/body/mono, --on-accent) so themes restyle everything, including light themes
v2.22026-07-05
  • New Printers tab — live fleet status via Home Assistant (state, job, progress, layers, temps, staleness stamp)
  • New Queue tab — ShipStation orders land automatically via webhook, matched to library files by SKU; unmatched orders get a resolve picker that can save the mapping
  • Send ▸ to printer (⚗️ experimental) — regenerates, stages in Firebase, HA pulls + FTPS-pushes to SD card, starts via bambu_lab.print_project_file; manual confirm always required
  • ⚙ Settings — HA connection, printer registry, SKU map. Setup guide: files\SETUP.md
v2.12026-07-05
  • New Library tab — every generated file can be saved (base .3mf + settings in Firebase) and regenerated on demand; folders, search, sort, move, re-loop, delete
  • Loop start-line boundaries captured on save — groundwork for live "Loop X of N" tracking
  • VDD brand palette + fonts migrated (Batchlog "Farm Control" theme)
  • Library is hosted-only; opening the file locally stays generator-only
v2.02026-07-05
  • Renamed to VDD Farm Control — the hub growing around the FarmLoop looping engine (Phase 1 of the Farm Control build plan)
  • Google sign-in gate when hosted (farmcontrol.vandurdandesigns.com) — opening the file locally still works exactly as before, no sign-in
  • Firebase foundation added (project vdd-farm-control) for the upcoming G-code library, printer status, and ShipStation queue phases
  • New deploy.ps1 — pushes to GitHub → Netlify like Batchlog
v1.62026-07-02
  • Added Bambu H2C support — printer auto-detected from the uploaded file's printer_model comment
  • H2C uses a different algorithm from P1S: one injection point instead of three, different nozzle-load body, bigger bed sweep coordinates (X0–300, Y0–315)
  • H2C auto push-height currently reuses the P1S formula (max Z − 10mm), unverified — a note under the field flags this until confirmed against a taller H2C print
v1.52026-06-30
  • Default push height floor lowered to 1.2 mm (was 2 mm) — tested ideal for current parts
  • Push height slider step refined to 0.1 mm for finer control
v1.42026-06-29
  • Renamed output files to VDD_FL_x{loops}_… — loop count moved up front for at-a-glance scanning
  • Prefix-strip now handles all prior naming styles so re-processing never stacks prefixes
v1.32026-06-29
  • Output files prefixed with VDD_FL_ to distinguish from FarmLoop app exports
v1.22026-06-29
  • Fixed purge-line removal: anchor the nozzle-load search to EXECUTABLE_BLOCK_START so it no longer matches the marker text inside the machine_start_gcode metadata comment
  • Verified output matches real FarmLoop command-for-command
v1.12026-06-29
  • Replace the front-of-bed purge line with FarmLoop's rear nozzle-load + extrude sequence (Injection Point C)
  • Nozzle temperature auto-parsed from the base file
v1.02026-06-26
  • Initial build — reverse-engineered FarmLoop's P1S loop algorithm
  • Drag-drop upload, metadata display, loop count, push height, cooldown settings
  • Auto push height from max Z; generate & download looped .gcode.3mf

Bambu P1S / H2C

Drop your .gcode.3mf file here

Or click to browse — your base G-code file from Bambu Studio

.gcode.3mf  •  Bambu Studio exports only
File Info
Printer
Est. print time
Filament weight
Total layers
Max Z height
Loop Settings
Push heights below 5 mm risk unnecessary nozzle wear or bed contact. If a lower height is needed, reduce gradually and proceed with caution.

⚙ Settings

Tabs (this device)
★ = default tab when the app opens · ▲▼ = nav order. Saved on this device only.
Home Assistant
Printers
Entity prefix = the part after sensor. in HA (e.g. sensor.p1s_left_print_statusp1s_left). Device id: HA → Settings → Devices → printer → copy id from URL.
SKU Map (ShipStation SKU → library file)

▸ Send to Printer

⚗️ Experimental (unverified live). This stages the regenerated file in Firebase, has Home Assistant pull + FTPS-push it to the printer's SD card, then calls bambu_lab.print_project_file. The printer WILL physically start. Make sure the bed is clear.