Building Android Dental Camera System Android Builders Summit 2014 - - PowerPoint PPT Presentation

building android dental camera system
SMART_READER_LITE
LIVE PREVIEW

Building Android Dental Camera System Android Builders Summit 2014 - - PowerPoint PPT Presentation

Building Android Dental Camera System Android Builders Summit 2014 Rafael Coutinho - Software Engineer www.phiinnovations.com Agenda Scenario Motivation Project requirements Challenges and solutions Final solution


slide-1
SLIDE 1

www.phiinnovations.com

Building Android Dental Camera System

Android Builders Summit 2014 Rafael Coutinho - Software Engineer

slide-2
SLIDE 2

www.phiinnovations.com

Agenda

  • Scenario
  • Motivation
  • Project requirements
  • Challenges and solutions
  • Final solution
  • Summary
  • Q&A
slide-3
SLIDE 3

www.phiinnovations.com

Scenario

Existing system

  • Customized Ubuntu
  • Dental Software
  • Electronic health records of patients
  • Storing digital dental pictures
  • Simple image editing of the dental pictures
  • Some entertainment software included
slide-4
SLIDE 4

www.phiinnovations.com

Scenario

Hardware

  • Digital Camera
  • All in one with Intel Atom N455 (x86)
  • User Interaction using Air mouse
  • Multiple USB peripherals
  • Foot pedals (for camera activation)
  • Mouse inside a box
  • Multiple Pendrive Storage support
slide-5
SLIDE 5

www.phiinnovations.com

Performance Issues

Action Time to execute Boot 56s Save picture 6s View a Picture 2s Start image capture 5s

slide-6
SLIDE 6

www.phiinnovations.com

Motivation

  • Software evolution limitations
  • Needed performance improvements
  • User interface needed to improve
  • Got governmental funding to finance the product

upgrade

slide-7
SLIDE 7

www.phiinnovations.com

Project

Migrate the operating system to Android

  • Easy of use
  • UI similar to what dentists owners of Android devices already have
  • Easy to find skills for new softwares
  • Easy to find new softwares to integrate

Modernize the foot pedal activation device

  • To reduce power consumption
slide-8
SLIDE 8

www.phiinnovations.com

Selected Android ‘distribution’

Needed a stable and complete x86 Android distribution April 1st 2014 Intel provided an Android Code for Intel Architectures.

slide-9
SLIDE 9

www.phiinnovations.com

Selected Android ‘distribution’

slide-10
SLIDE 10

www.phiinnovations.com

Selected Android ‘distribution’

Decided to use Android-x86

  • Started in 2009
  • Supports Atom N455
  • Very active group
  • Pretty open
  • ICS 4.0.3
slide-11
SLIDE 11

www.phiinnovations.com

Challenges

Identify the most compatible target device configuration

  • EeePC
  • Wifi works fine
  • Power button
slide-12
SLIDE 12

www.phiinnovations.com

Video with Hardware Acceleration

Live Demo worked at first try. Problems solved?

  • Video card needed i915 driver
  • Default menuconfig had not this driver selected
  • Simply activated it
slide-13
SLIDE 13

www.phiinnovations.com

Video Capture Support

  • SAA7113
  • Worked smoothly at first
  • However Android by default uses only the internal PCI

camera

  • Configure USB cameras
  • Hard way - Investigating CameraFactory.cpp
  • Create /etc/camera.cfg
  • Format: ORIENTATION DEVICE
  • Added support to multiple cameras
slide-14
SLIDE 14

www.phiinnovations.com

Video Capture Support 2

Needed to have camera settings

  • Brightness / Contrast / Saturation…
  • Support in V4l2 but no support in Android’s Libcamera

implementation Added some custom methods to v4l2camera.cpp and in CameraHardware.cpp It also helped with the requirement of setting video norm (NTSC/PAL...)

slide-15
SLIDE 15

www.phiinnovations.com

Challenges

  • Multiple USB storage
  • ICS only supports 1 USB mounted
  • JB has support to multiple USBs
  • Migrate from Android 4.1 -> 4.0.3
  • Mainly code from system/vold
  • USB1 / USB2 / USB3 ...
slide-16
SLIDE 16

www.phiinnovations.com

Challenges

  • Existing foot pedal
  • Actually a wireless mouse inside a box
  • Consumes too much battery
  • Motion ~20mA
  • Quick Idle 1.3mA
  • Long idle 0.29mA
slide-17
SLIDE 17

www.phiinnovations.com

Challenges

  • New foot pedal solution
  • Using a Silicon Labs Si4010 that only

sends 10 radio comm per press

  • Idle it consumes < 10 nA (10x10⁻⁶mA)
  • Activated it consumes 10 mA during 3 seconds
  • Receiver using Si 4355 and uC

Freescale to communicate with USB

  • Android native code receives the

connection and broadcasts the event for the apps

slide-18
SLIDE 18

www.phiinnovations.com

Challenges

  • Support printers
  • Printer drivers on Android is really limited
  • SkyPrinter Service
  • Custom network service on a Windows or Mac computer
slide-19
SLIDE 19

www.phiinnovations.com

Application Layer

  • Home Application UI
  • Easier the access to

main system features

  • Access to Android

standard components

slide-20
SLIDE 20

www.phiinnovations.com

Application Layer

Electronic health records of the patients

slide-21
SLIDE 21

www.phiinnovations.com

Application Layer

Storing digital dental pictures

slide-22
SLIDE 22

www.phiinnovations.com

Application Layer

Image editing tool

slide-23
SLIDE 23

www.phiinnovations.com

Application Layer

Capture with camera settings

slide-24
SLIDE 24

www.phiinnovations.com

Performance Results

Action Previous Ubuntu Version Android Version Boot 56s 16s Save picture 6s < 0.02 s View Picture 2s < 0.01 s Start image capture 5s 1.4s

slide-25
SLIDE 25

www.phiinnovations.com

All done… but suddenly

  • 2 new All in one devices
  • New capture boards
  • DVD player
slide-26
SLIDE 26

www.phiinnovations.com

Video Capture Support 3

  • New devices received from the China supplier
  • New Video Capture version
  • GM7113c - Generic version of SAA7113
  • Not identified by the SAA7113 driver
  • Good news there is a new SAA7113 driver supporting that board
  • Bad news is, the driver is in kernel 3.2.0.48, our is 3.0.36
  • Had to port that driver, and it’s related files (v4l2 and EM28xx updates)
slide-27
SLIDE 27

www.phiinnovations.com

DVD Issue

  • Kind of ignored by Android system…
  • mainly because… it is old
  • But the previous product had it.
  • Apparently the main issue was to mount it and done.
  • Mount done, play was working but… no DVD menu

access etc.

slide-28
SLIDE 28

www.phiinnovations.com

DVD Solution

  • Needed a DVD application for Android (open)
  • Tried VLC
  • Played ok but not menu access
  • Tried XBMC
  • 1st part was to recompile XMBC for Android x86
  • Testing identified it works if DVD files were copied into a USB drive or

the internal memory

  • DVD drives must not be case sensitive!!!
slide-29
SLIDE 29

www.phiinnovations.com

Finally… we identified the main problem

  • Project done
  • Software got a great makeup
  • Operating system adapted and working
  • The end?
  • New delivery from china supplier, lots of devices with

Atom D2500

  • Graphic card is GMA3600 - no support (driver available)
slide-30
SLIDE 30

www.phiinnovations.com

Real issue of our customer

Is not software Is not operating system It is: Having an embedded system with no dedicated hardware

slide-31
SLIDE 31

www.phiinnovations.com

New project

Develop a dedicated hardware Solution uses Beagle Bone Black with a cape containing the extensions and devices needed

slide-32
SLIDE 32

www.phiinnovations.com

New project

slide-33
SLIDE 33

www.phiinnovations.com

New project

BBB is broadly available Mitigates the risk of having hardware changes Android for ARM is more common

slide-34
SLIDE 34

www.phiinnovations.com

Summary

The more challenges we have, the more fun (after the stress) Developing an embedded system without a dedicated hardware is not easy

slide-35
SLIDE 35

www.phiinnovations.com

Q&A

  • Now
  • Later - rafael.coutinho@phiinnovations.com
slide-36
SLIDE 36

www.phiinnovations.com

References

Android x86 - www.android-x86.org Phi Innovations - www.phiinnovations.com