CK Chris Kubicki

Client work · Vector · 2019–2026

VMC

Finds Vector hardware over Bluetooth, identifies the model — and renders its whole configuration interface from XML schemas pulled from the cloud.

1. What it is

VMC is client work for Vector: the app a field engineer opens to talk to their CATV and DOCSIS hardware. It scans for a device over Bluetooth, works out which model and firmware revision it is looking at, and presents the parameters that device actually supports.

The interface is not hardcoded. Menus are generated from XML configuration files downloaded from the cloud, so a new firmware revision can change what the app shows without shipping a new build.

2. The hard parts

  • Identifying a device from raw frames The app tells one hardware variant from another by reading specific 32-bit registers over Bluetooth — the device type and the ALSC insert — and building a key from a range of ASCII bytes. None of this is announced by the protocol; it had to be worked out from the wire.
  • Frames that arrive in pieces Bluetooth notifications do not respect frame boundaries. Every chunk goes into a buffer that validates a checksum and the declared length before the frame is accepted, so a truncated read is dropped rather than parsed as data.
  • A link that drops in the field A watchdog watches the connection. When the link goes stale the app rebuilds it and re-sends identification in one pass, rather than making the engineer start over.
  • A connect that fails the first time After a scan, the first connection attempt can fail with a transient controller error. A short pause and a single retry makes it reliable, and the retry is part of the discovery flow rather than something the user has to trigger.
  • A UI generated from XML Parameter menus are built from cloud-hosted XML, parsed into models and rendered generically. Field engineers get a configuration screen that matches the firmware in front of them.

3. Notes

  • A presentation mode runs the whole app offline with representative values, for demonstrations where no hardware is at hand.
  • Picking a location on the map writes it straight into the device's own geolocation parameters.

4. Contact

Something to build, fix or hook up? Write — replies usually land within a day, EU timezone.

chris@kubicki.live