Programming IoT Sensors with IoTDK on 96Boards Akira Tsukamoto, Linaro July 13, 2016
What is Linaro? ▣ Founded June 2010 ▣ Unites the Industry and Open Source community ▣ Work together on key projects ▣ Deliver great tools ▣ Reduce industry wide fragmentation and redundant effort ▣ Provide common software foundations ▣ http://www.linaro.org/about/ ▣ https://en.wikipedia.org/wiki/Linaro
Linaro’s Mission ~ Leading Collaboration in ARM Eco System ➢ ARM 向けソフトウェアの共同開発により ➢ ARM のエコシステムの充実をすすめ ➢ メンバー企業の競争力を高めることを目的とする Closed Source Applications Proprietary code 各社 差異化ポイント Internal patches ROI の向上 SoC specific code 共 同 Open Source 開 Future ARM tech porting 各社 イノベーションの 発 Kernel 共通課題 高速化が著しい Optimizing gcc Optimizing graphics, etc. ARM SoC
Linaro のメリット Linaro は、 ARM を利用したいセットベンダーが商品化するうえ で、必須である Android/RDK/Yocto/BSP などプラットフォーム 部分の最新技術をメンバー企業で共同開発する組織です。 具体的なメリット 最近はソフトの開発コストの増大が問題となっておりますが、すべて自 前で自社で開発するコストをメンバー企業で分担できる。 ARM のプラットフォーム開発に内部で参加していることで、顧客に対し て他社より最新の技術とプラットフォームの提供につながる。 グローバルノウハウを製品開発に活用することで、製品の魅力の向上 につながる。 マーケットイン (Time to Market) の早期化
Lead Projects Important Strategic Projects for the ARM Ecosystem ● Open Source ARM tools ● Power Management ● Kernel Consolidation across ARM SoCs ● Open Source Security (including OP-TEE) ● Reference Software Platform ● Software Defined Architecture - Openstack (LEG) ● Big Data on ARM (LEG) ● OpenDataPlane (LNG) ● Reference Digital Media Platform (LHG) ● Android Optimization on ARM (LMG) ● Project Ara (LMG)
Linaro Influence in the Linux Kernel Top Linux Contributors by Company: Kernel 4.5 1 Intel 1,734 (14.4%) 2 (Unknown) 975 (8.1%) ● Linux Kernels 3.5 - 4.5 May 2012 - 3 Red Hat 732 (6.1%) March 2016 4 Linaro 723 (6.0%) ● Over ¼ million total changesets 5 (None) 628 (5.2%) in these releases 6 Samsung 513 (4.3%) ● Linaro contributed >4.4% (11.2k) 7 SUSE 382 (3.2%) ● Linaro consistently in top five 8 Atmel 380 (3.2%) company contributors 9 Renesas 360 (3.0%) 10 IBM 346 (2.9%) Sources: http://www.remword.com/kps_result/index.php & https://lwn.net/Articles/679289/
Linaro Influence - Maintainerships ● Linux Kernel ● Linux Kernel (Continued) ● ARM SOC ● Register map abstraction ● CPUIdle drivers ● Sound / ASoC ● CPUFreq drivers ● DMA buffer sharing framework ● Common clock framework ● MMC/SD/SDIO framework ● Clocksource core ● Clocksource / Clockevent drivers ● Non-kernel projects ● Timekeeping / NTP ● ODP ● Char and Misc drivers ● LAVA ● Generic include / asm headers ● Debian ● KVMfor ARM/ARM64 ● DejaGNU ● Open Firmware / Flattened Device Tree ● LLVM ● Mailbox API ● GDB ● AVS drivers ● Gentoo ● Backlight class / subsystem ● KDE ● MFD framework ● Xdg-utils ● GPIO subsystem ● OpenJDK ● Pinctrl subsystem ● OpenEmbedded ● SPI subsystem ● OpenMandriva ● Regulator framework ● RapidIO subsystem
What’s 96Boards? ▣ Recognised low cost ARMV7/8 open specifications ▣ SoC independant ▣ Tailored for different segment requirements ▣ A single developer community, sharing solutions ▣ Open to all developers ▣ Hardware modules are portable across all 96Boards ▣ Fully upstream path available for 96Boards hardware
Cross vendor community hardware ▣ Generic hardware platform enabling SoC differentiation ▣ Key enabler for reference software platform ▣ Mezzanine ecosystem for peripherals & sensors Linaro Groups Consumer Enterprise 96Boards IoT Edition Edition Edition Editions Cortex-A & R/M Cortex-A Cortex-A
Target for 96Boards ▣ Commercial & higher education software development SW HW Hobbyist ▣ OEM/ODMs - for IoT, mobile, Pro compute, enterprise Software >60% ▣ Maker market - Robotics, UAV, HPC, of cost of SoC etc development** 20 million SW Sources: *IDC 2013, developers globally* **ITRS 2007, **IBS 2009
96Boards Specifications ▣ 96Boards CE - Published ○ Camera Interface Addendum ▣ 96Boards EE - Published ○ MicroATX Addendum
96Boards Use Cases ▣ Out of the box Single Board Computer for software developers ▣ Expansion and customization options for the maker community ▣ Low-cost Single Board Computer for embedded OEM products
*Qualcomm DragonBoard 410C LeMaker HiKey uCRobotics LeMaker Cello Bubblegum-96 AMD Opteron A1120 96Boards EE MediaTek Helio X20 OSAWG : Open SoC Qualcomm SD 600eval dev board with Android Working Group TV deca-core CPU *#5 in top 10 best Hacker Boards of 2015* linux.com June 2015
DragonBoard 410c Supported OSes Supported IoT Platforms
CE Boards Additional Specs Minimum 0.5GB DRAM (1GB+ for Android) ▣ Optional eMMC Flash Storage ▣ 802.11a/b/g/n + Bluetooth 4.0 LE ▣ 3 USB ports (1 OTG), minimum USB2.0 ▣ HDMI video output with audio ▣ microSD v3.0 socket ▣ Standardized Maker IO, DSI display & CSI camera interfaces ▣ Extended version for additional functionality ▣ 8-18V DC @ 2A power ▣
96Boards EE - Product Introduction LeMaker Cello AMD Opteron A1120, Quad-core A57 GBit Ethernet, USB 3.0, PCIe and SATA UEFI/ACPI firmware Supported by Linaro Reference Software Preorder today for July delivery $299 http://www.lenovator.com/product/103.html
96Boards EE - Product Specification ITEM SPECIFICATION SoC AMD Opteron A1100 Series CPU Quad-core ARM Cortex-A57 64 bit DRAM Two DDR3 SO-DIMM sockets SATA Two SATA ports USB Two USB 3.0 ports Console USB-micro port for console support Ethernet 1 GBe Ethernet PCIe x16 PCIe G3 slot JTAG 10-Pin JTAG headers Expansion Interface Linaro 96Boards Expansion slot Dimension Standard 160×120 mm 96Boards Enterprise Edition form factor Weight 500g
Google AOSP Support for HiKey 64 bit Octa Cortex-A53 96Boards is now available in AOSP public tree http://source.android.com/ A community board with ongoing support in AOSP will help developers and peripheral vendors to accelerate adoption in new Android versions
Platform Deployment Example ▣ 96Boards platforms offer standardised hardware platforms and reference software ▣ Generic hardware platform supporting implementations at ◆ Device - IoT specification ◆ Gateway - CE/EE specification ◆ Server - EE specification, running server infrastructure and cloud IaaS ▣ Reference software solutions ◆ End-to-end reference implementation for IoT use cases, tailored to implementation ◆ Device - SDK together with Mezzanine kits ◆ Gateway - SDK, middleware, application gateway ◆ Server - PaaS reference solution ▣
Mezzanine Boards and Modules ▣ Enable product design and application development ▣ Build once and run on any 96Boards Compliant hardware ▣ Developer support infrastructure ▣ Enables a developer community around peripheral devices for SoCs (Communications, Sensors, Displays & Cameras)
Eureka Marvell Andromeda Aerocore-2 Camera Mezzanine Automotive Box drones & Quadcopters Robomezzi STMicro and Seeed Mezzanines Dual-camera LeMaker 7” LCD module with touchscreen Display display
All the others...
How IoT Sensors are connected?
GPIO Separate line for each Sensor GPIO_C GPIO_B GPIO_A SoC Sensor B Sensor C Sensor A GPIO pins are especially good to use when programming simple sensors or actuators which only require single data line. For example: • LEDs, Relays, Buzzers, Buttons, Passive Infrared sensor (PIR) • Many more!
I2C Shared line for all Sensors SCL (clock) SDA (data) SoC Sensor A Sensor B Sensor C I2C pins are especially good to use when programming more complex sensors or actuators which require multiple data lines. For example: • Ultrasonic sensors, Stepper motors and servos, LCD screen, LED matrices • Many more!
Why IoTDK is good?
All different codes of Sensors on GPIO, I2C Requires implementing same code for every boards. Sensor programs X Sensor programs Y Sensor programs Z Sensor A GPIO Sensor A GPIO Sensor A GPIO Sensor B I2C Sensor C I2C Sensor B I2C Sensor C I2C Sensor B I2C Sensor C I2C API of GPIO, I2C API of GPIO, I2C API of GPIO, I2C Kernel and SoC Kernel and SoC Kernel and SoC 96Boards X Raspberry Pi 96Boards Y
All different codes of Sensors on GPIO, I2C (2/2) Requires implementing same code for every boards. Sensor programs X Sensor programs Y Sensor programs Z Sensor A GPIO Sensor A GPIO Sensor A GPIO Sensor B I2C Sensor C I2C Sensor B I2C Sensor C I2C Sensor B I2C Sensor C I2C APIs are all different API of GPIO, I2C API of GPIO, I2C API of GPIO, I2C Kernel and SoC Kernel and SoC Kernel and SoC 96Boards X Raspberry Pi 96Boards Y
Recommend
More recommend