Implementation of cellular type approval software for an open source embedded device Thesis presentation Author: Mathias Nyman Supervisor: Professor Riku Jäntti Instructor: D.Sc. (Tech) Konsta Karsisto
Content Background Requirements Research aspects Cellular type approval, device hardware and software stack Implementation Software testing and quality Conclusions
Background Since 2005 Nokia has released a line of Linux based mobile Internet tablets. Tablets lack cellular connectivity, and therefore all cellular related type approval software. Task to implement cellular test cases to the existing type approval software used in Internet tablets. Should be tested and run on a prototype device with added cellular capabilities
The Internet tablets 770N800 N810
Requirements Control cellular functionality, such as: Dial/answer calls without audio routing GSM/UMTS/Dual mode Packet data settings Network selection, list available operators SIM card status Device may not be connected to any external device during testing. Software and user interface must be run on the device itself.
Research aspects What hardware and software interfaces are available to control the cellular engine? Designing the software requires knowledge about the intended usage. How are type approval tests conducted, what is the purpose and who will perform them. Ways to ensure sufficient quality and reliability. Understanding and planning testing
Cellular type approval Type approval required before allowed on market. CE mark in European economic area Type approval testing done in-house after each HW iteration. Interoperability (IOP) Electromagnetic compatibility (EMC) including emission, immunity and ESD
Device hardware Two separate engines with their own processor, RAM and flash memory ARM based Application engine, cellular engine considered black box. SSI interface connecting the engines
Software stack Software stack to control cellular engine D-Bus IPC cellular software daemon (CSD) ISI/Phonet SSI driver in Linux kernel Most of the required functionality could be implemented using the D-Bus interface
Implementation ARM based, maemo provided SDK, written in C D-Bus IPC interface satisfactory for most cases Blocking functions used mostly, D-Bus signals used for cellular initiated communication Network selection required more elaborate D-Bus usage including both blocking and non-blocking calls
Implementation 2/2
User interface GTK based, graphical UI. Common in Linux distributions Touchscreen as input Usability not key concern as the software is only used in type approval testing laboratory by a few in- house engineers. Can be trained
Software testing and quality Unit testing by developer with D-Bus monitoring tools Integration testing done top down, depth first during development by developer Regression testing started late No recovery, stress, alpha or beta testing. Nature of the software and its usage unnecessary Validation testing in type approval laboratory by customer
Conclusions UI turned out quite intuitive, positive response. UI and cellular control should be developed separately Open source benefit: ready examples, on-line documentation Testing resources should be allocated from the start of the project
Software delivery in time prioritized over usability and reliability Performed well in type approval laboratory testing. All required tests could be run after a couple of iterations Time consuming network actions must be non- blocking. Asynchronous callbacks