PIXILAB Player is free software that makes a browser-based player or interactive kiosk out of an Intel NUC or other PC-style computer, for use as a Display Spot for Blocks. It's based on an enhanced version of the excellent Porteus Kiosk open source project.
This is how it works:
- Download a small ISO image and write it to a USB stick.
- Boot the target computer from this USB stick.
- Connect the computer to the Internet to download a web browser.
- Make some choices as to how the player should operate.
- A complete operating system, including the browser, is written either to a USB stick or an internal drive.
- Restart the computer.
This guide describes in detail how you can make a player for use as a Display Spot with Blocks. We recommend using an Intel NUC as the player. For basic applications in HD resolution, you can choose a low-cost, Celeron based model. For most applications, an i3-based model is sufficient. For demanding applications, select an i5 or i7-based model.
The player only needs CPU and a minimum of 4 GB of RAM to be installed. No hard drive/SSD is required. For 4k video playback, two RAM modules are recommended to optimize the memory bandwidth. Most modern NUCs runs SO-DIMM at 2666Mhz – check manufacturers recommendations for details.
Obtaining the Installer
Start by downloading the ISO image of PIXILAB Player version 4.1 . This file needs to be copied to a USB stick using Etcher. Make sure your target computer can boot from a USB stick. Download Etcher and use it to copy the ISO image onto your USB memory stick.
Starting the Installer
Connect the USB stick to the player computer, and turn on power. Press the designated key for entering BIOS or to choose the startup device (often F10, F2, F8, DEL or similar, as indicated on screen during startup). Choose the USB stick as the boot device. Turn off the Secure Boot option if applicable.
Since the browser isn't included in the ISO, you must connect the player computer to a network that has Internet access. Preferably, this network should support automatic network configuration (DHCP) to simplify the setup.
Once the installer ISO has started, you should see a screen like this one.
Assuming you're using a wired Ethernet connection, click the leftmost button.
Next, choose "Configure using DHCP". This assumes your network supports automatic client configuration. If not, you need to configure the network manually here instead.
Click "Next" if not using a proxy.
Select which browser to use. Chrome usually has the best performance. A confirmation/summary page appears, summarizing your choices so far, click Next.
A network connection will be established (this may take some time). If a license agreement is presented, read and agree to it. Your browser of choice will be downloaded.
At the next page, you have the choice of either doing all settings manually, or loading them in from a text file on a USB stick. The text file method is faster, while the manual method allows for greater flexibility in choosing the options you want.
If you want to use the text file method (recommended), copy the text shown below to another FAT32-formatted USB stick. Put it at the root level of the USB stick, naming it kiosk-config.txt.
connection=wired dhcp=yes browser=chrome homepage_append=mac homepage=http://pixi.guide/spot hide_mouse=yes disable_navigation_bar=yes disable_private_mode=yes homepage_check=PIXILAB Blocks Server can't be reached. Please check your network connection. wake_on_lan=yes disable_zoom_controls=yes additional_components=uefi.zip initrdpxe.xz persistence=session timezone=Factory primary_keyboard_layout=us kernel_parameters=panic=10
Choose "Load configuration from removable media". When prompted to do so (not before), insert the USB stick containing the kiosk-config.txt file, and load it. Adjust options as needed before proceeding.
In case you may need to show any time-related information on screen, set the value of the timezone parameter to your local zone, chosing one of these constants. Likewise, to use a physical keyboard with the player, specify the desired layout using the primary_keyboard_layout parameter, specifying one of these constants.
Finally, in case you need to configure a custom network time (NTP) server, add an ntp_server parameter. If not specified, the default 'pool.ntp.org' NTP server will be used to set the local time of the player, which is generally sufficient, assuming the players can reach the internet. Change the value to the server or pool you prefer.
If you choose to do the configuration manually, here are some options you most likely need to set.
- Enable Wake on LAN.
- Enable Home Page, setting the url to
http://pixi.guide/spotand selecting "Append string to the homepage: MAC address".
- Private mode; disable.
- Zoom Controls; disable.
- Navigation bar; disable.
- Mouse Cursor; Disable (with "Hide Permanently") if using a touch screen, else Enable.
- The additional components mentioned above (uefi.zip pixilab.xzm), where pixilab.xzm provides custom functionality such as power management and improved reliability under some network conditions.
The second point above (as well as the homepage option in the config file) assumes that you have a DNS that resolves
pixi.guide to your local Blocks server. If not, type the IP address (and possibly port number) of your server instead of
pixi.guide. Finally, press Next, which displays a "Setting report" with similar information as shown for the kiosk-config.txt file above.
Disable Automatic Fixes
Choose "Disable Porteus kiosk automatic fixes" to avoid updating to the player automatically, as doing so may interfere with normal operation.
Then click Next to proceed.
Specifying Installation Drive
Choose "Quick Format" and select target storage device in the list. This can be the device you're installing from, which will then be overwritten. Alternatively, it can be another USB memory stick or internal storage device, such as a hard drive or an SSD.
Click "Install System".
Making multiple players
While the above step is sufficient for installing PIXILAB Player onto one bootable device, it can be quite tedious to repeat this procedure if you want the same configuration on numerous players. To install the system onto multiple players, click the "Save ISO" button instead of the "Install System" button shown on the image above.
Once the new dialog appears, insert a removable, FAT32-formatted, USB drive. You will get a message saying something along the lines of "Removable device /dev/sda1 mounted under /media folder". Once you've seen this message, click "Save ISO" at the bottom of the dialog.
An ISO file will be placed at the root level of the USB drive. Use Etcher on another computer to flash any USB drive with the ISO, as described above.
Using Etcher you can flash several USB drives at the same time.
Booting the player over the network
If you're using our Linux based server, you can configure the server so that players can be booted over the network (PXE boot). This has the following advantages:
- No USB stick is needed for each player.
- The player resides only on the server, making it easy to update.
- The configuration of all players also resides in a single place, making it easier to apply changes without making new USB sticks.
In order to use this feature, your player PCs must support network boot based on the UEFI standard. This is supported by all reasonably modern NUC computers. Follow the instructions found here to enable network boot of players on your server.
Using the Display Spot
Connect the computer to your the network used by the Blocks server. For the above settings to work, you need to have at least a DHCP server on this network (which may be the one built into the Blocks Linux Server, or a separate one as often built into routers and gateways). Allow the player to restart and connect to the network. A browser window will open, attempting to access the specified URL (e.g.,
http://pixi.guide/spot in the example above). If everything works as expected, you should see the PIXILAB logo on screen with an ID string below, allowing you to add it as a Display Spot to Blocks.
When used with Blocks 2.2 or later, you can control the power of the player as well as the attached display. This works with most modern NUC models. In order to power up the player, make sure "wake on LAN" is enabled. This is specified in the configuration file above, but on some PCs this must also be enabled in the BIOS settings.
The display's power can be controlled in either of two ways:
- If the display supports CEC control (often called something else by display manufacturers), make sure this feature is enabled in the display's or TV's menu settings.
- If you're using a computer-style display, it may not support CEC. Instead it will typically turn itself off and on automatically as the computer is turned off/on. Make sure to enable this automatic power management feature of our display.
If you want to use the CEC method, you need to enter the BIOS settings of the NUC. Navigate to ADVANCED, DEVICES, ONBOARD DEVICES. Enable HDMI CEC Control and set Auto Turn On/Off TV as shown below. When set in this way, the NUC will tell the TV to turn on and off in unison with itself.
To make sure your NUC-based display spot restarts after a power failure, in BIOS settings select "Last State" under Advanced, Power, Secondary Power Settings, After Power Failure.
Booting your players from the Blocks server
As an alternative to booting from a USB stick, you may chose to boot the players over the network from your Blocks server. This method is known as network booting or PXE booting. Before attempting to boot the player from the server, make a USB stick as described above, and make sure your player works properly.
To enable network booting of you player, do the following (where individual steps may vary depending on the BIOS in the player computer):
- Open the player's bios settings by pressing the appropriate key during startup.
- Select "Boot USB Devices First" to make it boot from USB if one is attached.
- Select "Boot Network Device Last" to make it boot from the server if no USB key is connected.
- Select "Unlimited Boot to Network Attempts" to keep retrying if server can't be reached.
- Disable "legacy boot".
- Disable "secure boot".
- Select "UEFI:LAN:PXE" as the preferred boot device.
Follow this guide to configure your Blocks server for network booting.
Manage Pixilab Player Chrome Policies from the Blocks server
In some cases, when using the Chrome browser with PIXILAB Player, you may need to override the browser's policies. This can be done by storing a text file named chrome-policies.txt in the directory <your-blocks-root>/public/PIXILAB_Player (where "<your-block-root>" is the location of your Blocks root directory).The path to this file is then be specified in the kiosk-config.txt file used when creating the player the, as described above. This example assumes the default domain name pixi.guide (which in your case may be another domain name, or a hardcoded IP address).
The "chrome-policies.txt" file must contain the following policies (for live video capture to work). Replace pixi.guide below with your domain name or hardcoded IP address:
"VideoCaptureAllowed": true, "VideoCaptureAllowedUrls": [ "http://pixi.guide/", "https://pixi.guide/" ], "AudioCaptureAllowed": true, "AudioCaptureAllowedUrls": [ "http://pixi.guide/", "https://pixi.guide/" ], "OverrideSecurityRestrictionsOnInsecureOrigin": [ "http://pixi.guide/", "https://pixi.guide/" ],
More information on Chrome policies and syntax can be found here.
Create a developers version of the Pixilab Player
Follow this guide if you want to create a player with ssh and chrome developer tools enabled.