PicoP Gen4 Programmer's Guide DA0140028 Pico P Programmers

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 34

DownloadPicoP Gen4 Programmer's Guide DA0140028 Pico P Programmers
Open PDF In BrowserView PDF
PicoP® Gen4 Programmer’s Guide
MVIS #: DA0140028
May 2019 Revision A.2

ABSTRACT
This Programmer’s Guide describes the functionality of MicroVision’s 4th Generation PicoP®
Scanning Engines (PSEs) Application Programming Interface (API).

Contents
Chapter 1:

Introduction .......................................................................... 4

Chapter 2:

Communication Interface........................................................ 5

Chapter 3:

API Functionality Overview ..................................................... 6

Chapter 4:

Connection & Library Management Functions ............................ 7

4.1.

PicoP_OpenLibrary ( libraryHandle) ................................................ 7

4.2.

PicoP_GetLibraryInfo ( libraryHandle, libraryInfo) ............................. 7

4.3.

PicoP_CloseLibrary ( libraryHandle) ................................................ 8

4.4.

PicoP_OpenConnection ( libraryHandle, connectionInfo,
connectionHandle)........................................................................ 8

4.5.

PicoP_OpenConnectionUart (libraryHandle, connectionInfo,
connectionHandle)........................................................................ 8

4.6.

PicoP_CloseConnection ( connectionHandle) .................................... 9

Chapter 5:

Display Control Functions ..................................................... 10

5.1.

PicoP_SetBrightness ( brightnessValue, commit) ............................ 10

5.2.

PicoP_GetBrightness ( brightnessValue, storageType) ..................... 10

5.3.

PicoP_SetColorMode ( colorMode, commit) .................................... 10

5.4.

PicoP_GetColorMode ( colorMode, storageType) ............................. 11

5.5.

PicoP_SetGamma ( color, gammaValue, commit) ........................... 12

5.6.

PicoP_GetGamma ( color, gammaValue, storageType) .................... 13

5.7.

PicoP_SetVideoGammaBoostMode ( color, boostMode, commit) ....... 13

5.8.

PicoP_GetVideoGammaBoostMode ( color, boostMode, storageType) 14

5.9.

PicoP_SetMicroWeaveMode ( microWeaveMode, commit) ................ 15

5.10.

PicoP_GetMicroWeaveMode ( microWeaveMode, storageType) ......... 16

5.11.

PicoP_SetFlipState( flipState, commit) .......................................... 17

5.12.

PicoP_GetFlipState( flipState, storageType) ................................... 18

5.13.

PicoP_SetOutputVideoState ( state, commit) ................................. 18

5.14.

PicoP_GetOutputVideoState ( state, storageType) .......................... 18

5.15.

PicoP_GetOutputVideoProperties( horizontalResolution,
verticalResolution, frameRate) ..................................................... 19

5.16.

PicoP_SetBiPhase ( phaseValue, commit) ...................................... 19

5.17.

PicoP_GetBiPhase ( phaseValue, storageType) ............................... 20

5.18.

PicoP_SetColorAlignment ( direction, laser, offset, commit ) ............ 20

5.19.

PicoP_GetColorAlignment ( direction, laser, offset, storageType ) ..... 21

5.20.

PicoP_SetColorConverter ( color, coefficient, commit) ..................... 22

5.21.

PicoP_GetColorConverter ( color, coefficient, storageType ) ............. 23

5.22. PicoP_SetFrameRateMode ( frameRateMode,
displayVerticalScalingMode, displayHorizontalScalingMode, commit) ........... 24
PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 2

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

5.23. PicoP_GetFrameRateMode ( frameRateMode,
displayVerticalScalingMode, displayHorizontalScalingMode, storageType) ..... 25
Chapter 6:

System Management Functions ............................................. 27

6.1.

PicoP_GetSystemInfo ( systemInfo).............................................. 27

6.2.

PicoP_GetSystemStatus ( systemStatus) ....................................... 27

6.3.

PicoP_GetEventLog ( numEvents, event) ....................................... 28

6.4.

PicoP_RestoreFactoryConfig ( ) .................................................... 29

6.5.

PicoP_CommitAll ( ) .................................................................... 29

6.6.

PicoP_UpgradeSoftware (byteTotal, image) ................................... 29

Chapter 7:

Input Control Functions ........................................................ 30

7.1.

PicoP_GetInputVideoProperties ( horizontalPixels, verticalLines,
frameRate ) ............................................................................... 30

7.2.

PicoP_SetInputVideoState ( inputVideoState, commit) .................... 30

7.3.

PicoP_GetInputVideoState ( inputVideoState, storageType) ............. 31

Chapter 8:

3D Sensing Functions ........................................................... 32

8.1.

PicoP_SetSensingState ( sensingState, commit)............................. 32

8.2.

PicoP_GetSensingState ( sensingState, storageType)...................... 32

Chapter 9:
9.1.

Rendering Functions ............................................................ 33

PicoP_DrawTestPattern ( testPattern, foregroundColor,
backgroundColor) ....................................................................... 33

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 3

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 1:

Introduction

This Programmer’s Guide details the functionality of the command and control
interface of MicroVision’s 4th Generation PicoP® Scanning Engines (PSEs). The MicroVision
PicoP Scanning Engine (PSE) is targeted for customers embedding a small, High Definition
laser projector and/or LiDAR 3D depth sensor into their product. The PSE is delivered with
PicoP® Software Development Kits (SDKs), which facilitate third-party Application
Software development for the PicoP Scanning Engine.
The PicoP SDK packages consists of the following:
•

Operating System specific software libraries for interfacing with the PSE

•

Application Programming Interfaces (APIs)

•

Sample Applications

•

Documentation

The PicoP SDKs support 2 API types:
•

C Function API for the Windows and Linux operating systems

•

Java Class API for Android ™ operating system

Other languages in the Windows and Linux operating systems, such as C# or Python
can be supported through wrappers or controls built on top of the C Function API.
This Guide defines all applicable functions and commands supported by the PSE
Application Programming Interface (API). The supported functions are described in
programming language independent pseudo-code. For language specific information,
please refer to the appropriate PSE Software Development Kit (SDK) documentation.
The information contained in this document is provided for guidance purposes only
and is subject to change without notice.

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 4

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 2:

Communication Interface

The host device can communicate with the PSE either through USB or UART physical
interface. Over these interfaces the host device communicates with PSE module using
MicroVision’s proprietary PicoP Command Protocol (PPCP). These low level PPCP
commands are abstracted by the PicoP Software Development Kit (SDK) Application
Programming Interface (API). The PPCP packets are generated by the SDK Libraries as
requested by the application SW thru API function/method calls.

Sample
Applications

Customer
Applications

PicoP C API
PicoP Java API
PPCP Interface
Abstraction
Library

OS Services API
Serial Driver

USB Driver

Future HW
Driver

Hardware Interface
UART

USB

PPCP Communication with PicoP Device

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 5

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 3:

API Functionality Overview

The PicoP API is split in to the following major functional categories, which are
described in detail in following chapters 4-10:
Chapter 4: Connection & Library Management: Connect to PicoP over USB or Serial
interface.
Chapter 5: Display Control: Configure and control the PicoP Display.
Chapter 6: System Management: Manage the PicoP System, Firmware upgrades,
Event Log, etc.
Chapter 7: Input Control: Configure the PicoP Input Video.
Chapter 8: 3D Sensing: Configure and control the PicoP 3D Sensing function.
Chapter 9: Rendering: Display test patterns by rendering them into the
Framebuffer.

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 6

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 4:
Connection & Library Management
Functions
The connection & library management functions are used to connect the application
to the PSE and to configure the communications interface.

4.1. PicoP_OpenLibrary ( libraryHandle)
Opens the interface library and allocates resources necessary for operation. Returns
a handle to the library to be used for opening a connection to the PSE. The application
must call the PicoP_OpenLibrary() function first to obtain a libraryHandle that can then
be used to open a communications connection.

Parameter

Description

libraryHandle [OUT]

A handle to the opened SDK Library

4.2. PicoP_GetLibraryInfo ( libraryHandle, libraryInfo)
This function is used to retrieve the version and capability information of the SDK
Library.

Parameter

Description

libraryHandle [IN]

Handle to the SDK Library

libraryInfo [OUT]

Library info structure containing the following info on the SDK
library:
•

Major version

•

Minor version

•

Patch Version

•

Capability flags

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 7

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

4.3. PicoP_CloseLibrary ( libraryHandle)
Closes the library, releases all resources and closes all open connections. This
function should be called last upon exiting the application.

Parameter

Description

libraryHandle [IN]

The handle to the SDK Library to be closed

4.4. PicoP_OpenConnection ( libraryHandle, connectionInfo,
connectionHandle)
Opens a connection to the PSE using either USB or UART interface and returns a
connectionHandle that must be used by subsequent API calls.

Parameter

Description

libraryHandle [IN]

Handle to the SDK Library

connectionInfo
[IN]

Connection type and parameters for the specific connection type,
such as port #, baud rate, etc.

connectionHandle
[OUT]

A handle to the opened connection to be used with subsequent
function calls

4.5. PicoP_OpenConnectionUart (libraryHandle, connectionInfo,
connectionHandle)
Opens a connection to the PSE using UART interface and returns a connection Handle
that must be used by subsequent API calls to indicate the connection to be used.

Parameter
libraryHandle [IN]

Description
Handle to the SDK Library

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 8

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

connectionInfo
[IN]

Information about UART the connection such as baud rate, parity,
etc.

connectionHandle
[OUT]

A handle to the opened connection to be used with subsequent
function calls.

4.6. PicoP_CloseConnection ( connectionHandle)
Closes a previously opened connection to PSE.

Parameter

Description

connectionHandle
[in]

A handle to the opened connection to be used with subsequent
function calls

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 9

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 5:

Display Control Functions

The Display Control Functions enable the host application to control and configure
the output projection display.

5.1. PicoP_SetBrightness ( brightnessValue, commit)
Set the brightness for the output projection display.

Parameter

Description

brightnessValue
[IN]

Brightness level to set. Range 0 - 100. 0 means display off, 100
indicates max brightness.

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.2. PicoP_GetBrightness ( brightnessValue, storageType)
Retrieve the current PSE display brightness.

Parameter

Description

brightnessValue
[OUT]

Floating point value from 0.0 to 1.0

storageType
[IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.3. PicoP_SetColorMode ( colorMode, commit)
The PSE projection display utilizes Red (640 nm), Green (532 nm), Blue (450 nm) laser
diodes as light sources to illuminate the scanned beam projection display. The laser
diodes enable the PSE to provide a wide gamut of brilliant and reproducible colors. This
expanded color gamut is significantly larger than standard color gamuts, such as sRBG
(see the CIE chromaticity diagram below).

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 10

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

This function sets the PSE color mode.

Parameter
colorMode [IN]

Description
BRILLIANT – PicoP wide gamut color space
STANDARD – Standard color space, close to sRGB or similar
RICH – Color Space between BRILLIAND and STANDARD
INVERTED – inverted color space

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.4. PicoP_GetColorMode ( colorMode, storageType)
This function retrieves the current color mode setting from the PSE.
PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 11

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Parameter
colorMode [OUT]

Description
BRILLIANT – PicoP wide gamut color space
STANDARD – Standard color space, close to sRGB or similar
RICH – Color Space between BRILLIAND and STANDARD
INVERTED – inverted color space

storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.5. PicoP_SetGamma ( color, gammaValue, commit)
Gamma is the relationship between the numerical value of a pixel in an image file
and the brightness of the projected pixel when viewed on screen. This relationship is nonlinear, meaning that a change in pixel value does not translate into an equivalent change
in brightness. For almost all TVs and computer monitors, a change in pixel value results in
a change in brightness raised to the 2.2 power. The gamma for these devices, therefore,
is said to be 2.2. The PicoP_SetGamma() functions allows adjustment of the gamma
value.

Default Display

Parameter

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Display with increased Gamma

Description

Page 12

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

color [IN]

RED

– Set the gamma of the red laser

GREEN - Set the gamma of the green laser
BLUE

- Set the gamma of the blue laser

gammaValue
[IN]

A floating point value for gamma, range 1.0-3.0 .

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.6. PicoP_GetGamma ( color, gammaValue, storageType)
This function retrieves the current display gamma value.

Parameter
color [IN]

Description
RED

– Get the gamma of the red laser

GREEN - Get the gamma of the green laser
BLUE

- Get the gamma of the blue laser

gammaValue
[OUT]

Current gamma value

storageType
[IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.7. PicoP_SetVideoGammaBoostMode ( color, boostMode,
commit)
The PSE supports an Enhanced Brightness mode which is achieved by boosting the
brightness of video codes around code level 0.3 (or 76 of 255), as illustrated in figure
below. These video code values are the most common in typical pictures and movie
frames. When the Gamma Boost mode is enabled, the brightness of these video codes
is increased up to 30% to correspond to a ~30% brighter display when typical pictures or
movies.
PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 13

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

The boost can be performed to individual primary colors.

Parameter
color [IN]

Description
RED

– Set boost mode for the red laser

GREEN - Set boost mode for the green laser
BLUE

- Set boost mode for the blue laser

ALL

- Set boost mode for all (red, blue and green) lasers

boostMode
[IN]

NONE - Standard mode, no brightness boost

commit [IN]

FALSE – Do not persist (value restored back after power cycle)

VIRTUAL_LUMENS_30PCT - Boost mode, enhanced lumens boosted 30%

TRUE – Persist setting

5.8. PicoP_GetVideoGammaBoostMode ( color, boostMode,
storageType)
This function returns the gamma boost mode.

Parameter

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Description

Page 14

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

color [IN]

RED

– Boost mode of the red laser

GREEN - Boost mode of the green laser
BLUE

- Boost mode of the blue laser

boostMode
[OUT]

NONE - Standard mode, no brightness boost

storageType
[IN]

eCURRENT_VALUE – Current value in use

VIRTUAL_LUMENS_30PCT - Boost mode, enhanced lumens boosted
30%

eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.9. PicoP_SetMicroWeaveMode ( microWeaveMode, commit)
PSE supports a “MicroWeave” mode, in which successive frames are displayed with
horizontal scan starting Left->Right, then Right->Left, then Left->Right, etc., as illustrated
below:

The MicroWeave mode fills in gaps between MEMS raster lines, as shown below:

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 15

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Parameter
microWeaveMode
[IN]
commit [IN]

Description
OFF – MicroWeave Off
ON – MicroWeave On
FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.10. PicoP_GetMicroWeaveMode ( microWeaveMode,
storageType)
Return system’s MicroWeave mode.

Parameter
microWeaveMode
[OUT]
storageType [IN]

Description
OFF – MicroWeave Off
ON – MicroWeave On
eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 16

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

5.11. PicoP_SetFlipState( flipState, commit)
This function allows the host to flip the display horizontally, vertically, or both
horizontally and vertically. The effect of the display flip is illustrated below:

Horizontal

Original

Image

Flipped

Original
Image

Image

Flipped

I

l

Verti

Parameter
flipState[IN]

Description
Flip Direction:
FLIP_NEITHER – Normal display, not flipped
FLIP_HORIZONTAL – Display flipped across the display axis
FLIP_VERTICAL – Display flipped across the display vertical axis
FLIP_BOTH - Display flipped across both the horizontal axis and display axis

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 17

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

5.12. PicoP_GetFlipState( flipState, storageType)
Returns the flip state of the display

Parameter
flipState [OUT]

Description
Flip Direction:
FLIP_NEITHER – Normal display, not flipped
FLIP_HORIZONTAL – Display flipped across the display axis
FLIP_VERTICAL – Display flipped across the display vertical axis
FLIP_BOTH - Display flipped across both the horizontal axis and display
axis

storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.13. PicoP_SetOutputVideoState ( state, commit)
This function enables or disables the output video. When the output video is
disabled, the display is blanked.

Parameter
state [IN]

Description
ENABLED – Enable the output video
DISABLED – Disable the output video and blank the display

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.14. PicoP_GetOutputVideoState ( state, storageType)
Returns the current state of the output video.
Parameter
state [OUT]

Description
ENABLED – The output video is enabled

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 18

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

DISABLED – The output video is disabled
storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.15. PicoP_GetOutputVideoProperties( horizontalResolution,
verticalResolution, frameRate)
Return the current display output properties, such as display resolution and frame
rate.

Parameter

Description

horizontalResolution [OUT]

Current output display horizontal resolution in number of
horizontal pixels

verticalResolution [OUT]

Current output display vertical resolution in number of
vertical pixels

frameRate [OUT]

Current output display frame rate in frames per second

5.16. PicoP_SetBiPhase ( phaseValue, commit)
The PicoP Laser Beam Scanning display illuminates pixels during both horizonal left
to right and right to left scans. The PSE automatically adjusts the phase delay so that left
to right and right to left scanned pixels are perfectly aligned in the vertical direction.
However, in case one can observe a misalignment (display appears out of focus), this
function allows the host to manipulate the phase delay. This manual override should not
be needed in normal operation.
The effect of the Phase setting is illustrated below:

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 19

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Original Image

Phase Offset = 30

Parameter

Description

phaseValue [IN]

Value for the horizontal phase offset (Range -50 … +50)

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.17. PicoP_GetBiPhase ( phaseValue, storageType)
This function retrieves the scan line phase delay value.

Parameter

Description

phaseValue [OUT]

Value for the horizontal phase offset (Range -50 … +50)

storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.18. PicoP_SetColorAlignment ( direction, laser, offset, commit )
This function performs vertical or horizontal color alignment for the selected
laser/color component. The lasers have been carefully aligned in the factory, but this
function allows re-alignment if the colors are no longer perfectly overlapping. The use of
this function should not be needed in normal operation.
The effect of the color alignment setting is illustrated below:
PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 20

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Original Display, all colors in alignment

Parameter
direction [IN]

Manual color alignment
direction = VERTICAL, Laser =
RED_1, RED_2, offset = 32

Description
HORIZONTAL – perform color alignment in Horizontal direction
VERTICAL – perform color alignment in Vertical direction

laser [IN]

RED_1 – Align Red Laser #1
GREEN_1 – Align Green Laser #1
BLUE_1 – Align Blue Laser #1
RED_2 – Align Red Laser #2
GREEN_2 – Align Green Laser #2

offset [IN]

Value for the alignment (Range -32 … +32)

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.19. PicoP_GetColorAlignment ( direction, laser, offset,
storageType )
This function returns the alignment offset in vertical or horizontal direction for a
specified laser/color component.

Parameter

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Description

Page 21

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

direction [IN]

HORIZONTAL – color alignment in Horizontal direction
VERTICAL – color alignment in Vertical direction

laser [IN]

RED_1 – Align Red Laser #1
GREEN_1 – Align Green Laser #1
BLUE_1 – Align Blue Laser #1
RED_2 – Align Red Laser #2
GREEN_2 – Align Green Laser #2

offset [OUT]

Value for the alignment (Range -32 … +32)

storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

5.20. PicoP_SetColorConverter ( color, coefficient, commit)
The PSE Color converter is a 3x3 matrix that allows the display colors to be remapped.
This function sets the color converter value for a specific color pair in the 3x3 color
converter matrix.
The effect of the color converter setting is illustrated below on a checkerboard
display when adding RED to BLUE mapping:

``
color = RED_TO_RED, offset = 32768

color = RED_TO_BLUE, offset = 32768

Parameter
color [IN]

Description
RED_TO_RED - Red to Red

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 22

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

GREEN_TO_RED - Green to Red
BLUE_TO_RED - Blue to Red
RED_TO_GREEN - Red to Green
GREEN_TO_GREEN - Green to Green
BLUE_TO_GREEN - Blue to Green
RED_TO_BLUE - Red to Blue
GREEN_TO_BLUE - Green to Blue
BLUE_TO_BLUE - Blue to Blue
coefficient [IN]

Value for the color converter (Range -32,768 … +32,767)

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

5.21. PicoP_GetColorConverter ( color, coefficient, storageType )
This function returns the color converter value for a specific color pair in the 3x3 color
converter matrix.

Parameter
color [IN]

Description
RED_TO_RED - Red to Red
GREEN_TO_RED - Green to Red
BLUE_TO_RED - Blue to Red
RED_TO_GREEN - Red to Green
GREEN_TO_GREEN - Green to Green
BLUE_TO_GREEN - Blue to Green
RED_TO_BLUE - Red to Blue
GREEN_TO_BLUE - Green to Blue
BLUE_TO_BLUE - Blue to Blue

coefficient [OUT]

Value for the color converter (Range -32768 … +32767)

storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 23

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

5.22. PicoP_SetFrameRateMode ( frameRateMode,
displayVerticalScalingMode, displayHorizontalScalingMode,
commit)
A MEMS Laser Beam Scanning system can dynamically adjust vertical resolution and
frame rate; one can trade off between faster frame rate and slightly lower vertical
resolution. The MicroVision PSE supports the following modes for Frame Rate vs. Vertical
Resolution of Display and 3D Sensing:
a) 60Hz Frame Rate, 720 display vertical resolution, 740 sensing vertical
resolution (w/ IR Overscan)
b) 70Hz Frame Rate, 640 display vertical resolution, 640 sensing vertical
resolution (no IR Overscan)
c) 70Hz Frame Rate, 600 display vertical resolution, 640 sensing vertical
resolution (w/ IR Overscan)
The PicoP_SetFrameRateMode() function allows the host to select these different
modes, as well as to set how the display scaling will be performed if the input video
resolution does not match the output resolution.

Parameter
frameRateMode [IN]

Description
FRAMERATE_60HZ_DISPLAY_720p_SENSING_740p - 60Hz
Frame Rate, 720 display vertical resolution, 740 sensing
vertical resolution (Default)
FRAMERATE_70HZ_DISPLAY_640p_SENSING_640p - 70Hz
Frame Rate, 640 display vertical resolution, 640 sensing
vertical resolution
FRAMERATE_70HZ_DISPLAY_600p_SENSING_640p - 70Hz
Frame Rate, 600 display vertical resolution, 640 sensing
vertical resolution

displayVerticalScalingMode
[IN]

DISPLAY_VERTICAL_SCALING_DOWN - (Default) If input
resolution > display resolution, downscale vertically to
display resolution
DISPLAY_VERTICAL_SCALING_CROP_BOTTOM - If input
resolution > display resolution, crop the bottom of the
input video to reach the correct display vertical resolution
DISPLAY_VERTICAL_SCALING_CROP_EVEN - If input
resolution > display resolution, crop evenly from the top
and bottom of the input video to reach the correct display
vertical resolution

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 24

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

displayHorizontalScalingMode
[IN]

DISPLAY_HORIZONTAL_SCALING_DOWN - (Default) If input
resolution > display resolution, use horizontal interpolator
to map video horizontally to correct horizontal resolution
to maintain 16:9 aspect ratio
DISPLAY_HORIZONTAL_SCALING_NONE
Display
horizontal pixels to fill the display horizontally with input
pixels without maintaining original aspect ratio.

commit [IN]

FALSE – Do not persist (value restored back after power
cycle)
TRUE – Persist setting

5.23. PicoP_GetFrameRateMode ( frameRateMode,
displayVerticalScalingMode, displayHorizontalScalingMode,
storageType)
Return the output frame rate mode (frame rate vs. vertical display and sensing
resolutions) and display scaling

Parameter
frameRateMode [OUT]

Description
FRAMERATE_60HZ_DISPLAY_720p_SENSING_740p - 60Hz
Frame Rate, 720 display vertical resolution, 740 sensing
vertical resolution (Default)
FRAMERATE_70HZ_DISPLAY_640p_SENSING_640p - 70Hz
Frame Rate, 640 display vertical resolution, 640 sensing
vertical resolution
FRAMERATE_70HZ_DISPLAY_600p_SENSING_640p - 70Hz
Frame Rate, 600 display vertical resolution, 640 sensing
vertical resolution

displayVerticalScalingMode
[OUT]

DISPLAY_VERTICAL_SCALING_DOWN - (Default) If input
resolution > display resolution, downscale vertically to
display resolution
DISPLAY_VERTICAL_SCALING_CROP_BOTTOM - If input
resolution > display resolution, crop the bottom of the
input video to reach the correct display vertical resolution
DISPLAY_VERTICAL_SCALING_CROP_EVEN - If input
resolution > display resolution, crop evenly from the top
and bottom of the input video to reach the correct display
vertical resolution

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 25

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

displayHorizontalScalingMode
[OUT]

DISPLAY_HORIZONTAL_SCALING_DOWN - (Default) If input
resolution > display resolution, use horizontal interpolator
to map video horizontally to correct horizontal resolution
to maintain 16:9 aspect ratio
DISPLAY_HORIZONTAL_SCALING_NONE
Display
horizontal pixels to fill the display horizontally with input
pixels without maintaining original aspect ratio.

storageType [IN]

eCURRENT_VALUE – Current value in use
eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 26

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 6:

System Management Functions

The System management functions enable the host application to query system
status and health, set power modes, and field upgrade firmware.

6.1. PicoP_GetSystemInfo ( systemInfo)
This function allows the host to retrieve information about the PSE system which
includes System Serial Number, Software Version and Electronics Version. This
information can be used for troubleshooting and configuration management.

Parameter
systemInfo [OUT]

Description
Returned system information structure with the following
information:
PSE System Serial Number
PSE Firmware Version
PSE Electronics Version
versionA reserved for future use
versionB reserved for future use
versionC reserved for future use
versionD reserved for future use
versionE reserved for future use

6.2. PicoP_GetSystemStatus ( systemStatus)
PSE allows the host to query the status of the PSE system; i.e. whether it is working
properly or not. The function will also retrieve the system internal temperature.

Parameter
systemStatus [OUT]

Description
Returned systemStatus
information:

structure

with

the

following

systemState:
ON = 0 – System running and ready to accept input video
STARTING – System Starting Up

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 27

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

CALIBRATION – System in Calibration mode (for MicroVision
use only)
FAULT – System has faulted. Please power cycle.
SystemFault:
0 – system OK
Not 0 - System not OK, please contact MicroVision customer
service
Temperature:
PSE internal Temperature
Data 0: for future expansion
Data 1: for future expansion
Data 2: for future expansion
Data 3: for future expansion
Data 4: for future expansion

6.3. PicoP_GetEventLog ( numEvents, event)
PSE maintains a log of system events that have occurred. The host can retrieve the
event log information of last events with the PicoP_GetEventLog() function. This function
is typically used for system troubleshooting.

Parameter

Description

numEvents
[IN]

Number of events to be retrieved

event [OUT]

Returned events, list of event data structures with the following
information:
session - session number when event occurred
eventide - Event Id
time - Event time stamp
data - Event data
cid - Event component ID
line - Event line number

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 28

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

6.4. PicoP_RestoreFactoryConfig ( )
This function restores PSE system configuration to the factory default settings.

6.5. PicoP_CommitAll ( )
Commit all user settings to flash that have not yet been committed; i.e. were set with
commit = 0.

6.6. PicoP_UpgradeSoftware (byteTotal, image)
The PSE supports field upgrading the embedded software of the system with the
PicoP_UpgradeSoftware() function.

Parameter

Description

byteTotal [IN]

Size of the SW binary

image [IN]

Data of the SW binary

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 29

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 7:

Input Control Functions

The Input Control Functions allow the host device to control and configure the PSE
video input interface.

7.1. PicoP_GetInputVideoProperties ( horizontalPixels,
verticalLines, frameRate )
Return the detected input video resolution and Frame Rate. This is a utility helper
function that can be used by the application to help determine the input video format if
it is not known.

Description

Parameter
horizontalPixels
[OUT]

Detected number of pixels per line

verticalLines [OUT]

Detected number of video lines per single video frame

frameRate [OUT]

Detected number of video frames per second

7.2. PicoP_SetInputVideoState ( inputVideoState, commit)
This function enables or disables the PSE input video interface. When the input video
is disabled, the PSE frame buffer will not be updated and the output video will contain
the last received frame.

Parameter
inputVideoState
[IN]

commit [IN]

Description
ENABLED – Enable the input video
DISABLED – Disable the input video and statically display the last
received video frame contained in the frame buffer.
FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 30

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

7.3. PicoP_GetInputVideoState ( inputVideoState, storageType)
Returns the current state of the input video.

Parameter

Description

inputVideoState
[OUT]

ENABLED – The input video is enabled

storageType [IN]

eCURRENT_VALUE – Current value in use

DISABLED – The input video is disabled

eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 31

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 8:

3D Sensing Functions

8.1. PicoP_SetSensingState ( sensingState, commit)
Set the 3D Sensing function On or Off. When the 3D Sensing function is off, the IR
laser is not pulsing and no touch events will be sent to the host device.

Parameter
sensingState [IN]

Description
ENABLED – Enable 3D Sensing function
DISABLED – Disable 3D Sensing function

commit [IN]

FALSE – Do not persist (value restored back after power cycle)
TRUE – Persist setting

8.2. PicoP_GetSensingState ( sensingState, storageType)
Return the state of the 3D sensing function.

Parameter

Description

sensingState
[OUT]

ENABLED – 3D Sensing function is enabled

storageType [IN]

eCURRENT_VALUE – Current value in use

DISABLED – 3D Sensing function disabled

eVALUE_ON_STARTUP – Value persisted for PSE power on
eFACTORY_VALUE – Factory default

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 32

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Chapter 9:

Rendering Functions

The Rendering functions allow the host to display test patterns by rendering them
into the display Framebuffer.

9.1. PicoP_DrawTestPattern ( testPattern, foregroundColor,
backgroundColor)
This function enables the host to request the display of set of PSE internally
generated test patterns. When enabled, the selected test pattern will replace any input
video and the display the pattern covering the entire display area.

Parameter
testPattern [IN]

Description
eTEST_PATTERN_OFF: Turn Test Patterns Off, re-enable
input video
eCHECKERBOARD_PATTERN: 4 x 4 Checkerboard
eCROSSHAIR_PATTERN: Bordered cross hair (1 pixel wide)
eGRID_PATTERN: Bordered grid pattern (1 pixel wide)
eCONSTANT_COLOR_PATTERN: Solid (constant) single color

foregroundColor [IN]

24-bit RGB Color Value for the test pattern

backgroundColor[IN]

24-bit RGB Color Value for the test pattern background

To turn off test patterns, the user shall call the PicoP_DrawTestPattern() function
again with the eTEST_PATTERN_OFF parameter (the foregroundColor and
backgroundColor parameters are don’t care and ignored in this case).
The built-in test patterns with sample colors are illustrated below:

4 x 4 Checkerboard
(Green foreground, Black background)
(0x00ff00, 0x000000)
PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Bordered crosshair
(Red foreground, Black background)
(0xff0000, 0x000000)
Page 33

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.

Bordered grid pattern
(Red foreground, yellow background)
(0xff0000, 0xffff00)

Solid single color pattern
(Purple foreground)
(0xff7fff)

For the solid single color pattern, the foreground color parameter is used to set the
display color and the background color parameter is ignored (don’t care)

PicoP® Gen4 Programmer's Guide
MVIS #: DA0140028

May 2019 Revision A.2

© 2019 MicroVision, Inc. All rights reserved.

Page 34

MicroVision.com
PicoP® is a registered trademark of MicroVision, Inc.
Specifications subject to change without notice.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Author                          : Jari_Honkanen
Comments                        : 
Company                         : MicroVision
Create Date                     : 2019:05:20 20:19:47-07:00
Modify Date                     : 2019:05:20 20:19:58-07:00
Source Modified                 : 
Subject                         : 
Language                        : EN-US
Tagged PDF                      : Yes
XMP Toolkit                     : Adobe XMP Core 5.6-c016 91.163616, 2018/10/29-16:58:49
Metadata Date                   : 2019:05:20 20:19:58-07:00
Creator Tool                    : Acrobat PDFMaker 19 for Word
Document ID                     : uuid:7723c1c8-7288-4c22-885a-15014474c506
Instance ID                     : uuid:34c46c4a-fe9e-4841-b69b-707c91447d32
Format                          : application/pdf
Title                           : PicoP Gen4 Programmer's Guide
Description                     : 
Creator                         : Jari_Honkanen
Producer                        : Adobe PDF Library 19.12.66
Keywords                        : 
Page Layout                     : OneColumn
Page Count                      : 34
EXIF Metadata provided by EXIF.tools

Navigation menu