Implementation

This guide provides an overview of Astrova-specific features and the APIs to implement such elements on the interactive.

Peripheral Bar

Astrova monitors are lighter and thinner than all previous monitors due to upgradeable components being removed and placed elsewhere. Peripherals are now contained in the modular Peripheral Bar attached to the monitor, which has a quick release feature allowing for fast replacements and upgrades.

Various configurations of the Peripheral Bar include the following:

  • Programmable LED accent lighting for visual notifications, animations and more

  • Bluetooth 5.0 for connectivity with the passenger’s Bluetooth headset.

  • 3.5mm analog audio jacks for wired headsets.

  • USB Type-C and legacy USB Type-A fast charging ports.

  • HD camera with a lens cover for passenger needs, such as video conferencing.

  • Illuminated buttons for passenger functions, such as calling for the flight attendant, turning on or off the reading light or screen, and adjusting media volume.

APIs

Peripheral Bar Information

Retrieves information on the peripheral bar, such as the bar type and supported bar attributes.

Parameters
ParameterTypeDescriptionRequired
commandName of the command. Set this to peripheralbarInfo.stringYes
appName of the application. Set this to seat_settings.stringYes
Example
{
  "command": "peripheralbarInfo",
  "app": "seat_settings"
}

Peripheral Bar Information Callback

Handles the response for retrieving peripheral bar information.

Interactives are automatically registered for this callback when they call peripheralbarInfo.

Interactives must ensure that peripheralbarState is set to 1. Otherwise, they will need to call peripheralbarInfo.

Parameters
ParameterTypeDescriptionRequired
commandstringName of the command. Set this to handleEvent.Yes
appstringName of the application. Set this to seat_settings.Yes
eventNamestringName of the event. Set this to peripheralbarInfo.Yes
peripheralbarStateinteger

State of the peripheral bar.

Values:

  • 0 — Not ready
  • 1 — Ready
  • 2 — Reboot
Yes
peripheralbarIdintegerUnique identifier of the peripheral bar.Yes
peripheralbarNamestringName of the peripheral bar.Yes
barAttributesarray of stringsAttributes of the peripheral bar.Yes
Example
{
  "app": "seat_settings",
  "command": "handleEvent",
  "args": {
    "eventName": "peripherialbarInfo",
    "peripheralbarState": 1,
    "peripheralbarId": 198,
    "peripheralbarName": "FA7561_01",
    "barAttributes": [
      "bluetooth",
      "dualAudio",
      "usbC1",
      "usbC2",
      "accentLight"
    ]
  }
}

Accent Light

The Accent Light on the Peripheral Bar can be used to visually enhance the passenger’s space and overall aircraft cabin and elevate an airline’s branding. It can be customized for purposes such as synchronizing with overhead lighting based on flight events or changing to a certain color when a passenger is calling for a flight attendant. The Accent Light can be controlled by the crew from the Crew Terminal, by the passenger manually, or programmatically, such as turning off when the screen turns off.

Astrova offers default standard Accent Light configurations that can be further customized. The default configuration allows for up to five static colors for different flight events or purposes:

  • Color 1 — Weight On Wheels, Preflight

    Includes System Ready/Power On, Preflight/Boarding, and Taxi Out

  • Color 2 — Weight Off Wheels, Inflight

    Includes Ascent, Cruise, and Descent

  • Color 3 — Weight On Wheels, Postflight

    Includes Taxi In and Postflight/Deplane

  • Color 4 — Night option

    Can be configured to be a different color during nighttime.

  • Color 5 — Attendant Call Notification

    Can be configured to change to a certain color for when a passenger calls for the flight attendant. This can help the flight attendant locate the passenger more easily.

The interactive does not handle color configurations. For custom color configurations, contact your Panasonic focal.

APIs

Set Accent Light

Provides the ability to turn the accent light on or off on an Astrova monitor.

Parameters
ParameterTypeDescriptionRequired
commandstringName of the command. Set this to setAccentLight.Yes
appstringName of the application. Set this to seat_settings.Yes
argsobjectAdditional arguments.Yes
args.stateinteger

Power on or off.

Values:

  • 0 — Off
  • 1 — On
Yes
Example
{
    "command": "setAccentLight",
    "app": "seat_settings",
    "args": {
        "state": 1
    }
}

Set Accent Light Callback

Callback event triggered when setAccentLight is called and notifies whether accent light is turned on or off.

The interactive must register for the ACCENTLIGHT_POWER_SETTING event to get the value.

Parameters
ParameterTypeDescriptionRequired
commandstringName of the command. Set this to handleEvents.Yes
appstringName of the application. Set this to events.Yes
argsobjectAdditional arguments.Yes
args.eventIdintegerUnique event identifier.Yes
args.namestringName of the callback. Set this to ACCENTLIGHT_POWER_SETTING.Yes
args.paramsarray with integer

Event parameters. Indicates if accent light is turned on or off.

  • [0] — On
  • [1] — Off
Yes
Example
{
  "command": "handleEvents",
  "app": "events",
  "args": {
    "eventId": 2192,
    "name": "ACCENTLIGHT_POWER_SETTING",
    "params": [1]
  }
}

Accent Light State Callback

Callback event that is triggered during initialization and notifies whether the ability to turn the accent light on or off is enabled.

The interactive must register for the ACCENTLIGHT_STATE_SETTING event to get the value.

Parameters
ParameterTypeDescriptionRequired
commandstringName of the command. Set this to handleEvents.Yes
appstringName of the application. Set this to events.Yes
argsobjectAdditional arguments.Yes
args.eventIdintegerUnique event identifier.Yes
args.namestringName of the callback. Set this to ACCENTLIGHT_STATE_SETTING.Yes
args.paramsarray with integer

Event parameters. Indicates if the ability to turn the accent light on or off is enabled.

  • [0] — Disabled
  • [1] — Enabled
 

Spatial Audio

Spatial Audio provides an immersive 360° audio experience to complement the 4K Astrova display, engaging passengers as if they were in a movie theater. It supports all media types, such as movies, music, games, and live events, and all headphone types, including both airline- and passenger-provided headphones.

Spatial Audio is available on Astrova by default, but to enable it, the interactive must be running Android 5.1 or higher and media content must be stereo audio encoded.

Software Requirements

The following components are required to enable Spatial Audio:

Android 8 systems

  • android_s820 — version 0.7.20.0.3 or higher

  • msm_seatcore_apps — version 05.20.00.02 or higher

  • xplayer_msm — version 01.109.00.1 or higher

  • paxus3air_freescale — version 07.12.00.1048153 or higher

  • pac_io_framework_armv7a9 — version 04.01.0.01

  • android_pac_apps — version 01.94 or higher

Android 5.1 systems

  • freescale_seatcore_apps — version 05.20.00.02 or higher

  • android — version 04.79.0.00 or higher

  • xPlayer_imx — version 01.109.00.1 or higher

  • paxus3air_freescale — version 07.12.00.1048153 or higher

  • pac_io_framework_armv7a9 — version 04.01.0.01

  • android_pac_apps — version 01.94 or higher

APIs

Enable Spatial Audio

To enable Spatial Audio in Android applications, applications must bind to the SpatialAudio service through ISpatialAudio.aidl.

Example:

package aero.panasonic.spatialaudioservice;
// Declare any non-default types here with import statements
interface ISpatialAudio {
    void setSpatialAudioEnabled(in Bundle args);
    boolean isSpatialAudioEnabled();
    void setSpatialAudioDialogBoostEnabled(in Bundle args);
    boolean isSpatialAudioDialogBoostEnabled();
}

Arguments for setSpatialAudioEnabled should include the following parameters:

ParameterTypeDescriptionRequired
contextstringContext name.Yes
correlationIdstringUUID of the application.Yes
enabledshortDetermines if spatial audio is enabled or disabled.Yes
Example
private val KEY_CONTEXT = "context"
private val KEY_CORRELATION_ID = "correlationId"
private val KEY_ENABLED = "enabled"
private val mConnection =
    object : ServiceConnection {
        override fun onServiceConnected(className: ComponentName, service: IBinder) {
            mService = ISpatialAudio.Stub.asInterface(service)
            mBound = true
            Log.d(TAG, "Bound to spatial audio service")
            getSpatialAudioState()
        }

        override fun onServiceDisconnected(arg0: ComponentName) {
            mBound = false
            Log.d(TAG, "Disconnected from spatial audio service")
        }
    }

fun setSpatialAudioEnabled(enabled: Boolean) {
    try {
        if (mBound) {
            var bundle = Bundle()
            bundle.putCharSequence(KEY_CONTEXT, "spatial_audio_test_app")
            bundle.putCharSequence(KEY_CORRELATION_ID, mUuid)
            val value: Short =
                when (enabled) {
                    true -> 1
                    false -> 0
                }
            bundle.putShort(KEY_ENABLED, value)
            mService.setSpatialAudioEnabled(bundle)
        }
    } catch (e: RemoteException) {}
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    var intent = Intent()
    intent.setClassName(
        "aero.panasonic.spatialaudioservice",
        "aero.panasonic.spatialaudioservice.SpatialAudioService"
    )
    bindService(intent, mConnection, Context.BIND_AUTO_CREATE)
}

Network Shared Storage

Network Shared Storage (NSS) is the next generation of Virtual Local Storage (VLS) and provides redundant Audio and Video on Demand (AVOD). It reduces the risk of dark seats and flights, which is when media is unavailable for some or all seats during a flight. NSS is provided on the seat-end and supports media resolutions up to and including 4K and 1080p.

Two NSS versions are available, but only one version can be available on the aircraft at a time:

  • A 4TB storage size supporting media with resolutions up to 1080p.

  • A 3TB storage size supporting media with resolutions up to 4K. This smaller storage size is due to 4K media being more streaming-intensive than media at 1080p and lower.

For full Astrova systems, NSS is optional and is not activated by default. Additionally, VLS is not available. NSS is currently only for AVOD and is not a full replacement for the headend server.

NSS is not available on hybrid Astrova systems, such as Astrova seat-ends used with an X Series headend and distribution, and X series systems. Instead, VLS is available. NSS and VLS cannot both be configured on an aircraft.

Media

Media to be stored on the NSS is loaded first onto the headend server, then from the headend onto the seat-end in content subsets called clusters.

A cluster is a group of seats, where each seat is a node with local memory and stored content is shared between nodes within each cluster:

NSS media flow diagram
NSS media flow diagram

Both the headend server and NSS in the seat-end provide media to the customer. When a passenger requests media, the system searches for the media in either location. If media is not found in one location, then the system will search the other, providing backup redundancy.

If the headend server becomes unable to provide media to the seats, NSS will still be available to provide AVOD to the seats and prevent a dark flight. However, if NSS does not have a media option that was on the headend server, then that option will no longer be listed. During this event, if a passenger was in the middle of watching content that is still available in NSS, then the content will resume after a pause. However, if NSS did not have the media option, then a message displays to indicate that the content is no longer available.

OLED Burn-In and Image Retention Reduction

Astrova OLED technology provides the latest best picture quality and entertainment experience for passengers, including better visibility in different lighting conditions and reduced motion blur. However, compared to LCD monitors, OLED monitors are more susceptible to image retention over time if used under certain, abnormal usage conditions.

Image retention refers to the temporary ghostly appearance of bold static elements on the screen. This artifact disappears over time when the GUI avoids continually displaying the same content that causes the retention, or when OLED recycles itself after the monitor is powered down.

To reduce image retention and burn-in, Panasonic provides the following guidelines, features and procedures:

  • Astrova GUI Design Standards

    This guide is strongly recommended for airlines to follow when creating their own GUIs and applications. Panasonic provides OLED protection in the hardware, but implementing these design standards in the GUI can further reduce the risk of image retention over time.

    It is required for all GUIs to turn the screen off after five minutes of inactivity while in the air, enable an “active screensaver” while on the ground if the screen is kept on for longer than ten minutes, and vary map elements in autoplay. In addition, GUIs should minimize static interface elements and use darker backgrounds.

    For more information, refer to the Astrova GUI Design Standards guide.

  • Built-in image retention and burn-in hardware and software

    All Astrova OLED panels have built-in adjustment to each pixel on the screen where each pixel area is adjusted to display the same brightness, depending on the recorded data.

  • An audit team for GUIs and applications

    Panasonic has a dedicated UX team to review GUIs and applications that airlines or third parties provide when they design new software. This ensures GUIs and applications are complying with the GUI standards to prolong the life of the OLED panel.

  • Screensaver mode

    Astrova monitors are equipped with screensaver software to help prevent image retention and burn-in. The software also requires the screen brightness to continually decrease and eventually turn the display off when the screen is unused for a period of time.

    This feature is part of the CSO standard and cannot be disabled.

  • OLED Mitigation Service for Automatic Logo Detection

    Astrova monitors have static image detection software that detects static images that continuously display for an extended period of time and reduces the brightness of that area to prevent image retention. Examples of static images are broadcast logos or news captions. If the entire screen is a static image, the brightness will reduce for the entire screen.

4K Media and Widevine Integration

All Astrova monitors in full Astrova systems support 4K media playback. In hybrid Astrova sytems, which has an Astrova seat-end and an X series headend and distribution, 4K media cannot be streamed from the headend and must be streamed from the seat-end.

Widevine provisioning is the process of a Widevine device being authenticated by Google to acquire and install a certificate. This is application-specific starting from Android 8.0 and required on all Astrova units, which all come with a unique Widevine keybox that is permanently installed.

Certificate storage is erased every time an Astrova monitor or seat box is newly installed or factory reset. This means the Widevine certificate must be reinstalled whenever this occurs.

For information on supporting Widevine media, refer to the Widevine Player Library Developer Guide.