# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MLA -- USB Library

20 December, 2013

- 1
- 2
…
- 273
- 274
- 275
- 276
- 277
…
- 311
- 312

For more information about each demo board, please refer to the Demo Board Information section.
Demo Operation
These demos use the selected hardware platform as a USB HID class digitizer device. The Single-Touch demo is a HID
class pen digitizer demo, which emulates a pen digitizer touch screen capable of sensing a single contact point. The
Multi-Touch demo emulates a touch sensitive touch screen, capable of sensing two simultaneous contact points. The
multi-touch demo can potentially be expanded to support additional simultaneous contacts (by modifying the HID report
descriptor), however, the standard built in gestures that are recognized by the Microsoft Windows 7 platform only use one or
two contacts.
To use the Single-Touch pen digitizer demo, plug the demo board into a free USB port on a Windows Vista or Windows 7
machine. The device should automatically enumerate as a HID class pen digitizer device, and certain additional functions
and capabilities built into the operating system will become activated. No manual USB driver installation is necessary, as the
built in HID class drivers are used for this device.
To use the Multi-Touch digitizer demo, plug the demo board into a free USB port on a Windows 7 machine. Windows 7 has
significantly more “Windows Touch” capabilities than Vista. Although the device will enumerate and provide limited
functionality on Windows Vista, multi-touch gestures will not be recognized unless run on Windows 7.
Since the standard demo boards that these demos are meant to be run on do not have an actual touch sensitive contact
area, the firmware demos emulate the data that would be generated by a real touch screen. Both demo projects use a single
user pushbutton. By pressing the button, the firmware will send a flurry of USB packets to the host, which contain contact
position data that is meant to mimic an actual “gesture” of various types. Each subsequent press of the pushbutton will
advance the internal state machine, and cause the firmware to send a gesture to the PC.
To use the demos, it is best to have Microsoft Internet Explorer installed on the machine (although some demo functions can
be observed using the pen flick practice area available from the control panel). The latest versions of Internet Explorer (when
run on the proper OS: preferably Windows 7, but some function on Windows Vista) supports recognition and use of certain
basic gestures, such as “back”, “forward”, as well as certain scroll and zoom operations.
Other Info: Windows 7 adds support for Windows messages such as “WM_GESTURE” and “WM_TOUCH”. These
messages can be used to help build customized “touch enabled” PC applications. Documentation for these messages can
be found in MSDN.
The following Microsoft developer blog contains useful additional information relating to Windows Touch:
http://blogs.msdn.com/e7/archive/2009/03/25/touching-windows-7.aspx
1.6.7 Device - HID - Joystick Demo
This demo shows how to create a USB joystick.
Description
Supported Demo Boards
The matrix of which demos are supported on a specific board can be found in the Release Notes demo board support
section. Verify that the board you wish to use will work with this demo. This table also describes some of the limitations that
the board might have while running this demo.
Demo Board I/O Mapping
Each demo board has a different number of push buttons, LEDs, and other features with various different names for these
components. To determine which board features are used for which demo features, please refer to the io_mapping.h file in
the demo folder under the system_config folder. Each demo board will have a corresponding folder with an io_mapping.h file
in it. For example, for the PIC18F46J50 PIM this would be the following file:
<install_directory>/apps/usb/device/hid_joystick/firmware/src/system_config/pic18f46j50_pim/io_mapping.h
For more information about each demo board, please refer to the Demo Board Information section.
1.6 Demos MLA - USB Library Help Device - HID - Joystick Demo
275

- 1
- 2
…
- 273
- 274
- 275
- 276
- 277
…
- 311
- 312