1. Samsung Open Source Group 1
Dev boards for IoT ?
From Minnow, Odroids, RPIs to ARTIK
Philippe Coval
Samsung Open Source Group / SRUK
philippe.coval@osg.samsung.com
Tizen Community Meetup NUMA Paris <2016-06-09>
https://wiki.tizen.org/wiki/Category:Hardware
2. Samsung Open Source Group 2
Embedded developer feedback
● Joined Tizen in 2013:
– worked with Intel and now Samsung
– Mostly as platform developer
● Hardware for platform development
– GNU/Linux based Operating Systems :
● Tizen, Yocto
● Demonstrated with IoT experiments
3. Samsung Open Source Group 3
Tizen is an Operating System
● For consumer electronics
– Open to application developers
– To be connected by 2020 (IoT)
● Free and Open Source Software
– Based on GNU/Linux
– Hosted by LinuxFoundation since 2011
– Platform developers welcome
4. Samsung Open Source Group 4
Single Board Computers (SBC)
● Are for developers not like end user products.
● Support lot of I/O, Peripherals GPIO
● Many use cases :
– DIY, Robotic, Server, Web, NAS, Gateway, IoT
– Use Tizen, or prototype custom profiles
● May support (many) Linux Operating Systems.
– Yocto/OpenEmbedded can be helpful
5. Samsung Open Source Group 5
Strategy
● Official Tizen support
– Binary released on Tizen.org : OS images and packages
– Built with Git Build System (GBS) and MIC
● ARMv7, x86 (32 or 64bits)
● Official Yocto Poky support
– Cross compiling the whole OS
– Can support extra Board Support Package (BSP)
● Tizen Yocto ports
– Forked from Poky dizzy version + BSPs
● Community ports
– Custom built kernel + device trees along official RootFs
6. Samsung Open Source Group 6
Few Hints
● Watch for legal concerns (drivers as binary blobs)
● Important for Tizen
– Kernel version
● Tizen:Common uses SMACK and LSTI kernel (3.14+)
– Graphics : X11 or Wayland ? Drivers / blobs ?
● Tizen:3 is focused on wayland
● Important for IoT
– Connectivity, Security
– Power Consumption, better use MCU and not Linux
7. Samsung Open Source Group 7
Internet of Things with
● IoTivity is a framework to provide
– Seamless Device to Device connectivity for IoT
– C/C++ library (FLOSS : Apache 2.0)
● Implementation of Open Standard
– Open Connectivity Foundation (OCF)
● Supported in Tizen:3.0, Yocto, others OS and MCUs
● Cross Platform, multi profiles & protocol agnostic
– IP, Ethernet, WiFi, Bluetooth, BLE, Zigbee, LTE...
9. Samsung Open Source Group 9
Allwinner based devices
● Achievements on Olimex OpenSource hardware
– Tizen:2.x hacks : RootFs from RDPQ's images
– Tizen:3.0:Common on OLinuXino micro (A20) TDC2014
● Allwinner SoC
– Support form linux-sunxi community : 3.4 (No Security)
– - : MALI GPU : no support for wayland
– + : Framebuffer
● https://wiki.tizen.org/wiki/Sunxi
● Next ? : Mainline kernel, C.H.I.P ?
10. Samsung Open Source Group 10
MinnowBoard Max
● Reference platform for Tizen:3.0:IVI (based on Common)
– Intel Based (E3815), Open Source Hardware
– https://wiki.tizen.org/wiki/MinnowMax
– Supports web apps (.wgt), Accelerated graphics...
● Download EFI x86-64 image :
– tizen-3.0.2015.Q2-common_20150630.1
– http://download.tizen.org/releases/milestone/tizen
● Dump to USB or Sdcard:
file=”tizen3.0.2015.Q2common_20150630.1_commonwaylandefix86_64sda.raw.bz2”
lsblk ; disk=/dev/sdTODO # update device
bzcat "$file" | sudo dd of="$disk" bs=32M oflag=sy
11. Samsung Open Source Group 11
iotivity-tizen-z1-gears-20160331
https://vimeo.com/161074400#
12. Samsung Open Source Group 12
Odroid U3 & XU4
● By HardKernel, ships Exynos CPU
– Note: Not on all Odroids (ie: C1 uses Amlogic)
– Uses signed u-boot mechanism : ARM Trust Zone
– ARM Mali GPU
● Official Tizen:3 support
– GPU support with DDK
– + : Closer to products
13. Samsung Open Source Group 13
Raspberry Pi
● RPI2 ARMv7 : efforts by S-OSG
– using Tizen Yocto (TDC2015)
– but could use GBS too
● RPI1 and RPI0 (ARMv6)
– so Tizen Yocto
● Graphics : BCM Video Core
– Userland : Legacy
● Does not work well with Wayland
– DRM : Mainline support
● To Upgrade Kernel, mesa, xwalk
14. Samsung Open Source Group 14
Raspberry Pi Zero
● Super cheap: 5 GBP
● Lacks connectivity but provides USB
● ARMv6 : Like PI1 : not supported on Tizen Infra
● So Tizen Yocto !
● More: OSIS2016
15. Samsung Open Source Group 15
connected-tizen-20160131rzr
https://vimeo.com/153263103#
16. Samsung Open Source Group 16
SBC
+3.3V
Relay 5V
Finder F34
30.22.7.005.0010
Vcc 2
?
GND 2
Vcc 1
+ 5V
GND 1
Transistor NPN
P2N 2222A
Resistor *
(*) MinnowMax
47 OHM
(yellow, purple, black)
C
B
E
o
o
o
o
GPIO
(*) RaspberryPI
180 OHM
(brown, grey, brown)
Controlling a relay with GPIO
18. Samsung Open Source Group 18
● Modules for IoT & Cloud
● ARTIK5 & ARTIK10 : Exynos5 based CPU(s)
– Multimedia : ARM MALI
– Connectivity :
● Ethernet, WIFI, Bluetooth, BLE, Zigbee, SigFox...
– Others : Security (ARM Trusted zone)
● ARTIK1 is MIPS
– Not appropriate to run Linux
19. Samsung Open Source Group 19
iotivity-artik-20160606rzr
https://vimeo.com/169937208#
21. Samsung Open Source Group 21
Working on bootable SDcard
● Dump to SdCard, set switches and login
dd if=build/tmp/deploy/images/artik10/*.artiksdimg of=...
● Add more features, for instance IoT
– Add meta-oic layer and iotivity package
$ cd poky
$ git clone
http://git.yoctoproject.org/cgit/cgit.cgi/metaoic
$ cat<<EOF>>conf/bblayers.conf
BBLAYERS += "$(pwd)/metaoic"
EOF
– ...
23. Samsung Open Source Group 23
Boot Tizen from SD card on ARTIK
● Plug Debug USB & Setup debug console :
ls l /dev/ttyUSB*
# crwrw 1 root dialout 188, 0 Jun 2 15:11 /dev/ttyUSB0
screen /dev/ttyUSB0 115200
● Set U-Boot parameters to boot Sdcard :
env default f
set rootdev 1
set rootpart 3
set opts ${opts} init=/lib/systemd/systemd
set opts ${opts} rootwait rootdelay=3
boot
● Login as root:tizen
$ cat /proc/version
Linux version 3.10.933.8armartik10 (abuild@w17)
(gcc version 4.9.2 (Tizen/Linaro GCC 4.9.2 2015.02) )
#1 SMP PREEMPT Fri Jun 3 23:11:09 UTC 2016
27. Samsung Open Source Group 27
Conclusion
● It's up to you to define what are your priorities :
– Cost
● RaspberryPI0, PI1, PI2, Odroid C1
– Connectivity, I/O, IoT :
● ARTIK5, ARTIK10, Atmel, PI3
– OSHW :
● Minnowboard Max, Olimex
– Align to Tizen platform developers
● Exynos SBCs : Odroid XU4 or ARTIK
28. Samsung Open Source Group 28
Summary
● Many single board computers on the market
– Most are supporting Linux or even Yocto
● Few are supported by Tizen project : x86 or ARM Exynos
● Others can be adapted somehow
– Accelerated graphics can be difficult for hobbyists
– Fallback on headless use cases (I/O, server, IoT)
● IoT is fun with IoTivity
– Interact with other devices or commercialized products
– ARTIK is focused on IoT use cases too
29. Samsung Open Source Group 29
References
● Entry point :
– https://wiki.tizen.org/wiki/Category:Hardware
● Keep in touch with online communities :
– https://wiki.tizen.org/wiki/Meeting
– https://wiki.tizen.org/wiki/Events
– https://developer.artik.io/forums/users/rzr
– https://blogs.s-osg.org/author/pcoval/
● Mentioned :
– https://wiki.tizen.org/wiki/FOSDEM
– https://wiki.tizen.org/wiki/MinnowMax
– https://wiki.tizen.org/wiki/Raspberry_Pi
30. Samsung Open Source Group 30
Thanks
https://wiki.tizen.org/wiki/User:Pcoval
Samsung OSG, SSI,
Intel, Allwinner, Atmel, HardKernel, ARTIK,
FLOSS Communities: Tizen, Yocto, IoTivity, Wayland
LinuxFoundation,OCF,
FlatIcons (CC BY 2.0), Libreoffice, openshot
VB,RR,NumaParis, Meetup
YOU !