Skip to content

Hobbs and tacho photos

On the Log Flight screen, both the Start and End meter fields have a camera button next to them. Tap it and take a photo of the Hobbs or tacho meter (on the web, choose a photo file). The field shows Reading… while the photo is read, and the number is filled in when it is read with confidence; otherwise the field is left for you to type. The End photo is kept as evidence (see below). Reading it is a convenience, and anything you type wins.

The End photo is persisted with the log as evidence. The Start photo is a workflow aid: it is held in memory during the log entry to help you double-check your reading, but it is not saved against the log.

  • The pilot logging the flight uses the camera button.
  • The pilot (as uploader) can always see the End photo.
  • Admins can always see the End photo.
  • Other members can see the End photo only if the syndicate’s photo-sharing setting is on. See Usage photo privacy.
  • Log Flight screen: camera buttons next to both Start and End meter fields.
  • Booking detail: usage-log entries show the End-photo thumbnail when the current member is allowed to see it.
  • Asset Usage history: same gating as the booking detail.
Field Type Required Notes
Start meter photo JPEG / PNG / WebP No Workflow aid, held in memory during log entry, not persisted. Fills the Start field when it is read with confidence.
End meter photo JPEG / PNG / WebP No Persisted with the log. Fills the End field when it is read with confidence.

The first time you photograph a meter while online, the app asks Send meter photos to AI?, with Allow and Don’t allow and a link to the Privacy Policy.

  • Allow sends this photo, and later ones, to be read as described below.
  • Don’t allow sends nothing to those services. The photo is still attached and you can type the figure. An iPhone can still read the photo on the device, which sends nothing anywhere.
  • Closing the question without answering sends nothing, and the next photo asks again.

Your answer is kept with the time you gave it and the wording you saw. Change it at any time with Send meter photos to AI under Preferences in Settings. If you allowed it and the question’s wording changes in a way that matters, the app asks again before sending more photos. A refusal stays in place. The server checks the permission as well, so a photo cannot reach the AI services without it.

Typing a meter reading never needs any of this.

Online, on iPhone, Android and the web alike, and only if you have allowed it (see Your permission), the photo is sent to Syndik8’s server, which has it read by two separate AI vision models, from Google and OpenAI, through Cloudflare’s AI Gateway. A number is filled in only when both models read the same figure and it fits where the meter should be: a start near where the last flight ended, or an end not far past the start. If the models disagree, the figure doesn’t fit, or the photo can’t be read, nothing is filled in. With no figure to check a reading against (no start reading yet), the server is not asked. Each member can have up to 20 photos read this way a day; after that an iPhone reads the photo on the device instead (see below), and on Android and the web the photo is still attached but not read, so type the figure. Only JPEG photos, which is what the camera takes, are sent to be read.

Offline, when you have not allowed the AI services, when the server’s reader can’t be reached, once the day’s photos have been read, or, on iPhone, when the server hasn’t answered within a few seconds:

  • iOS: the photo is read on the device with Apple’s built-in text recognition, and never leaves the phone for that. No third-party SDK is shipped.
  • Android: the photo is attached as evidence, but no number is read. Type the meter value.
  • Web: the photo is attached, but no number is read. Type the meter value.

Meters that don’t count hours, such as a vehicle’s odometer, are never read either way. The photo is still attached.

The reading fills a field that bills members, so Syndik8 fills it only when it is sure, and leaves it empty otherwise. A tacho face is covered in other numbers (the RPM dial’s markings, placards, instrument serials), and on-device recognition often misses the counter’s drums altogether, so on the device a reading is accepted only when:

  • One recognised piece of text holds the whole counter: four whole-hour digits and one or two decimal digits, as 2203.5, 2203.45, or the same digits run together (22035 reads as 2203.5, 220345 as 2203.45, because the decimal drums’ colour change is invisible to text recognition).
  • Nothing is touching it but spaces. Digits joined to letters, signs or other punctuation, as in a serial number like SN12345, are part of something else.
  • It is the only such reading, or, when the previous reading is known, the only one at or above it. A meter only counts up, so anything below the previous reading is refused.
  • On the End meter, it is no more than the booking’s length above the start, plus a quarter for a tacho running fast and an hour for running over. The Start meter has no such limit beyond 500 hours, because other members’ flights may have happened since the last log.

Syndik8 never builds a reading from several pieces of text, never completes a partial counter from the previous reading, and never drops or moves a digit to make a number fit. If no reading meets every rule, the field is left for you to type, and the photo is kept either way.

  • Anything you type wins. If you tap the field (even one you are already typing in), type in it, or press the minus or plus under End while the photo is being read, the reading is dropped. A field that already holds a reading you typed, brought back from a draft, or recorded on the flight you are editing is left alone; only an empty field, the figure the app filled in for you, or an earlier photo’s reading is replaced.
  • You can always override the filled-in number. The field remains editable. Typing over it is taken as your answer: there is no second check and no warning that the photo said something else.
  • A newer photo replaces the earlier read. Retake the photo and only the newest one’s reading is used. If the newest can’t be read, the field goes back to the figure the app had filled in, so a reading of a photo you replaced never stays.
  • Reading is best-effort, not required. If the image is unclear, the needle or glare covers the drums, no reading comes back within about five seconds, or no number meets the rules above, the field is left as-is with no message and you type the number manually.
  • You can save the log without using the camera at all. Typing the meter value directly is the manual happy path. Photos are never required by the system; individual syndicates may ask for them as a matter of policy but the app does not enforce that.
  • Private storage. End-meter photos live in a private bucket. The app generates a signed URL (15-minute validity) when a viewer is allowed to see the image, and the storage server refuses one to anybody who is not. Direct links cannot be shared; the URL expires. Deleting the log, or replacing its photo, removes the old photo from storage.
  • Accepted formats and size. JPEG, PNG, and WebP are accepted, and that list is enforced by the storage bucket itself, not only by the app. The meter photo is captured at up to 1280×1280 at 85% JPEG quality and used as-is for reading the number and for the stored evidence copy (there is no separate downscale step). The 10 MB ceiling is checked by the app before it uploads; the bucket sets no size limit of its own, so the only ceiling behind it is the project-wide one.

On iOS and Android, the flight saves first and the end-meter photo is stored on this device for upload when connectivity returns. If the device cannot store the photo, the form completes with a message saying that the flight was saved but the photo was not. Edit that existing flight to attach the photo again; do not log the flight a second time. The failed photo is not queued for upload. Closing the form while a flight save is in progress does not cancel the write. If it succeeds, the saved draft is cleared and the submitted attachments and defects continue to save while the app remains open. Check the existing flight before starting another log.

On web, the photo must upload before the flight can save.