How Can I Extend the Wake Time of My VP3300 BT?

Answer:

The VP3300 BT device has a power management feature to help manage the battery use between charges.

The VP3300 BT has four power states:

  • Run - In this state, the device is interacting with a card for payment.

  • Idle - The device returns to this state after a transaction or following a command from the host application, or on power up.

  • Sleep - The device goes into this mode from Idle after the "Idle Timer" has elapsed, without further interaction.  This uses less power than Idle.

  • Off - Following a time undisturbed in the Sleep mode (as determined by the "Sleep Timer"), the device will power off to conserve power further.

By default, the device will have the following values set:

  • Idle Timer: 5 seconds

  • Sleep Timer: 14 seconds

The timers have a range of 0 to 255, which is the range possible with a single byte (8 bits) of data.

Please note:

  1. Setting the Idle Timer to 0 disables the Power Management.  This means no idle mode, no sleeping.  This offers the most responsiveness when needed, but drains the battery faster.

  2. Setting Sleep Timer to 0 means the device will not enter Sleep Mode, but will move straight from Idle to Off when the Idle timer elapses.

So how can you set a timer for longer than 255 seconds?

There is another control byte that determines whether the time base used is seconds or minutes.

Using this, you can set one or both of the Idle or Sleep timers to a maximum of 255 minutes (4 hours and 15 minutes) before switching states.

To set this, you need to send the Set PMC Status command (F0-00) with the following data bytes:

Byte#1: Idle Timer Value

Byte#2: Sleep Timer Value

Byte#3: Time Base Setting

The third byte uses the least significant bits (bit 1 and bit 2) to control the time base used.

Bit 1 controls the Idle Time Base.  A value of zero signifies "seconds", while a value of one sets "minutes".

Bit 2 controls the Sleep Time Base in the same way (zero = seconds, one = minutes).

Bit 8

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Meaning

Bit 8

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Meaning

X

X

X

X

X

X





RFU













X



Sleep Time Base (0 = Seconds, 1 = Minutes)















X

Idle Time Base (0 = Seconds, 1 = Minutes)



For example, to set an Idle Time of 20 seconds and a Sleep Time of 30 minutes, use the following values:

Note: This assumes the use of the SDK Demo App and the Send NEO Command parameters

Cmd = F0

Sub = 00

Data = 141E02



To set an Idle Time of 5 minutes and a Sleep Time of an hour, use the following value instead:

Cmd = F0

Sub = 00

Data = 053C03