How Does a VP3300 BT Connect to Apps?

There are two phases to a Bluetooth device: pair and connect. Pair links a BLE device to a phone. Connect allows communication.


When you have a brand new VP3300, the device pairs the first time you use it. This is when the iPhone finds the VP3300, assigns a unique UUID, and then pairs to it; after that, the phone and device can communicate. After pairing, the device appears in the iPhone's Bluetooth settings. Anytime your phone is near that device, the iPhone automatically pairs. This means you cannot use that device on another iPhone if your iPhone is nearby because your iPhone is already paired. To use that VP3300 on another device, you either need to make sure your iPhone is no where near the reader, turned off, or you must go into your iPhone's Bluetooth settings and unpair the reader (note: although you cannot pair a phone and reader from the Bluetooth control panel, you can unpair the two using the Bluetooth control panel).


When you start your application, search your settings to see if you have ever connected to a VP3300 before. If it's the first time, you must connect to a VP3300. Because the VP3300 does not have a Bluetooth name applied, you must scan the area for Bluetooth devices.

  1. First, set the friendly name to an empty value by executing device_setBLEFriendlyName with a an empty string for the name.
  2. Next, do a search for BLE devices by calling device_enableBLEDeviceSearch, passing nil as a identifier. Because there is no BLE friendly name set, nothing will be paired. But while the phone is searching, the SDK is reporting all the devices it is finding in the area back to the deviceMessages delegate; it is reporting back "BLE DEVICE FOUND:" followed by device names.
  3. The application needs to collect all these names it finds. After the application thinks it has found all available names (let the scanning happen for 20 seconds or so), execute device_disableBLEDeviceSearch to stop the phone from draining the battery continuously scanning.
    The application now must present those names to the user and have them pick a device to connect to. After the application knows what device to connect to, it passes that device name to device_setBLEFriendlyName.
  4. Now the application asks the SDK to scan again, calling device_enableBLEDeviceSearch and passing nil as a identifier. This time, it connects to the device with that matching name.
  5. After connecting, the application asks the SDK what NSUUID the Apple device assigned to our VP3300 by calling device_connectedBLEDevice. This returns the device's UUID. The application must store this number in memory when you quit your application, and can then execute device_disconnectBLE.
  6. The next day, when the application starts, it will see there is a VP3300 UUID in memory already (the application has previously paired with a VP3300), so now, on application startup, the app executes device_enableBLEDeviceSearch and passes the UUID. The application will automatically reconnect to the device from now on by doing this on each startup.