Tutorial for Hardware on ARTIK with Tizen

From Tizen Wiki
Jump to: navigation, search

« back to Tizen_On_ARTIK

Contents

Introduction

This guide is to explain how to use hardware on ARTIK board(Exynos SoC) with Tizen OS.
Tizen OS is able to control ARTIK boards to utilize its hardware and easily fit to the needs of IoT environment.
Also this guide says based on ARTIK 10, if you use ARTIK 5 or other model, it is possible to have dependency.

Software

Before starting to read this tutorial Prepare Tizen kernel, plug-in and example apps to be ready for Tizen on ARTIK and check hardware functionalities on ARTIK with Tizen.

Kernel

Version

Currently, ARTIK is using the v3.10.93 kernel for Tizen

root:~> uname -r
3.10.93-00004-ga0fc1fa-dirty

Added feature

Providing Tizen functionalities based on v3.10.93 kernel, it was patched in order to provide Tizen. Here is list what patches were updated.

  • Bluetooth
  • Wifi
  • Camera
  • Audio
  • Back key
dts file was changed due to change power key as back key which can provide going back the app even though an app doesn't have software back key.

Build

You can build kernel following if you visit below link.
link => Getting Kernel If you build kernel or get pre-built kernel image, you can flash it into eMMC or SD Card using fastboot or lthor.

Plug-in patch

Purpose & List

Due to license agreement, we are not available to open below drivers. But provide it with EULA in specific site.

  • Mali DDK(GPU)

How to get and install the patch

The patch is needed to get rid of several errors. After you apply the patch, the Desktop starts working.

Tizen 3 Desktop on Artik.jpg

You can download the patch from here: http://developer.samsung.com/tizendevice/firmware
Download the patch according to your Artik version. Unzip it.

  • Start SDB on Artik. Enter the following command in Artik's console:

direct_set_debug.sh --sdb-set

  • Connect to Artik from host PC using SDB:

sdb connect IP_ADDRESS (IP-ADDRESS you can get in Artik's console using ifconfig)

  • Launch the .sh script on your PC.

./common_plugin_tizen3.0_artik7.sh

There is a small error in the script: sdb is launched with -d command which is no longer in sdb's command list. You can simply remove all -d flags from the script text, and all works OK.

  • After installing the patch you will see Artik's desktop, if you plug in a monitor using the Mini-HDMI cable.

Example Application

Purpose & List

IoT has diverse form factors which mean we are not sure what it needs.
Basically Tizen OS is able to utilize ARTIK hardware but you need to install demo apps if you want to check all of functionalities.
Once, Visit to the link which includes example apps.
link => example apps for Tizen on ARTIK.

Github tizen artik.png

How to get and install the patch

You can fine more information if you visit the site.
Here is steps how to run patches.

1. Take the all files from the git
2. Enable SDB

- From ARTIK : Enable SDB.

root:~> direct_set_debug.sh --sdb-set
[ 1705.897118] [c3] usb_mode usb0: slp_multi_usb: Cannot enable ''
[ 1705.902365] usb_mode usb0: slp_multi_usb: enable SUCCESS 'sdb'
SDB enabled
[ 1706.353927] [c0] usb_mode usb0: can't send usb_state[
3. Find script file (patch-demo)
4. Run patch(from host)

- From host PC : Run script.

$ sudo ./patch-demo

=> if the patch is done, the target would be rebooted automatically.
By the way, unless install driver(ddk...) demo patch will not be worked properly.
Here is menu-screen when you install example app all.

Sc 20160609.png

Test Binary

We used the below image to test and descripted this document.
https://download.tizen.org/releases/weekly/tizen/common_artik/tizen-common-artik_20160721.17/

Zypper Package Manager

If you want to develop something from inside the Artik's console, you may need to install Zypper Package Manager.

You may use the following simple shell script: https://github.com/tatyanavolkova/artik-tizen/blob/master/artik_tizen_zypper_install.sh

After that, you may install some useful packages.

Must-have:

  • man
  • nano
  • wget
  • openssh
  • git

For C/C++ programming:

  • make
  • gcc
  • gcc-c++
  • glibc
  • glibc-devel
  • binutils

For high-level programming (Python, Node.JS):

  • python
  • nodejs
  • nodejs-devel
  • nodejs-npm

Hardware

Camera

Prerequistes

Camera module

  • Camera / Gender

You can find specification of camera for each ARTIK boards(Supports YUV and MJPEG format only)
Prepare the camera module to attach each ARTIK board.
ARTIK 10 : https://www.artik.io/modules/artik-1020/
ARTIK 5  : https://www.artik.io/modules/artik-520/
ARTIK 7 : https://www.artik.io/modules/artik-710/ According to ARTIK series, it requires to have proper gender to connect between the board and camera.
As of now, ARTIK camera module is updated newly, Image sensor was changed into new camera module.
You can comapre the difference of camera module and gender here.
Wiki camera new.png

Wiki camera assemble.png
Left side of camera is new one and right one is old one.
In case of Gender, you need to use proper gender according to ARTIK serise. Each gender described ARTIK series(refer to red-colored squre).
Each ARTIK series need to use proper gender to use camera properly.

Plug-in

  • If you take a photo or movie, you can use camera app or console app but it needs to show up preview which is required to use DDK.

See this section.

How to check with console app for Camera

Console application is un-officially provided. It is not guranteed to work all functionalities in console application.

1. Create media folder and change group as owner

Create the folder which is /opt/usr/media

root@localhost:~# mkdir /opt/usr/media
root@localhost:~# chown owner /opt/usr/media/
root@localhost:~# ls -al /opt/usr/
total 36
drwxr-xr-x 6 root root 4096 Feb 12 23:51 .
drwxr-xr-x 13 root root 4096 Apr 26 2016 ..
drwxrwxr-x 4 root root 4096 Feb 12 23:40 apps
drwxr-xr-x 3 root root 4096 Apr 26 2016 data
drwx------ 2 root root 16384 Apr 26 2016 lost+found
drwxr-xr-x 2 owner root 4096 Feb 12 23:51 media
2. Run console app for camera

if you run camera console app(camera_test), you can check the created image in /opt/usr/media folder
Run camera_test console app and see the first menu. ARTIK is able to run only Rear Camera

root@localhost:~# su - owner
owner@localhost:~$ camera_test
=======================================
    CAMERA_TESTSUITE
=======================================
'1' Video Capture - Front Camera
'2' Video Capture - Rear Camera
'q' Exit
=======================================
Enter the media type:
3. Select surface

Tizen provides surface which are Overlay and Evas surface.
You can choose OVERLAY surface, EVAS surface, NONE.

Enter the Display Type
'1' OVERLAY surface
'2' EVAS surface
'3' NONE surface

Stillshot will be created if you press '1' .

=======================================
       Video Capture (Rear camera)
=======================================
'1' Stillshot test
'2' Multishot test
'3' Setting
'b' back
=======================================

Let's see how to take a photo.

Menu Status : 1
=======================================
    Video Capture (Rear camera)
=======================================
'1' Stillshot test
'2' Multishot test
'3' Setting
'b' back
=======================================
camera state changed 2 -> 3
open success [/opt/usr/media/Stillshot000.jpg]
write success [/opt/usr/media/Stillshot000.jpg]
camera state changed 3 -> 4

There is the file which is taken the photo by command.
You can get the file in /opt/usr/media folder.

owner:~> ls -al /opt/usr/media
total 624
drwxr-xr-x 2 owner root    4096 Jun 12 09:23 .
drwxr-xr-x 6 root  root    4096 Jun 12 09:17 ..
-rw-r--r-- 1 owner users 629887 Jun 12 09:50 Stillshot000.jpg

How to check with Native app for Camera

Regarding SDK with Application

You can download example apps from Tizen-ARTIK github
But here is steps how to make tpk file for the applications with Tizen Studio.

1. Install Tizen Studio

Visit to below link to install Tizen Studio, We tested with mobile-3.0 sample applications.

The link includes the explanation more about installation and How-To-Use.

2. Select application in Tizen Studio

Launch the Tizen Studio and go into File >> New menu to select camera app
You can see Camera sample project in Multimedia category
If you not able to see the templete, you need to check proxy setting in Tizen Studio.
Among the list of applications, you can find (Tutorial)Camera application, and select.
If you build the project and run the application on ARTIK.

Functionalities

- Preview
See the message when you press preview button in the camera application.

Camera preview started.

- Take a photo
If you press Take a photo button in camera application, you can see the message.

Image stored in the /home/owner/content/Camera/camXXXXXXXXXX.jpg

Application will be going back when you press power key(hardware key). We provide Back Key for app closing instead of Power Key on idle state.

See the picture how to work for Camera Application.
Camera1.png Camera preview.png Camera takeaphoto.png

Display

Prerequistes

LCD / HDMI

You can find specification of LCD for each ARTIK boards.
Prepare the proper LCD to attach each ARTIK board.
ARTIK 10 : https://www.artik.io/modules/overview/artik-10/
ARTIK 5  : https://www.artik.io/modules/overview/artik-5/
Only one output device will be displayed.

How to check with Native app for Display

Setting app is one of reference application to set up the configuration. If you flash Tizen OS into ARTIK, you can find the application on menu-screen.

1. Getting Setting app code

https://review.tizen.org/gerrit/#/admin/projects/profile/common/apps/native/settings
You can get the source from the git and build it to install rpm. Rpm is created as org.tizen.setting.armv7l for setting app.

2. GBS build

Visit to the link to know more about GBS build.
link => GBS build
If you done to build and created rpm newly, you can install by SDB.

sdb root on
sdb push tizen.setting-X.X.X-XX.armv7l /tmp
sdb shell rpm -Uvh --force --nodeps /tmp/tizen.setting-X.X.X-XX.armv7l
sdb shell tpk-backend -y org.tizen.setting --preload
3. Functionalities for Display.

Using Setting app, you can check display options such as configuration for brightness
Setting.png Setting display.png

Audio/Player

Prerequistes

Speaker/earphone

Prepare a speaker or earphone to hear the sound, there is audio interface on ARTIK boards.

Plug-in

If you play a video, it would be used GPU to play and need to install DDK plug-in. Install plug-in patch following this section

How to check with console app for Audio/Player

Console application is un-officially provided. It is not guranteed to work all functionalities in console application.

1. Copy test mp4 file into /home/owner folder

If you install example app from Tizen-ARTIK github, there is sample mp4 file to copy into the target.

2. Run console app to play and check the sound
  • Press 'a' key if you launch the player_test console application.
$ su - owner
 Password : tizen
owner@localhost:~$ player_test

=========================================================================================
                          Player Test (press q to quit)
-----------------------------------------------------------------------------------------
*. Sample List in [/opt/etc/mmts_filelist.ini]          nb. num. of handles
-----------------------------------------------------------------------------------------
[playback] a. Create    pr. Prepare     pa. Prepare async       b. Play         c. Stop         d. R
esume   e. Pause        un. Unprepare   dt. Destroy
[State] S. Player State
[ volume ] f. Set Volume        g. Get Volume   z. Set Sound type       k. Set Sound Stream Info.  [
 mute ] h. Set Mute     i. Get Mute
[audio eq] E. Set Audio EQ      H. Get Audio EQ
[position] j. Set Position      l. Get Position
[trick] tr. set playback rate
[duration] m. Get Duration
[Stream Info] n. Get stream info (Video Size, codec, audio stream info, and tag info)
[Looping] o. Set Looping        p. Get Looping
[display] v. Set display visible        w. Get display visible
[display] ds. Change display surface type
[overlay display] r. Set display mode   s. Get display mode
[overlay display] t. Set display Rotation       [Track] tl. Get Track language info(single only)
[subtitle] A. Set(or change) subtitle path
[subtitle] ss. Select(or change) subtitle track
[Video Capture] C. Capture
[next uri] su. set next uri.    gu. get next uri.       [etc] sp. Set Progressive Download      gp.
Get Progressive Download status
mp. memory playback
[audio_frame_decoded_cb_ex] X3. set audio_cb with sync  X4. set audio_cb with async

=========================================================================================
 >>> a
  • Put the path which is saved for test mp4 file.
*** input mediapath.
 >>> /home/owner/test_bunny.mp4
player_get_state returned [0]
1. After player_create() - Current State : 1
  • Press 'pr'key to prepare the test file
=========================================================================================
                          Player Test (press q to quit)
-----------------------------------------------------------------------------------------
*. Sample List in [/opt/etc/mmts_filelist.ini]          nb. num. of handles
-----------------------------------------------------------------------------------------
[playback] a. Create    pr. Prepare     pa. Prepare async       b. Play         c. Stop         d. R
esume   e. Pause        un. Unprepare   dt. Destroy
[State] S. Player State
[ volume ] f. Set Volume        g. Get Volume   z. Set Sound type       k. Set Sound Stream Info.  [
 mute ] h. Set Mute     i. Get Mute
[audio eq] E. Set Audio EQ      H. Get Audio EQ
[position] j. Set Position      l. Get Position
[trick] tr. set playback rate
[duration] m. Get Duration
[Stream Info] n. Get stream info (Video Size, codec, audio stream info, and tag info)
[Looping] o. Set Looping        p. Get Looping
[display] v. Set display visible        w. Get display visible
[display] ds. Change display surface type
[overlay display] r. Set display mode   s. Get display mode
[overlay display] t. Set display Rotation       [Track] tl. Get Track language info(single only)
[subtitle] A. Set(or change) subtitle path
[subtitle] ss. Select(or change) subtitle track
[Video Capture] C. Capture
[next uri] su. set next uri.    gu. get next uri.       [etc] sp. Set Progressive Download      gp.
Get Progressive Download status
mp. memory playback
[audio_frame_decoded_cb_ex] X3. set audio_cb with sync  X4. set audio_cb with async

=========================================================================================
 >>> pr
After player_prepare() - Current State : 2
  • Finally play the test file if you press 'b'key
=========================================================================================
                          Player Test (press q to quit)
-----------------------------------------------------------------------------------------
*. Sample List in [/opt/etc/mmts_filelist.ini]          nb. num. of handles
-----------------------------------------------------------------------------------------
[playback] a. Create    pr. Prepare     pa. Prepare async       b. Play         c. Stop         d. R
esume   e. Pause        un. Unprepare   dt. Destroy
[State] S. Player State
[ volume ] f. Set Volume        g. Get Volume   z. Set Sound type       k. Set Sound Stream Info.  [
 mute ] h. Set Mute     i. Get Mute
[audio eq] E. Set Audio EQ      H. Get Audio EQ
[position] j. Set Position      l. Get Position
[trick] tr. set playback rate
[duration] m. Get Duration
[Stream Info] n. Get stream info (Video Size, codec, audio stream info, and tag info)
[Looping] o. Set Looping        p. Get Looping
[display] v. Set display visible        w. Get display visible
[display] ds. Change display surface type
[overlay display] r. Set display mode   s. Get display mode
[overlay display] t. Set display Rotation       [Track] tl. Get Track language info(single only)
[subtitle] A. Set(or change) subtitle path
[subtitle] ss. Select(or change) subtitle track
[Video Capture] C. Capture
[next uri] su. set next uri.    gu. get next uri.       [etc] sp. Set Progressive Download      gp.
Get Progressive Download status
mp. memory playback
[audio_frame_decoded_cb_ex] X3. set audio_cb with sync  X4. set audio_cb with async

=========================================================================================
 >>> b
player_start returned [0]
=========================================================================================

You can see the video that you selected file on 'Menu-screen'.

How to check with Native app for Audio/Player

To check audio and player, you can download sample app which is player application.
You can download tpk file from github(refer to this section) or you can build in Tizen IDE.

  • Installation Tizen Studio

Refer to this section.

Functionalities

- Player video
Video file will be played if you save a video file in ARTIK. After installation of example apps(from github), a file will be placed in /home/owner to play if you press 'Player video' button.
- Stop/Pause/Resume video
During playing video file, it will be manipulated according the buttons.
- Play multiple sounds
Sample sound files are already saved, if you press 'Play multiple sounds' button, you can hear the sounds.

File: /home/owner/apps_rw/
org.example.player/res/test0.3gp
File: /home/owner/apps_rw/
org.example.player/res/test1.wav
File: /home/owner/apps_rw/
org.example.player/res/test2.wav

Player app.png Player play.png Player sound.png

Bluetooth

Prerequistes

Bluetooth device

Require bluetooth device to connect with ARTIK.

Plug-in

Driver patch is required which is similar to DDK.

How to check with console app for Bluetooth

Console application is un-officially provided. It is not guranteed to work all functionalities in console application.

Enable/Disable/Scan

If you type 'bt_unit_test' in serial to launch the bluetooth console application.

root:~> bt_unit_test

key_event_cb:8459()

tc_usage_print:1093() Key 0 : usage SET ADDRESS
tc_usage_print:1093() Key 1 : usage bt_initialize
tc_usage_print:1093() Key 2 : usage bt_deinitialize
...
tc_usage_print:1093() Key 17 : usage Automated test
tc_usage_print:1093() Key 18 : usage Initialize All
tc_usage_print:1093() Key 255 : usage FINISH


18
key_event_cb:8459() 18

__bt_initialize_all:2817() Initialize and set callback functions
tc_usage_print:1083() Key 0 : usage BACK

//Press number 18 and enter which can initialize the console app and press number 0 key to previous menu.
//Key 0(Usage BACK)

3
key_event_cb:6876() 3
...
  
//Enable BT Device number Key 3 : usage Adapter and press number 2 and enter key to enable BT device
//within 5 seconds, you can see the callback message with result of BT enable
test_input_callback:3192() returns BT_ERROR_NONE
__bt_adapter_le_state_changed_cb:1273() __bt_adapter_le_state_changed_cb
__bt_adapter_le_state_changed_cb:1274() result: BT_ERROR_NONE
__bt_adapter_le_state_changed_cb:1277() state: ENABLED
__bt_adapter_state_changed_cb:830() __bt_adapter_state_changed_cb
__bt_adapter_state_changed_cb:831() result: BT_ERROR_NONE
__bt_adapter_state_changed_cb:834() state: ENABLED

Pairing with BT Keyboard

To register bluetooth device like BT keyboard, you need to set address along to the device.

//Scanning BT Device around ARTIK when you press number Key 5 : usage bt_adapter_start_device_discovery
__bt_adapter_device_discovery_state_changed_cb:925() discovery_state: 0
__bt_adapter_device_discovery_state_changed_cb:928() No discovery_info!
__bt_adapter_device_discovery_state_changed_cb:925() discovery_state: 2
__bt_adapter_device_discovery_state_changed_cb:932() remote_address: 00:1F:20:24:FF:DC
__bt_adapter_device_discovery_state_changed_cb:933() remote_name: Logitech Tablet Keyboard IPD
__bt_adapter_device_discovery_state_changed_cb:934() rssi: 0
__bt_adapter_device_discovery_state_changed_cb:935() is_bonded: 0
__bt_adapter_device_discovery_state_changed_cb:936() service_count: 0
__bt_adapter_device_discovery_state_changed_cb:939() No uuids
__bt_adapter_device_discovery_state_changed_cb:925() discovery_state: 2
__bt_adapter_device_discovery_state_changed_cb:932() remote_address: 38:01:95:8E:8E:15
__bt_adapter_device_discovery_state_changed_cb:933() remote_name: [TV] UN75
__bt_adapter_device_discovery_state_changed_cb:934() rssi: 0
__bt_adapter_device_discovery_state_changed_cb:935() is_bonded: 0
__bt_adapter_device_discovery_state_changed_cb:936() service_count: 4
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 0000110A-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 0000110C-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 0000110E-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 00001200-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:925() discovery_state: 2
__bt_adapter_device_discovery_state_changed_cb:932() remote_address: 38:01:95:8E:8E:15
__bt_adapter_device_discovery_state_changed_cb:933() remote_name: [TV] UN75
__bt_adapter_device_discovery_state_changed_cb:934() rssi: 0
__bt_adapter_device_discovery_state_changed_cb:935() is_bonded: 0
__bt_adapter_device_discovery_state_changed_cb:936() service_count: 4
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 0000110A-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 0000110C-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 0000110E-0000-1000-8000-00805F9B34FB
__bt_adapter_device_discovery_state_changed_cb:942() uuid: 00001200-0000-1000-8000-00805F9B34FB
  
//Take the BT address that you want to connect ex(00:1F:20:24:FF:DC) and back to previous menu using Key 0 and set address after entering number Key 0

key_event_cb:6876() 0
tc_usage_print:650() Key 0 : usage SET ADDRESS
tc_usage_print:650() Key 1 : usage bt_initialize
...
0
key_event_cb:6876() 0
tc_usage_print:581() Key 0 : usage BACK
tc_usage_print:582() Input the address of remote device.(e.g., F6:FB:8F:D8:C8:7C)
 
00:1F:20:24:FF:DC
key_event_cb:6876() 00:1F:20:24:FF:DC
  
  
//According to BT device, it has a little difference, here is an example HID BT device. It requires PIN code to pair between ARTIK and HID BT device.
tc_usage_print:650() Key 0 : usage SET ADDRESS
tc_usage_print:650() Key 1 : usage bt_initialize
...
 
13
key_event_cb:6876() 13
...
//number Key 13 is the menu which can initialize for HID and back to previous menu using number Key 0
  
tc_usage_print:650() Key 0 : usage SET ADDRESS
tc_usage_print:650() Key 1 : usage bt_initialize
...
5
key_event_cb:6876() 5
...
//For PIN code, you can hook via btmon utility
@ PIN Code Request: 00:1F:20:24:FF:DC (0) secure 0x00
< HCI Command: PIN Code Request Reply (0x01|0x000d) plen 23 [hci0] 26.202081
Address: 00:1F:20:24:FF:DC (OUI 00-1F-20)
PIN length: 4
PIN code: 5266
> HCI Event: Command Complete (0x0e) plen 10 [hci0] 26.204358
PIN Code Request Reply (0x01|0x000d) ncmd 1
Status: Success (0x00)
Address: 00:1F:20:24:FF:DC (OUI 00-1F-20)
 
 
// If you put correct PIN code and you can see the message, so far ARTIK and HID BT device are bonded but not connected yet.
__bt_device_bond_created_cb:1364() Callback: A bond is created.
__bt_device_bond_created_cb:1365() Callback: The number of service - 2.
__bt_device_bond_created_cb:1369() Callback: service[1] - 00001124-0000-1000-8000-00805F9B34FB
__bt_device_bond_created_cb:1369() Callback: service[2] - 00001200-0000-1000-8000-00805F9B34FB
__bt_device_bond_created_cb:1371() Callback: is_bonded - 1.
__bt_device_bond_created_cb:1372() Callback: is_connected - 0.
  
// Back to previous menu and enter HID menu using number Key 13 and then press number Key 3 which is bt_hid_host_connect while waiting next action in HID BT device.
  
tc_usage_print:650() Key 0 : usage SET ADDRESS
tc_usage_print:650() Key 1 : usage bt_initialize
...
13
key_event_cb:6876() 13
 
tc_usage_print:650() Key 0 : usage BACK
tc_usage_print:650() Key 1 : usage bt_hid_host_initialize
...
3
key_event_cb:6876() 3
test_input_callback:6213() returns BT_ERROR_NONE
  
__bt_hid_host_connection_state_changed_cb:2042() __bt_hid_host_connection_state_changed_cb: called
__bt_hid_host_connection_state_changed_cb:2043() result: BT_ERROR_NONE
[12974.711542] [c3] hid-generic 0005:046D:B30A.0001: unknown main item tag 0x0
  
// Check HCI event after connection between ARTIK and HID BT Device
> HCI Event: Mode Change (0x14) plen 6 [hci0] 745.920506
Status: Success (0x00)
Handle: 12
Mode: Sniff (0x02)
Interval: 15.000 msec (0x0018)
> HCI Event: Number of Completed Packets (0x13) plen 5 [hci0] 746.089891
Num handles: 1
Handle: 12
Count: 1
> HCI Event: Mode Change (0x14) plen 6 [hci0] 751.589835
Status: Success (0x00)
Handle: 12
Mode: Active (0x00)
Interval: 0.000 msec (0x0000)
> HCI Event: Mode Change (0x14) plen 6

After launching a web brower and typing string to see.

Pairing with BT Speaker

To pair with bluetooth speaker, it has different steps to complete compared to BT speaker because of sound.
Supposing, setting address of bluetooth speaker is completed and explain from pairing step.
Go into bt_device_create_bond step and type '11'.

11
key_event_cb:8459() 11

tc_usage_print:1093() Key 0 : usage BACK
tc_usage_print:1093() Key 1 : usage bt_device_set_authorization (true)
tc_usage_print:1093() Key 2 : usage bt_device_set_authorization (false)
tc_usage_print:1093() Key 3 : usage bt_device_set_authorization_changed_cb
tc_usage_print:1093() Key 4 : usage bt_device_unset_authorization_changed_cb
tc_usage_print:1093() Key 5 : usage bt_device_set_connection_state_changed_cb
tc_usage_print:1093() Key 6 : usage bt_device_unset_connection_state_changed_cb
tc_usage_print:1093() Key 7 : usage bt_device_foreach_connected_profiles
tc_usage_print:1093() Key 8 : usage bt_device_is_profile_connected
tc_usage_print:1093() Key 9 : usage bt_device_set_bond_created_cb
tc_usage_print:1093() Key 10 : usage bt_device_set_bond_destroyed_cb
tc_usage_print:1093() Key 11 : usage bt_device_create_bond
tc_usage_print:1093() Key 12 : usage bt_device_create_bond_by_type
tc_usage_print:1093() Key 13 : usage bt_device_destroy_bond
tc_usage_print:1093() Key 29 : usage bt_device_le_set_data_length
tc_usage_print:1093() Key 30 : usage bt_device_le_data_length_changed_cb
tc_usage_print:1093() Key 255 : usage Select this menu to set parameters and then select the functio
n again.

//Please hold maximum 10 seconds.

__bt_device_bond_created_cb:1859() Callback: A bond is created.
__bt_device_bond_created_cb:1861() Callback: The number of service - 4.
__bt_device_bond_created_cb:1866() Callback: service[1] - 00001108-0000-1000-8000-00805F9B34FB
__bt_device_bond_created_cb:1866() Callback: service[2] - 0000110B-0000-1000-8000-00805F9B34FB
__bt_device_bond_created_cb:1866() Callback: service[3] - 0000110E-0000-1000-8000-00805F9B34FB
__bt_device_bond_created_cb:1866() Callback: service[4] - 0000111E-0000-1000-8000-00805F9B34FB
__bt_device_bond_created_cb:1869() Callback: is_bonded - 1.
__bt_device_bond_created_cb:1871() Callback: is_connected - 0.

// back to the menu after pressing '0' number key.

0
key_event_cb:8459() 0

tc_usage_print:1093() Key 0 : usage SET ADDRESS
....
tc_usage_print:1093() Key 7 : usage Opp
tc_usage_print:1093() Key 8 : usage Audio(ag, a2dp, call)
tc_usage_print:1093() Key 9 : usage Pan(nap, panu)
...
tc_usage_print:1093() Key 18 : usage Initialize All
tc_usage_print:1093() Key 255 : usage FINISH

// Enter Audio menu using '8' number key.
8
key_event_cb:8459() 8

tc_usage_print:1093() Key 0 : usage BACK
tc_usage_print:1093() Key 1 : usage bt_audio_initialize
tc_usage_print:1093() Key 2 : usage bt_audio_deinitialize
tc_usage_print:1093() Key 3 : usage bt_audio_connect
tc_usage_print:1093() Key 4 : usage bt_audio_disconnect
tc_usage_print:1093() Key 5 : usage bt_audio_sink_connect
tc_usage_print:1093() Key 6 : usage bt_audio_sink_disconnect
tc_usage_print:1093() Key 7 : usage bt_audio_set_connection_state_changed_cb
tc_usage_print:1093() Key 8 : usage bt_audio_unset_connection_state_changed_cb
tc_usage_print:1093() Key 9 : usage bt_ag_open_sco
tc_usage_print:1093() Key 10 : usage bt_ag_close_sco
tc_usage_print:1093() Key 11 : usage bt_ag_is_sco_opened
tc_usage_print:1093() Key 12 : usage bt_ag_set_sco_state_changed_cb
tc_usage_print:1093() Key 13 : usage bt_ag_unset_sco_state_changed_cb
tc_usage_print:1093() Key 14 : usage bt_ag_is_connected
tc_usage_print:1093() Key 15 : usage BT_AG_CALL_EVENT_IDLE
tc_usage_print:1093() Key 16 : usage BT_AG_CALL_EVENT_ANSWERED
tc_usage_print:1093() Key 17 : usage BT_AG_CALL_EVENT_DIALING
tc_usage_print:1093() Key 18 : usage BT_AG_CALL_EVENT_ALERTING
tc_usage_print:1093() Key 19 : usage BT_AG_CALL_EVENT_INCOMING
tc_usage_print:1093() Key 20 : usage bt_call_list_create
tc_usage_print:1093() Key 21 : usage bt_call_list_destroy
tc_usage_print:1093() Key 22 : usage bt_call_list_reset
tc_usage_print:1093() Key 23 : usage bt_call_list_add
tc_usage_print:1093() Key 24 : usage bt_ag_notify_call_list
tc_usage_print:1093() Key 25 : usage bt_ag_set_call_handling_event_cb
tc_usage_print:1093() Key 26 : usage bt_ag_is_nrec_enabled
tc_usage_print:1093() Key 255 : usage Select this menu to set parameters and then select the functio
n again.

// Press '1' number key to initialize audio.
1
key_event_cb:8459() 1

tc_usage_print:1093() Key 0 : usage BACK
tc_usage_print:1093() Key 1 : usage bt_audio_initialize
tc_usage_print:1093() Key 2 : usage bt_audio_deinitialize
....
tc_usage_print:1093() Key 26 : usage bt_ag_is_nrec_enabled
tc_usage_print:1093() Key 255 : usage Select this menu to set parameters and then select the functio
n again.

test_input_callback:5254() returns BT_ERROR_NONE

// Press '3' number key to connect audio.
3
key_event_cb:8459() 3

tc_usage_print:1093() Key 0 : usage BACK
tc_usage_print:1093() Key 1 : usage bt_audio_initialize
tc_usage_print:1093() Key 2 : usage bt_audio_deinitialize
tc_usage_print:1093() Key 3 : usage bt_audio_connect
tc_usage_print:1093() Key 4 : usage bt_audio_disconnect
....
tc_usage_print:1093() Key 255 : usage Select this menu to set parameters and then select the functio
n again.


test_input_callback:5270() returns BT_ERROR_NONE

If you finish the steps all, you can hear 'connected' from BT speaker.

How to check with Native app for Bluetooth

Setting app is able to check bluetooth functionalities
How to get/build/install the setting app.

Enable/Disable/Scan

Setting app has several menus and enter bluetooth to enable/disable/scan.
Let's see the UI and press enable button and scan button to see the bluetooth list near your seat.

Pairing with BT Keybaord

If you enable and scan bluetooth devices by setting app, you can go to pairing step.
Require password when you pair according to bluetooth device. In this case, I would explan pairing with password.

1. Select bluetooth device.

Click the bluetooth device if you see in the list.

2. Put password.

If the device requires password, it will show a popup to show password. Put the password by BT keyboard correctly.

3. Check pairing.

If pairing is completed, you can see the device in pairing list and check it the keyboard how it works.

Pairing with BT Speaker

1. Select bluetooth device.

Click the bluetooth speaker device if you see in the list.

2. Check pairing.

It will be automatically connected because it does not require password.
Bluetooth setting.png Bluetooth scan.png

WLAN

Prerequistes

Wifi device

Require AP to connect with ARTIK.

Plug-in

Driver patch is required which is similar to DDK.

How to check with console app for Wifi

Console application is un-officially provided. It is not guranteed to work all functionalities in console.

Enable/Disable/Scan/Connect

If you type 'wifi_test' in serial to launch the wifi console application.

root:~> wifi_test 
Test Thread created... //Press enter key to see the menu list.

1  - Wi-Fi init and set callbacks
2  - Wi-Fi deinit(unset callbacks automatically)
3 - Activate Wi-Fi device
4  - Deactivate Wi-Fi device
5  - Is Wi-Fi activated?
6 - Get connection state
7  - Get MAC address
8  - Get Wi-Fi interface name
9  - Scan request
a  - Get Connected AP
b  - Get AP list
c  - Connect
d  - Disconnect
e  - Connect by wps pbc
f  - Forget an AP
g  - Set & connect EAP
h  - Set IP method type
i  - Set Proxy method type
j  - Get Ap info
k  - Connect Specific AP
l  - Load configuration
m  - Save configuration
n  - Set configuration proxy and hidden
o       - Set EAP configuration
0  - Exit 
ENTER  - Show options menu.......
Operation succeeded!
1           // wifi init
Event received from stdin
Wifi init succeeded
Operation succeeded!
3          // wifi activate
Event received from stdin
Success to activate Wi-Fi device
Operation succeeded!
Wi-Fi Activation Succeeded
Device state changed callback, state : Activated
Background Scan Completed, error code : NONE
9          // wifi AP scan
Event received from stdin
Scan request succeeded
Operation succeeded!
Scan Completed from scan request, error code : NONE
b         // Scan list 출력
Event received from stdin
AP name : dnet1, state : Disconnected
AP name : dnet77, state : Disconnected
AP name : nail_24, state : Disconnected
AP name : AA-2.4G, state : Disconnected
AP name : MMFW_player, state : Disconnected
AP name : janus, state : Disconnected
AP name : setup, state : Disconnected
AP name : uready, state : Disconnected
AP name : ureadyintranet, state : Disconnected
AP name : ureadymobile, state : Disconnected
AP name : ureadymobile_2G, state : Disconnected
AP name : SWC_MMFW, state : Disconnected
AP name : Saturn, state : Disconnected
AP name : iptime, state : Disconnected
AP name : UXTDK02, state : Disconnected
AP name : SS_PC_2G, state : Disconnected
Get AP list finished
Operation succeeded!
c           // AP connect
Event received from stdin
Input a part of AP name to connect : dnet1    // Put SSID that you want to connect
Passphrase required : TRUE
Input passphrase for dnet1 : eeeeeeee          // Put password according to SSID
Success to connection request [dnet1]
Connection step finished
Operation succeeded!
Connection state changed callback, state : Association, AP name : dnet1
Background Scan Completed, error code : NONE
Connection state changed callback, state : Configuration, AP name : dnet1
RSSI level changed callback, level = 4
Wi-Fi Connection Succeeded
Connection state changed callback, state : Connected, AP name : dnet1 // Callback for status of AP connection.
Connection state changed callback, state : Connected, AP name : dnet1 

Let's see the connection.

root:~> ifconfig
eth0: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC>  mtu 1500
        ether 3e:9d:d5:24:23:b6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC>  mtu 1500
        inet 192.168.1.193  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ee1f:72ff:fed5:23d7  prefixlen 64  scopeid 0x20<link>
        ether ec:1f:72:d5:23:d7  txqueuelen 1000  (Ethernet)
        RX packets 18  bytes 2698 (2.6 KiB)
        RX errors 0  dropped 9  overruns 0  frame 0
        TX packets 27  bytes 3157 (3.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root:~>

How to check with Native app for Wifi

Setting app is able to check Wifi functionalities. How to get/build/install the setting app.

Enable/Disable/Scan/Connect

Setting app has several menus and enter Wifi to enable/disable/scan/connect.
Let's see the UI and press enable button and scan button to see the wifi device list near your seat.
Wifi setting.png Wifi scan.png

Graphics

Prerequistes

Plug-in

DDK patche is required to work properly. Read this section.

How to check with console app for Graphics

Provide below command to check whether Graphics works or not.

1. Test without GL

In case of DDK is not installed, it would be worked with software rendering.

root:~> elementary_test -to animation
2. Test with GL

In case of DDK is installed, it would be worked with GL.

root:~> elementary_test -to "GLview gears"

You can see the animation to show properly if Graphics is fine to work.

How to check with Native app for Graphics

To check Graphics, you can download sample app which is 'GLViewCube', 'GLViewShader', 'DALi' applications.
You can download tpk file from github(refer to this section) or you can build in Tizen IDE among the list of online samples.

  • Installation Tizen Studio

Refer to this section.

Graphics test app

You can test Graphics with sample apps from Tizen IDE which uses library such as GL or DALi
Gl screenshot.png Gl mapping.png

Storage

Prerequistes

SD card

ARTIK provides to insert SD card and use it.
Prepare SD card to see and use by Tizen native application.

How to check with Native app for Storage

Setting app is able to check Storage functionalities.
How to get/build/install the setting app. -TBD

Functionalities

If you launch setting app and enther 'Storage' menu to look at the information.
You can see the SD card information if it is mounted.