Live Pen™ 2 - Template and Pidget Support


The Live Pen™ 2 uses the same template family as Live Pen™ 1 (DP-201), namely template family 10. That is, the Live Pen™ 1 and the Live Pen™ 2 follow the exact same template update process and use the exact same template binaries. The initial template release that will be included in the Live Pen™ 2 is the latest one currently available, GUC41 which is also included in the Live Pen™ 1 since firmware version 7B.

This means that the Live Pen™ 2 can detect when the user ticks on any pidget that the Live Pen™ 1 supports.

Any segment that is not mapped in the template family, is locked.


If the Live Pen™ 2 is used on any paper that is 'locked' according to the definition above the pen will 'error buzz' as long as the pen tip is pressed towards that paper.

The Live Pen™ 2 only relays the pidgets to the host application via notifications and as event blocks in the STF2 file. Send pidgets and pair pidgets are special in that they result in action (or lack thereof) in the pen, so they will need special consideration.

When the user enters a pidget that is recognized by the pen, a connection attempt to a paired device is initiated.

When the user exits a pidget that is recognized by the pen, a confirmation vibration (see MMI implementation) is made and an event block is added to the STF2 file.

If the pen has a paired device within reach, exiting the pidget (by pen up or stroke continues outside the pidget) will also result in a notification being sent to the device. If that device is outside reach, the pen will error buzz when the connection attempt has failed.

If the exited pidget is a 'send pidget' (see below), the 'pSend' field in the notification will be set. In addition to that, the pen will lock the stroke storage and not accept any new strokes until either connection to host has failed or the host gets and deletes the strokes in the pen, according to the flow chart below.

Download picture


Pidget Result
All pidgets except pairing pidgets If Bluetooth is on and the pen is paired, an attempt is made to connect to the host.
All pidgets
  • Tactile feedback in the form of a single positive buzz when leaving the pidget.
  • A pidget event block being added to the STF2 file.
  • A notification being sent over Bluetooth APE (if a Bluetooth connection exists or is established within approximately 30 seconds).
All 'send pidgets' The "pSend" field in the notification is set to True.

Send and pair pidgets

To distinguish which pidgets that are send and pair pidgets the pen uses a scheme based on the Live Pen™ 1 source code.
The pidget ID is composed of several fields of varying bit length, where the first byte is the pidget type. The remaining fields are related to persistence (whether the data should be removed from the pen after send), device to send to and service type (page, book, etc.). In this pen all such information is processed on the server side, so the server can determine what to do based on pidget ID. The only thing for the pen to determine before sending the notification is whether to set the 'pSend' field.

When ignoring all such details, the pen has the following definition for these special pidgets.

Pidget type Pidget ID

Send pidget

0x04 as most significant byte (e.g. 0x0411, 0x0412, ...)

Pair pidget

0x0551 - 0x0554 and 0x0562

Note that this describes how the pen distinguishes between different pidget types. Which pidgets the pen actually recognizes as pidgets at all is determined by its templates (which may not cover all possible variations that are described above). 

See also the document "Paper Template Description" for a detailed description of which pidgets are supported by the Live Pen™ 2, specifically which IDs correspond to send and pair pidgets (which is a relevant part for this pen).  Note that also other 'utility pidgets' are recognized and stored as STF2 entries (e.g. battery pidget), but without any other action done by the pen.

Was this article useful? Thanks for the feedback There was a problem submitting your feedback. Please try again later.