← Back to projects
Lab Automated Weighing App icon

Lab Automated Weighing App

What this project does

Weighing lab mice is mind-numbing work: put a mouse on the scale, wait for the reading to settle, write it down, swap in the next mouse, repeat all afternoon. The Lab Automated Weighing App (codename MouseVision Edge) automates that whole step — park a phone next to the scale, readings flow into the app by themselves, and when you're done you just export the data. All that's left for the human is catching mice.

History: from pure vision to a Bluetooth scale

The original design was pure computer vision: point the phone camera at the scale's LCD display, send photos or video to a backend, and recognize the digits with a model. It sounded ideal — works with any scale, zero hardware modification. In practice it hit two walls:

  1. Backend recognition was too slow. Weighing is a continuous process and the stable-reading window is short; any latency in the recognition pipeline means lost data.
  2. No usable model. LCD seven-segment digits vary wildly under different lighting, angles, and glare. With the data and compute available, a reliably accurate recognition model never materialized.

So the architecture is now: a Bluetooth scale + video recording + a server-side model backend. Readings come straight from the scale over Bluetooth (broadcast listening only — no pairing, no connection), the weighing session is recorded on video for the record, and anything that needs a model lives on the network backend. The vision code wasn't thrown away; it's kept on the server side and might still be useful someday.

Public version download

A public build (offline / local-only) is now available: v0.3.4, Android 8.0+. All data stays on the phone — no server required, works out of the box.

Supported Bluetooth scales

Currently supported: the K797 series Bluetooth scales. The app only listens to the scale's BLE broadcast packets to get readings — no pairing and no GATT connection needed. Scale models are driven by a config file (scale_profiles.json), so in theory adding a new model needs no code changes. If you own a different Bluetooth scale and want to help test, please open an issue on GitHub.

How to use it

  1. Open the app;
  2. Power on the scale — the app discovers it automatically by listening to its broadcasts;
  3. Tap to start recording (the weighing session is captured on video);
  4. Place a mouse on the scale — once the reading stabilizes, the weight is logged automatically;
  5. When done, export your data as CSV / JSON.

Comments

Leave a comment (email only, never shown)

No comments yet.

← Back to projects