Investigating sensors support in a tablet



Similar documents
HP TouchPad Sensor Setup for Android

Android Sensors This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. CC-BY Google

Arbitration and Switching Between Bus Masters

Hardware Connections between Arduino and IMU Nori Wilkins Apr. 5, 2013

Request Submission Confirmation

E0-245: ASP. Lecture 16+17: Physical Sensors. Dipanjan Gope

AN141 SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES. 1. Introduction. 2. Overview of the SMBus Specification. 2.1.

USB Human Interface Joystick Demonstration Create a HID USB Device (sample Joystick) By Jared St.Clare, October 2009 Version 1

Colorfly Tablet Upgrade Guide

AN4156 Application note

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II)

TI ARM Lab 7 Accelerometers

MOVEIRO BT-200 Technical Information for Application Developer

VTOL UAV. Design of the On-Board Flight Control Electronics of an Unmanned Aerial Vehicle. Árvai László, ZMNE. Tavaszi Szél 2012 ÁRVAI LÁSZLÓ, ZMNE

Designing An Android Sensor Subsystem Pitfalls and Considerations

Future Technology Devices International Ltd

TWI module seems buggy in multi-master communications

ZX-NUNCHUK (# )

MODULE BOUSSOLE ÉLECTRONIQUE CMPS03 Référence :

Sensor Fusion Mobile Platform Challenges and Future Directions Jim Steele VP of Engineering, Sensor Platforms, Inc.

K.Prasanna NIT Rourkela,India Summer Internship NUS

Sam440ep-flex User Guide

Controlling EIB/KNX devices from Linux using USB

Dynamic Android Sensor HAL

Android Sensors. XI Jornadas SLCENT de Actualización Informática y Electrónica

DAKTON µ BOX MANUAL µbox User Manual 1

Newton2 Developers Guide

CB-OLP425 DEVELOPMENT KIT GETTING STARTED

2013 G Miller. 3 Axis Brushless Gimbal Controller Manual

Controlling EIB/KNX Devices from Linux using USB. Heinz W. Werntges. University of Applied Sciences Wiesbaden. Jens Neumann and Vladimir Vinarski

PrioVR Production Plan:

Modern Market Sensors in Smartphones: State-of-the-art How to make smartphones even more smarter? Conclusions

CIMS: Centralized Inventory and Maintenance Software

PiFace Real Time Clock user guide

Application Note IMU Visualization Software

Sensors & Motion Sensors in Android platform. Minh H Dang CS286 Spring 2013

Universal EXTension connector (UEXT)

ST19NP18-TPM-I2C. Trusted Platform Module (TPM) with I²C Interface. Features

UM I 2 C-bus specification and user manual. Document information

Camera Sensor Driver Development And Integration

Tutorial for MPLAB Starter Kit for PIC18F

AVR311: Using the TWI Module as I2C Slave. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

Serial port interface for microcontroller embedded into integrated power meter

An inertial haptic interface for robotic applications

ABOUT US GPS\ GLONASS FLEET MANAGEMENT SYSTEM

Accessing I2C devices with Digi Embedded Linux 5.2 example on Digi Connect ME 9210

Hardware monitoring on Fujitsu mainboards. Hardware monitoring on Fujitsu mainboards

The I2C Bus. NXP Semiconductors: UM10204 I2C-bus specification and user manual HAW - Arduino 1

Institute of Machine Learning and Robotic Lab. University of Stuttgart Universitätsstraße 38 D Stuttgart. Diploma Thesis Nr.

Global Monitoring + Support

Testing and Programming PCBA s during Design and in Production

Elettronica dei Sistemi Digitali Costantino Giaconia SERIAL I/O COMMON PROTOCOLS

How to Turn an AC Induction Motor Into a DC Motor (A Matter of Perspective) Steve Bowling Application Segments Engineer Microchip Technology, Inc.

Tegra Android Accelerometer Whitepaper

MEPTEC. Ecosystem for MCU, Sensors and MEMS for IoT Tony Massimini Chief of Technology Semico Research Corp. May 20, 2015

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Kernel Testing: Tool and Techniques. Matt Porter Texas Instruments 21 February 2013

NFCulT. An easy a nice tool that will make you have fun, or... make profit!

USB2.0 <=> I2C V4.4. Konverter Kabel und Box mit Galvanischetrennung

Future Technology Devices International Ltd. Technical Note TN_101

INPUT/OUTPUT ORGANIZATION

How to Convert 3-Axis Directions and Swap X-Y Axis of Accelerometer Data within Android Driver by: Gang Chen Field Applications Engineer

WIFI OBD GPS Tracker T356 User Manual

Intervid Fleet Management Fleet Telematics. Intervid, Inc Pegasus Court, Suite C Frederick, MD 21704

Software User Guide UG-461

Leveraging the Android Accessory Protocol

Linux Kernel Architecture

VIA Fedora Linux Core 8 (x86&x86_64) VT8237R/VT8237A/VT8237S/VT8251/CX700/VX800 V-RAID V3.10 Driver Installation Guide

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT

Future Technology Devices International Ltd. Mac OS X Installation Guide

Parcelhub - Linnworks Custom Courier Integration Script

How to Configure Intel X520 Ethernet Server Adapter Based Virtual Functions on Citrix* XenServer 6.0*

HP03 BAROMETER MODULE Version: 1.1

Completing Online WIC Training Modules

ni.com/sts NI Semiconductor Test Systems

SPI I2C LIN Ethernet. u Today: Wired embedded networks. u Next lecture: CAN bus u Then: wireless embedded network

AN2680 Application note

Pebble. E-Paper Watch for iphone and Android. 1 Button A. 4 Button B. 5 Button C. 2 Display. 6 Button D. 3 Charge Port

LOCAL INTERCONNECT NETWORK (LIN)

HDMM01 V1.0. Dual-axis Magnetic Sensor Module With I 2 C Interface FEATURES. Signal Path X

Bob Rathbone Computer Consultancy

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

eprocurement Procedures

FLYPORT Wi-Fi G

Building a Basic Communication Network using XBee DigiMesh. Keywords: XBee, Networking, Zigbee, Digimesh, Mesh, Python, Smart Home

AN249 HUMAN INTERFACE DEVICE TUTORIAL. Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1.

Embedded Linux Platform Developer

Power Factor The Basics

Raspberry Pi. Hans- Petter Halvorsen, M.Sc.

Configuration Software User Instruction

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction

VitalJacket SDK v Technical Specifications

Embedded Systems Design Course Applying the mbed microcontroller

Multiple clock domains

Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide

Transcription:

Investigating sensors support in a tablet Fabien lysias Goncalves December 9, 2014

Introduction Did not know exactly what to work on Asked gaby There, this doesn t work

Section 1 The LSM303DLH

Where to start? How does it work? Using an accelerometer

Where to start? Which accelerometer? From Archlinux s wiki: The Series 7 Slate, as far as I can tell uses a STMicroelectronics LSM303DLH I am currently trying to get that up and running. Once I do, I ll post instructions on the LSM303DLH page

Where to start? Which accelerometer? From Archlinux s wiki: The Series 7 Slate, as far as I can tell uses a STMicroelectronics LSM303DLH I am currently trying to get that up and running. Once I do, I ll post instructions on the LSM303DLH page This page was last modified on 13 June 2012, at 15:54

Where to start? Generalities about the device STMicroelectronics 3D acceleration sensor 3D magnetic sensor Deprecated Communicates using I 2 C

Where to start? People trying to write a driver December 2010 chethan.krishna@stericsson.com

Where to start? People trying to write a driver December 2010 chethan.krishna@stericsson.com September 2012 srinidhi.kasagar@st.com

Where to start? People trying to write a driver December 2010 chethan.krishna@stericsson.com September 2012 srinidhi.kasagar@st.com Ok, why not do it myself?

The device I 2 C multi-master, multi-slave serial bus 2 bidirectionnal lines, one data (SDA) and one clock (SCL) 7-bit address (in our case)

The device I 2 C communication example

The device st accel const s t r u c t o f d e v i c e i d s t a c c e l o f m a t c h [ ] = { {. c o m p a t i b l e = st, lsm303dlh a c c e l,. data = LSM303DLH ACCEL DEV NAME, }, [... ]

The device st accel const s t r u c t o f d e v i c e i d s t a c c e l o f m a t c h [ ] = { {. c o m p a t i b l e = st, lsm303dlh a c c e l,. data = LSM303DLH ACCEL DEV NAME, }, [... ] In Kconfig: c o n f i g IIO ST ACCEL 3AXIS t r i s t a t e S T M i c r o e l e c t r o n i c s a c c e l e r o m e t e r s 3 A x i s D r i v e r

The device st accel - side note https://www.kernel.org/doc/documentation/i2c/smbus-protocol: Some adapters understand only the SMBus (System Management Bus) protocol, which is a subset from the I2C protocol. st sensors module

Section 2 The magnetometer

What is it? Principle Vector with force/direction

Communicating with the device flag{4ll0} How are devices handled? s t r u c t i 2 c d r i v e r { [... ] i n t ( probe ) ( s t r u c t i 2 c c l i e n t, c o n s t s t r u c t i 2 c d e v i c e i d ) ; [... ] } Driver returns 0 if it wants to handle the device.

Communicating with the device How are devices handled? https://www.kernel.org/doc/documentation/i2c/writing-clients The probe function is called when an entry in the id table name field matches the device s name. s t a t i c const s t r u c t i 2 c d e v i c e i d s t a c c e l i d t a b l e [ ] = { { LSM303DLH ACCEL DEV NAME }, // l s m 3 0 3 d l h a c c e l [... ] }

Section 3 Do we have the right device?

Windows and Android What Windows says Not much!

Windows and Android What Windows says OK. What about Android?

Windows and Android What Android says u0 a1@android : / $ lsmod grep a c c e l h i d s e n s o r a c c e l 3 d [... ]

Windows and Android HID sensor? HID? drivers/iio/accel IIO?

Windows and Android HID sensor? HID? drivers/iio/accel IIO? IIO is not included in the kernel shipped with archlinux

Windows and Android Let s try in archlinux hid-sensor-hub registers as a HID driver dispatches to other spectific drivers $ dmesg g r e p p r o b i n g p r o b i n g ; name : HID SENSOR 200073 // i n hid s e n s o r a c c e l 3d. c p r o b i n g r e t u r n e d 0 // i n hid s e n s o r a c c e l 3d. c

Windows and Android What s left? $ dmesg grep vendor vendor i d : 1155 // i n hid s e n s o r hub. c From HID: 1155 STMicroelectronics $ dmesg grep p r o d u c t p r o d u c t i d : 37329 // i n hid s e n s o r hub. c Product IDs (PIDs) are assigned by each vendor as they see fit

Windows and Android What s left? $ dmesg grep vendor vendor i d : 1155 // i n hid s e n s o r hub. c From HID: 1155 STMicroelectronics $ dmesg grep p r o d u c t p r o d u c t i d : 37329 // i n hid s e n s o r hub. c Product IDs (PIDs) are assigned by each vendor as they see fit Enable device in /sys/bus/iio/devices/iio:devicex Read /dev/iio:devicex

Windows and Android Conclusion Questions?