DESK-MX6-AN-0001: Crank Storyboard engine and application

From DAVE Developer's Wiki
Revision as of 07:10, 11 May 2021 by U0002 (talk | contribs) (Script for automatic application startup)
Jump to: navigation, search
Info Box


200px-Emblem-important.svg.png

This application note has been validated using the kit version in the History table.

History[edit | edit source]

Version Date Development Kit version
1.0.0 May 2021 DESK 1.0.0

Introduction[edit | edit source]

Crank Storyboard is a cross-platform embedded GUI development framework, which will help the Customer to create aspirational GUI experiences. Crank Software has become the trusted embedded GUI framework across the wearables, industrial, healthcare, smart home, and appliances industries.

DAVE AXEL Lite SOM is able to run Crank Storyboard engine in its bundled root file system: the following Application Note shows how to integrate the sbengine runtime and then executing the Storyboard application in the targte platform.

Installing Crank Storyboard[edit | edit source]

First of all, watch and follow the Getting started with Storyboard page for learning how to install and learn the Crank Software Storyboard.

Installing sbengine in the root file system[edit | edit source]

For installing the right DESK-MX6-L BSP version, create a proper SD card or download the already built version present into our mirror cloud services.

SD card[edit | edit source]

The proper SD card image should be selected, i.e.: desk-image-qt5-desk-mx6.sdcard.gz and then create the SD card using - for example - Linux or Windows balenaEtcher tool.

runtime installation[edit | edit source]

From the Storyboard Engine directory of your Storyboard installation extract and copy the runtime directory

linux-imx6yocto-armle-opengles_2.0-obj

in the target root file system.

For example, if the runtime has been copied in the SD card first partition, copy it in the /usr/share/crank/runtimes directory

root@desk-mx6:~# mkdir /usr/share/crank
root@desk-mx6:~# mkdir /usr/share/crank/runtimes
root@desk-mx6:~# cp -aR /run/media/mmcblk0p1/linux-imx6yocto-armle-opengles_2.0-obj/ /usr/share/crank/runtimes
root@desk-mx6:~#

Then, copy a Storyboard exmaple in another directory, for example:

root@desk-mx6:~# mkdir /usr/share/crank/apps
root@desk-mx6:~# cp -aR /run/media/mmcblk0p1/Launcher2016_FullScreen /usr/share/crank/apps
root@desk-mx6:~#

touchscreen[edit | edit source]

Storyboard sbengine uses mtdev for accessing the touchscreen device. The mtdev library is then required.

For adding the mtdev package it is enough to build it with Yocto following the Building_additional_packages instructions

Once the package has been built, just install it with rpm

root@desk-mx6:~# rpm -i mtdev-1.1.5-r0.cortexa9hf_neon.rpm
root@desk-mx6:~#

thus enabling the touchscreen device.

You can find the package built here for your convenience.

Script for automatic application startup[edit | edit source]

A simple shell script can be used for starting the sbengine runtime and the selected application

  • storyboard_launcher.sh
set -e

echo "Starting Storyboard Application..."
echo -e '\033[9;0]' >> /dev/tty1
echo 0 >> /sys/class/graphics/fb0/blank

export FB_MULTI_BUFFER=3

export SB_APP=/usr/share/crank/apps/Launcher2016_FullScreen/Launcher2016_FullScreen_NoCircles.gapp

export ENGINE=/usr/share/crank/runtimes/linux-imx6yocto-armle-opengles_2.0-obj
export SB_PLUGINS=$ENGINE/plugins
export LD_LIBRARY_PATH=$ENGINE/lib

$ENGINE/bin/gstreamer-backend &
$ENGINE/bin/sbengine -omtdev,device=/dev/input/event0,points=1 -orender_mgr,multisample=0,scale=aspect $SB_APP

systemd service[edit | edit source]

A systemd service has to be created for starting the script, for example:

/etc/systemd/system/storyboard.service

and the service contains the initialization parameters:

[Unit]
Description=Storyboard service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=0
RestartSec=1
User=root
ExecStart=/etc/init.d/storyboard_launcher.sh

[Install]
WantedBy=multi-user.target

and then start/enable the service:

systemctl enable storyboard.service

Results[edit | edit source]

At the next reboot, the service will start sbengine with the selected application:


...
...
[  OK  ] Started Terminate Psplash Boot Screen.
[  OK  ] Started Storyboard Service.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttymxc2.
[  OK  ] Reached target Sound Card.
[  OK  ] Started Hostname Service.

NXP i.MX Release Distro 4.14-sumo desk-mx6 ttymxc2

desk-mx6 login:
Crank Software Storyboard Launcher demo