Ink remaining
Current cartridge level (latest snapshot from the printer).
Where the ink went
Total ml consumed across all tanks, by cause. Initial priming is the one-time fill of the ink lines at setup (see Ink usage → Setup ink priming).
Lifetime counters
Reported by the printer (seconds unless noted).
Recent activity
Last 12 non-routine events.
Ink per print job
ml used per cartridge while printing, as recorded by the printer (includes the periodic in-print flash spits; the standard head clean some jobs start with is counted separately).
Ink vs print area
Total ml per job against printed area (cm²). Bubble size = layer count.
Layer configurations
Layer stacks used, counted across jobs.
All print jobs
Click a row for details.Ink level over time
Remaining ml per cartridge. Shaded bands are print jobs.
When cartridges reach 20%
How this is worked out
- Active days: calendar days (your local time) with at least one print job. The forecast uses the 3 most recent ones, or fewer if the logs don't have 3 yet.
- Use per active day: all the ink the printer recorded from each cartridge on those days, divided by the number of days. The one-time setup priming and setup test prints are left out.
- Maintenance is included on purpose. When a cartridge reaches 20% the printer forces itself into hibernation, so what matters is everything that drains the cartridge: head cleans, deep cleans, switching a head between ink and moisturizing fluid, and scheduled cleans, as well as printing. On some printers maintenance uses far more ink than printing does, which is why these figures can be much higher than the Ink per print job chart, which shows printing only.
- Cleans count against every cartridge on that head, so a cartridge you haven't printed with (for example the fluorescent inks) still shows some use.
- Days without printing are skipped, so they don't dilute the average. Cleans on those days aren't counted either, though in these logs ink use on idle days has been close to zero.
- Target: 20% of the cartridge's full capacity, starting from the latest level the printer logged.
- Printing days to 20% = (remaining − 20% of full) ÷ use per active day. The date assumes you print every day from the last reading, so it's the earliest likely date. Printing less often pushes it later.
- Ink levels are the printer's own calculation (drops fired plus fixed amounts for cleans), not a physical measurement. With only a few active days the forecast is rough and will settle as more logs are added.
Consumption by tank and cause
ml used by printing vs maintenance.
Daily consumption
ml per day (your local time), all tanks, by cause.
Setup ink priming
The first fill at setup fills each ink line before anything prints. The line capacity is the amount the printer logged for filling that line; the rest of each cartridge's setup drop is the printer's fixed allowance for the purge cycles. Both are the printer's own figures, so ink drawn off by syringe during setup isn't counted.
The Rigid White line is a circulation loop, which is why it's so much larger than the others: about 16.6 ml in the supply line, 20 ml in the filter and 10 ml in the return line.
Planned vs measured ink
xTool Studio's pre-print estimate (computeInkVolume, picolitres → ml) vs the printer's measured drop. Only jobs sent from the computer whose logs are included.
Cartridges
From the printer's inkConsumption.json. The first serial in each slot is the installed cartridge.
Timeline
Each row is an event type; bars show duration where the printer logged start and finish.
Maintenance summary
Power & sleep
Head idle timers Preliminary · to be confirmed
Each print head's Idle timer counts the time the printer isn't working, including sleep, since that head's last standard clean. A 7-day (604,800 s) limit is assumed to trigger moisturizing; that limit doesn't appear in the logs. The estimate assumes the printer stays idle the same share of the time as in the last 48 hours of the logs.
How the estimate is worked out
- The 7-day limit is an assumption. No log or setting shows 604,800 s; the card uses it because a 7-day moisturizing cycle is expected for the Omni. If a moisturizing event shows up in a later export, compare its time with this estimate.
- Rate: how much the Idle timer grew during the last 48 hours of logs, divided by 48 hours (e.g. 93% means the printer was idle 93% of that time). The time left to reach 7 days is divided by that share. More printing than in those 48 hours pushes the date later; less brings it closer.
- Snapshots: the printer only logs the timer when it changes state (a print starting, going to sleep, waking). The estimate starts from the last logged value, so it stays valid after the export even though the timer has kept counting.
- Resets aren't predicted. The date assumes that head gets no standard clean before then. A standard clean resets the timer to zero (see below), and the estimate starts over from the next export.
- Asleep counts as idle. Sleep and low power add to the timer; printing, calibration, height measuring and cleaning don't.
What resets the timers
All head counters and firmware thresholds
Data sources
Files found in the bundle
How things are derived
- Events come from the printer's journal
mnt/config/record/record.log: prints, cleans, white-ink stir/circulation, sleep / low-power, boots, calibration, alarms. - Ink levels come from
ink_tank_statusreports in the printer's app-controller logs, written after every clean and print. Usage between two snapshots is assigned to a standalone clean in that window if there is one, otherwise to the job running, otherwise to the latest maintenance event. - Job names, passes, time estimates come from task-history replies in the xTool Studio logs.
- Layer stacks, size, thickness, DPI and planned ink come from the xTool Studio slicer and print parameters logged just before each job was sent. Jobs sent from a different computer (or before these desktop logs start) have no layer detail.
- Per-layer inks (white, flexible white, varnish or colour) come from
[GenPd]lines in xTool Studio's slicer loglogs/<date>/algo-server/server.log, matched to jobs by task ID. That file lives under the day Studio was started and keeps growing on later days. Without it the layer stack falls back to the slicer settings, which call varnish layers "white"; those jobs are marked ⚠. - Tank names are the ones the printer reports for each cartridge. Head 1 holds UV Cyan, Magenta, Yellow, Black, Varnish and White. On a Dual-UV, head 2 holds Fluorescent Yellow, Fluorescent Red, Flexible White and Rigid White; on a UV/DT it holds DTG Cyan, Magenta, Yellow, Black and White. The model is worked out from the cartridges on head 2. Studio's ink channels map as C→Cyan, M→Magenta, Y→Yellow, K→Black, V→Varnish, W→White, HW→Rigid White and SW→Flexible White, and DTG_C/M/Y/K/W→the DTG cartridges (HW checked against measured drops).
- Clock: printer timestamps are converted using the detected offset shown above, and everything is shown in this browser's local time.
October 18, 2026 Omni O1 UV/DT support
- UV/DT printers are now detected and supported, as well as Dual-UV. The model is worked out from the cartridges on the second head and shown at the top of the report. DTG Cyan, Magenta, Yellow, Black and White have their own names and colours, and the UV inks are labelled "UV" to tell them apart.
- Logs from Windows computers: per-layer inks are now read from xTool Studio logs made on Windows, and DTF jobs show their colour and white layers.
- Job types: the jobs table marks each job as UV, DTF or Rotary.
- New events: head switches between ink and moisturizing fluid, deep cleans, the scheduled cleans the printer runs while in low power, ink and moisturizing-fluid cartridge changes, rotary attachment connections, alarm clearing and firmware upgrades are all named in the event list, the timeline and the ink-use breakdown.
- Ink per print job now only charts jobs inside the period the printer's ink readings cover, and says how many earlier jobs have no ink data. The jobs table shows "—" for those jobs.
- 20% forecast splits each cartridge's daily use into printing and maintenance. Maintenance stays in the total because the printer hibernates when a cartridge reaches 20%.
- Fixed: ink used after a clean was sometimes labelled "Clean: ?".
October 18, 2026 Update
- Head idle timers (Maintenance & events, marked preliminary): each print head's Idle timer over time, with an estimate of when it reaches 7 days based on how much of the last 48 hours the printer sat idle. Includes notes on the assumptions, what has been seen to reset the timers, a list of every reset in your logs with the clean before it, and all of the printer's head counters and clean thresholds.
- Cartridge 20% forecast: a new Overview tile shows how many days of printing until the first cartridge reaches 20%. The Ink usage tab has the forecast for every cartridge, based on average use over your 3 most recent printing days, with an explanation of the calculation.
- Setup ink priming (Ink usage): the capacity of each ink line as logged by the printer, the ink recorded at setup and the purge allowance, plus a note on the Rigid White circulation loop.
- Ink remaining now shows a percentage next to the ml figures.
- This change log.
October 17, 2026 Initial release
- Runs entirely in the browser: drop in xTool Studio log exports and zips of Studio's
logsfolder. Nothing is uploaded, and overlapping exports are merged with duplicates removed. - Overview: totals, ink remaining per cartridge with the printer's own cartridge names, where the ink went, lifetime counters and recent activity.
- Print jobs: ink per job by cartridge, ink against print area, layer stacks with white, varnish and colour layers told apart, and per-job details including settings and xTool Studio's ink estimate.
- Ink usage: cartridge levels over time, use by cause and by day, estimated vs recorded ink, and cartridge serial numbers.
- Maintenance & events: a timeline and searchable list of prints, cleans, white-ink stirring, sleep and wake-ups, boots and alarms.
- CoolBeans Design branding, light and dark themes, and a Python command-line version.