Android + Linux Control System

Wireless Network

The vehicle is literally a mobile hotspot capable of providing network access to any mobile device in the immediate area.  The authentication is controlled via the WiFi network while the authorization is handled internally by Linux.  It also has the ability to join any wireless network upon detection.  For example, pulling into a garage, the vehicle can detect the home network and upload all of it’s data from it’s on-vehicle database to a remote server for analysis.

The wireless device utilized in the Samurai2 is the Nexus 7″ Android tablet.  This is embedded in the dash for aesthetics but is easily detachable for convenience.  Although Android was used for the prototype, the vehicle API is not client specific and could be integrated with any other mobile platform including iOS if a native client were written.



The internal computer is accessible via WiFi through three interfaces:


For applications that need to run onboard the vehicle and require a graphical interface, any VNC client can be used to access the computer and run an X application.  The Battery Management System is configured through a Java Swing client which requires a graphical interface.  By logging in with the VNC client, the Orion windowed application runs as intended allowing the BMS to be configured wirelessly using a remote laptop. Similar in interface to the controller, this allows access directly to the vehicle control systems without ever having to connect a cable. The pictures below are actual screenshots taken while configuring Orion settings from a laptop utilizing the VNC server running on the internal Linux computer.


For command line access, a normal SSH port is exposed for easily transferring files and configuring the underlying operating system.

Web Services

The virtual architecture of the vehicle features countless services including any service that can be run on Linux.  It provides simple services like ssh and bluetooth as well as the core web application services that have been written to monitor and control the vehicle.

The J2EE technical stack includes Apache Tomcat, Apache CXF, and Spring interacting with the underlying automotive hardware to monitor hardware metrics as well as actually control the mechanical components of the vehicle.  The web applications also aggregate data from vehicle network traffic, both Ethernet and CANBUS, and provide the raw data to the native Android application for formatting the data into a intuitive UI.

suzuki samurai images-2

Actual Battery Status XML message returned to the client by Tomcat Web Application


Linux Architecture

A Linux 64-bit operating system on solid state hardware is powering the vehicle’s core systems.  The distribution of Linux used was Fedora 12 which provided a perfect environment for utilizing open source projects to facilitate rapid development of onboard vehicle applications.  Any flavor of Linux could be used, it’s the inherent open source nature of the underlying operating system which is important.



Every aspect of the vehicle is monitored and continually recorded to a relational database for later data mining to profile the behavior of the vehicle in different scenarios.  MySQL was chosen due to it’s familiarity, open source nature, and ease of integration but any relational DB could be utilized.

The database also stores all vehicle schematics, part numbers, manufacturer details and any other important vehicle information which can be brought up on a mobile device at any time without having an Internet connection.