30
Samsung Open Source Group 1 Dev boards for IoT ? From Minnow, Odroids, RPIs to ARTIK Philippe Coval Samsung Open Source Group / SRUK [email protected] Tizen Community Meetup NUMA Paris <2016-06-09> https://wiki.tizen.org/wiki/Category:Hardware

Development Boards for Tizen IoT

Embed Size (px)

Citation preview

Page 1: Development Boards for Tizen IoT

Samsung Open Source Group 1

Dev boards for IoT ?From Minnow, Odroids, RPIs to ARTIK

Philippe CovalSamsung Open Source Group / SRUK

[email protected]

Tizen Community Meetup NUMA Paris <2016-06-09>

https://wiki.tizen.org/wiki/Category:Hardware

Page 2: Development Boards for Tizen IoT

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

Page 3: Development Boards for Tizen IoT

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

Page 4: Development Boards for Tizen IoT

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

Page 5: Development Boards for Tizen IoT

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

Page 6: Development Boards for Tizen IoT

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

Page 7: Development Boards for Tizen IoT

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...

Page 8: Development Boards for Tizen IoT

Samsung Open Source Group 8

History

Page 9: Development Boards for Tizen IoT

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 ?

Page 10: Development Boards for Tizen IoT

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=”tizen­3.0.2015.Q2­common_20150630.1_common­wayland­efi­x86_64­sda.raw.bz2”lsblk ; disk=/dev/sdTODO # update devicebzcat "$file" | sudo dd of="$disk" bs=32M oflag=sy

Page 11: Development Boards for Tizen IoT

Samsung Open Source Group 11

iotivity-tizen-z1-gears-20160331https://vimeo.com/161074400#

Page 12: Development Boards for Tizen IoT

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

Page 13: Development Boards for Tizen IoT

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

Page 14: Development Boards for Tizen IoT

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

Page 15: Development Boards for Tizen IoT

Samsung Open Source Group 15

connected-tizen-20160131rzrhttps://vimeo.com/153263103#

Page 16: Development Boards for Tizen IoT

Samsung Open Source Group 16

SBC

+3.3V

Relay 5VFinder F34

30.22.7.005.0010

Vcc 2

?

GND 2

Vcc 1+ 5V

GND 1

Transistor NPNP2N 2222A

Resistor *

(*) MinnowMax 47 OHM (yellow, purple, black)

C

B

E

o

oo

o

GPIO

(*) RaspberryPI 180 OHM (brown, grey, brown)

Controlling a relay with GPIO

Page 17: Development Boards for Tizen IoT

Samsung Open Source Group 17

ARTIK just landed !

Page 18: Development Boards for Tizen IoT

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

Page 19: Development Boards for Tizen IoT

Samsung Open Source Group 19

iotivity-artik-20160606rzrhttps://vimeo.com/169937208#

Page 20: Development Boards for Tizen IoT

Samsung Open Source Group 20

Build Yocto poky with meta-artik

● Fetch sources:$ git clone http://git.yoctoproject.org/git/poky$ cd poky && git checkout jethro$ git clone ­b jethro https://github.com/resin­os/meta­artik

● Configure environment :$ . ./oe­init­build­env

$ cat<<EOF>>conf/bblayers.confBBLAYERS += "$(pwd)/meta­artik"EOF

● Build the whole OS:

$ MACHINE=artik10 bitbake core­image­minimal

Page 21: Development Boards for Tizen IoT

Samsung Open Source Group 21

Working on bootable SDcard

● Dump to SdCard, set switches and logindd if=build/tmp/deploy/images/artik10/*.artik­sdimg 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/meta­oic

$ cat<<EOF>>conf/bblayers.confBBLAYERS += "$(pwd)/meta­oic"EOF

– ...

Page 22: Development Boards for Tizen IoT

Samsung Open Source Group 22

Tizen builds ARTIK images

● Download for Artik10 (or Artik5):– http://download.tizen.org/snapshots/tizen/common/\

latest/images/arm-wayland/

– boot=tizen-common_*_common-boot-armv7l-artik10.tar.gz

– root=tizen-common_*_common-wayland-3parts-armv7l-artik.tar.gz

● Dump to Sdcard:$ lsblk ; disk=/dev/sdTODO # (adapt)$ git clone https://github.com/tizen­team/sdboot$ cd sdboot && git checkout ­b sandbox/pcoval/for/master$ sudo bash ­x ./mk_sdboot.sh ­f "$disk"$ sudo bash ­x ./mk_sdboot.sh ­w $disk $boot $ sudo bash ­x ./mk_sdboot.sh ­w $disk $root

Page 23: Development Boards for Tizen IoT

Samsung Open Source Group 23

Boot Tizen from SD card on ARTIK

● Plug Debug USB & Setup debug console : ls ­l /dev/ttyUSB*# crw­rw­­­­ 1 root dialout 188, 0 Jun  2 15:11 /dev/ttyUSB0screen /dev/ttyUSB0 115200

● Set U-Boot parameters to boot Sdcard :env default ­fset rootdev 1set rootpart 3set opts ${opts} init=/lib/systemd/systemd set opts ${opts} rootwait rootdelay=3boot

● Login as root:tizen$ cat /proc/versionLinux version 3.10.93­3.8­arm­artik10 (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

Page 24: Development Boards for Tizen IoT

Samsung Open Source Group 24

Want more ?

Page 25: Development Boards for Tizen IoT

Samsung Open Source Group 25

More boards

● SolidRun Humming board (TizenYocto Common & IVI)● Renesas RCAR_M2 (Tizen Common)● Atmel SAMA5d4 (Yocto BSP: meta-atmel)

– I/O Compatible with Arduino shields (LoRa?), no GPU

● Intel Edison : Yocto BSP● 64 bits boards : ?

– Juno from ARM (with MALI T624 GPU), 96 Boards, ..

– Odroid C2

– RPI3 ARMv8 (Yocto BSP : meta-raspberrypi)

● Many more ARM SBC but also MIPS or other archs ...

Page 26: Development Boards for Tizen IoT

Samsung Open Source Group 26

Pick yours ?

Page 27: Development Boards for Tizen IoT

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

Page 28: Development Boards for Tizen IoT

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

Page 29: Development Boards for Tizen IoT

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

Page 30: Development Boards for Tizen IoT

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, openshotVB,RR,NumaParis, Meetup

YOU !