--- title: Scanning and browsers section: apps order: 3 summary: USB scanners, the barcode formats ThreadCount reads, which browsers can scan with the camera, the Android scanner, and what happens with a code it doesn't know. role: Admin or Issuer keywords: scan, scanner, barcode, usb, camera, chrome, edge, safari, firefox, iphone, ean, upc, code 128, unknown barcode, bind, label, print --- ThreadCount reads a barcode in one of three ways: a USB scanner typing into a box, the camera in a supported browser, or the scanner built into the Android counter app. All three give the same result, and wherever you can scan, you can also type the code. ## USB scanners A USB scanner that types the code and then presses Enter works with any browser. These desktop boxes accept one: | Screen | Box | |---|---| | `Stock › Count` | `Scan barcode to count +1, then Enter` | | `Counter` | `Scan barcode, then Enter`, under `2 · Scan items` | | `Stock › On hand › Scan to add` | `Scan with a USB scanner, or type the code and press Enter` | | A garment's `Scan sizes` | The prompt names the size to scan next | `Scan to add` and `Scan sizes` bind codes to the catalogue; the `Scan to add` button is shown to Admins only. Click into the box first. See [Keyboard and scanner](/docs/reference/keyboard-and-scanner). ## Formats it reads Camera scanning, in the browser and in the Android app, reads these formats only: - EAN-13 and EAN-8 - UPC-A and UPC-E - Code 128, Code 39 and Code 93 ITF and Codabar are left out because they carry no check digit, so a partial read can pass as a different valid code. No 2D codes are read. A USB scanner or a typed code isn't limited to that list, because the box just receives characters. In `Scan to add`, a 13-, 12-, 8- or 14-digit code has its check digit tested. If it fails, you see `check digit doesn't match — the scan may have mis-read`. ## Camera scanning in a browser In a browser, the camera reads barcodes with the browser's built-in barcode detector. | Browser | Camera scanning | |---|---| | Chrome | Yes | | Edge | Yes | | Safari on iPhone or iPad | No | | Firefox | No | Where the camera opens but the browser can't read barcodes, the screen says `Live reading isn't supported here — type the code instead.` Where the browser has no camera access at all, it says `This browser has no camera access — type the code instead.` On an iPhone, type the code or use a USB scanner. ## The Android scanner Inside the **ThreadCount** Android app, the phone's own scanner reads the code instead of the browser's detector. If the app can't load that scanner, it uses the browser detector instead. When counting a shelf, scanning stays on until you press `Stop scanning`. The same code seen again within 0.9 seconds is taken as the same garment still in view, not a second one. `Beep and buzz on a scan` in `More › Settings` turns the sound and vibration on or off for that phone. The ThreadCount Staff app has no scanner. ## Codes ThreadCount doesn't know A code is known once it is bound to one size of one garment. What happens with an unknown code depends on the screen: - **Counting a shelf:** `isn't a garment ThreadCount knows. Bind it to a size first`. A known code from another shelf names that shelf instead. - **Issuing:** `isn't a garment ThreadCount knows.` Nothing is added. - **Returns:** the code has to match something the person is holding. - **Search:** the code is put in the search box. - **`Scan to add`:** you can start a new product from the code, or attach it to a size you already have. With `Settings › Data` product lookup turned on, `Scan to add` first asks a public barcode database for a product name. With it off, nothing leaves the server. A code can be on one size only. Binding a code that is already on another garment is refused unless you choose to move it. See [Barcodes](/docs/stock/barcodes). ## Printing ThreadCount barcodes For garments that arrived without a barcode, `Generate barcodes` on the garment's page under `Stock` gives each size without a code one of ThreadCount's own. These are EAN-13 codes starting `29`, a prefix set aside for use inside one business, with a real check digit. A size that already has a supplier's code keeps it. `Print labels` prints an A4 sheet of 6 labels at a time, one per garment on hand, for each size that has a code. A 13-digit code with a valid check digit prints as EAN-13, and any other code prints as Code 128. `Reprint a label` in the counter app prints 1 to 24 copies of one size's label. It only lists sizes with a barcode bound to them. It prints from a phone browser. Inside the Android app the button reads `Print it on the desktop`, because that app can't print. > **Careful** A garment without a readable barcode drops out of every scanned count. Reprint worn labels before the next stocktake.