Trust is earned, not given

A different perspective

2023-03-12 · Projects

A cross-platform barcode scanner app with Ionic, Angular and TypeScript

Hardware and web development meet in this project: BarcodeScannerTypeScript is a mobile app — Ionic 7, Angular 17, Capacitor 6, TypeScript — that talks to a Socket Mobile-style BLE barcode/RFID scanner (a D600-class device) over Bluetooth Low Energy, and gives you a complete scanner-control application: scanning, configuration, firmware info, multi-configuration file push, and diagnostics.

The stack, layer by layer

Screens and what they teach

The README's feature table is effectively a mobile-app curriculum: Home (periodic BLE scan with signal strength), Connect (single/auto scan modes, live data + history), Information (battery, manufacturer, firmware, serial — read from the standard BLE Device Information service), Configure (raw register read/write, factory reset, LEDs, buzzer, vibrator), Multi-conf (push a full INI-style configuration file to the scanner), Debug (on-device log you can copy to the clipboard — build this early, thank yourself later).

One decode path for many data types

Scanners send barcode data, NFC tags and raw protocol frames through the same BLE characteristic. The app routes everything through a single decode pipeline instead of per-type special cases — the same "normalise at the boundary" lesson as the subtitle converter's timestamp handling.

The BLE protocol is documented here

The repository documents the exact services and characteristics (scanner data/control, configuration, battery 0x180F, device info 0x180A), which makes it usable as a reference for anyone building against these scanners — with no third-party analytics and no private configuration baked in.

Repository: github.com/bobhuang1/BarcodeScannerTypeScript