SlideShare a Scribd company logo
1 of 53
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
Is It A Car? Is It A Computer?
No, It’s The Raspberry Pi
JavaFX Informatics System
Simon Ritter
Principal Technology Evangelist
Oracle Corporation
@speakjava
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3
The following is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing
decisions. The development, release, and timing of any
features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4
Program Agenda
 Cars and Computers
 The Raspberry Pi
 Embedded Java and JavaFX
 Building a Java Powered “Carputer”
 Demos
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5
Cars And Computers
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6
My First Car: 1981
 No electronics
– Well, it had a radio
 Purely electromechanical
– Points/Distributor
– Carburettor/Manual choke
– Drum brakes
– Dynamo
– Lights, horn, wipers, fan, ignition switch
1971 Mini Clubman 1000
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7
Car Wiring: 1970s
Image coutesy of Haynes manuals
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8
My Current Car
 Lots of electronics
– Engine Control Unit (ECU)
– Fuel Injection/Electronic timing
– “Fly-by-wire” throttle
– Anti-lock Braking System (ABS)
– Electronic Stability Program (ESP)
– Magnetorheological Suspension
– Satellite navigation
– Auto-sensing wipers and lights
2011 Audi S3
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9
Car Wiring: 2011
Bus architecture means substantially less wiring
Convenience Bus Infotainment Bus Powertrain Bus
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10
Protocols For Car Bus Communication
 On Board Diagnostics (OBD-II)
– Connector, SAE J1939 / ISO 15031-3
 OBD-II Protocols
– SAE J1850 PWM or VPM
– ISO 9141-2
– ISO 14230
– ISO 15765-4: Controller Area Network (CAN) Bus
 11 or 29 bit ID, 250 or 500 kbaud
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11
The Raspberry Pi
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12
Raspberry Pi
 Project started in 2006
– Goal was to devise a computer to inspire children
– Inspiration from the BBC Micro project from 1981
– Officially launched 29th Feb, 2012
– Over 1 million boards shipped so far
History and Goals
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13
Raspberry Pi
 CPU: ARM 11 (v6) core running at 700MHz
– Broadcom SoC package
– Can now be overclocked to 1GHz (without breaking the warranty!)
 Memory: 512Mb
 I/O:
– HDMI and composite video
– Audio out (3.5mm plug)
– 2 x USB ports
– Ethernet
– Header pins for GPIO, UART, SPI and I2C
Specification
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14
Raspberry Pi Carputer
 Plenty of computing power
– With low electrical power consumption (< 1 Amp at 5V)
 Persistent storage provided by SD card
– Disk drives not ideal in hot places with lots of vibration
 Supported device for embedded Java
– Hardware floating point acceleration configured
– Java SE Embedded and Java ME Embedded
– JavaFX Prism graphics engine ported
Advantages
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15
Embedded Java and JavaFX
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16
Java Technology for Embedded Devices
Platform
Footprint
Device
CPU/
GPU/I-OARM 7 Cortex M ARM9/11 MIPS32 ARM Cortex A PPC Intel Atom
50KB-1MB
1MB-10MB
10MB-100MB Java ME
Java SE
Java
Card
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17
Java ME Embedded 3.3
 Connected Limited Device Configuration 1.1
– Reduced footprint JVM and core libraries
 Device Access API (new)
– Standard library for access to
 GPIO
 UART
 I2C/SPI
 Additional profiles used as required
Key Features
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18
Java SE 8 Embedded (Early Access)
 Tuned for Raspberry Pi
– ARM6 architecture does not require hardware FP
– Raspberry Pi has one, so JVM needs specific compiler options
 Inlcudes JavaFX
 Includes compact profiles for reduced footprint
 Recently added to standard build platforms
– EA updated as each new build comes out
Key Features
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19
JavaFX On Embedded Devices
 JavaFX on embedded does not support the full feature set
– No WebView component (not a problem for the carputer)
– No direct media playback support
 For video there is a work around (but, does the carputer need it?)
 Sound would be nice, but not essential
 Remember resource constraints
– Big scene graphs need memory and CPU cycles
– Keep number of nodes small (ideally <50)
Things To Consider
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20
Building a Java Powered
“Carputer”
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21
Carputer Design Objectives
 Display realtime data
– Engine performance (Power, Torque, Load)
– Driver data (Throttle position, steering angle, braking force, etc)
– G-Forces on car
 Record data for later analysis
– Produce graphs to display changes over time
– Play at Formula 1
– Improve driving style (!)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22
ELM327
 WiFi or Bluetooth connection to OBD-II
 Fixed IP address, Ad-hoc networking
 Need to configure Raspberry Pi
– /etc/network/interfaces
 AT style commands for control
 Non-AT commands are assumed to be OBD-II
– Simple request-response interaction
– Easy to write Java code to handle this
Cheap way to hack your car
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23
Touchscreen
 2 DIN fitting size
– Ideal for centre console
 HDMI input
– Specifically marketed for Raspberry Pi
 USB connection for touch screen
Lots of things available on eBay
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24
JavaFX And Touchscreen
 Raspian Linux recognises device: eGalax Inc
 Creates two devices in /dev/input/event0, event1
 JavaFX sees devices and uses event0
– No events generated
– Need to use event1 (No idea why)
 Special build of JavaFX?
 Neccesity is the mother of invention
– Delete event0 and mknod event0 c 13 65 (same as event1)
– Need script to repeat at boot time
Not completely straightforward
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25
Carputer Hardware Architecture
USB WiFi Dongle
Touch Screen
Accelerometer
HDMI USB
I2C
12V Car
Converter
ELM327
Car
Service
Port
5V USB
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26
Touchscreen
Hardware Fitting Challenges
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27
Accelerometer
 Sparkfun breakout board MPU 9150
– 9 DoF sensor (accelerometer, gyroscope, compass)
 Communications via I2C
– Configure Raspberry Pi /etc/modules
 i2c-bcm2708, i2c-dev
 i2c-detect -y 1 to get address
– Compass communication is a bit more complicated
 Second I2C bus
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28
Accelerometer Code
Using Pi4J Library on Java SE Embedded
I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1);
I2CDevice device = bus.getDevice(0x68);
/* Start sensing */
device.write(0x6B, (byte)0b00000000);
device.write(0x6C, (byte)0b00000000);
/* Set configuration */
device.write(0x1B, (byte)0b00011000); // Gyroscope
device.write(0x1C, (byte)0b00000100); // Accelerometer
device.read(0x3B, accelData, 0, ACCEL_PACKET_SIZE);
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29
Compensating For Gravity In Acceleration
 The accelerometer measures acceleration (obviously)
 Gravity is a constant acceleration
– Consider it static acceleration
 What we want is dynamic acceleration
 Zero out gravitational effect
– Assume no rotation of the sensor
– Nearly correct, car will roll in corners and pitch under braking/acceleration
– Good enough for the demo
– Could integrate gyro and Kalman filter for higher accuracy
The Earth Sucks
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30
Calculating Power And Torque
 Results will not have high accuracy
– Values in red are not precise
 Dynamometer is the only way to get accurate figures
 Interesting to see values v. manufacturers figures
Torque (Nm) = Mass x Wheel Radius x Acceleration (in G)
Torque (lb/ft) = Torque in Nm x 0.73756
Power (BHP) = Torque (lb/ft) x engine RPM / 5252
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31
Carputer Software Architecture
 Screens based
– Splash screen
– Basic and advanced car data
– G forces on car
– Graphed results of different parameters
 Simple UI
– Can’t read numbers when driving
 Touchscreen to switch screens
– Repurpose existing car controls to change screen?
Realtime Data
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32
UI Design Ideas
Take Inspiration From Others
Renault Megane Sport
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33
UI Design Ideas
Take Inspiration From Others
Tesla
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34
UI Design Ideas
Take Inspiration From Others
Lamborghini Reveton
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35
Simple Data Display Control
 Only uses 3 nodes
– Polygon
– Rectangle
– Line
– Labels are optional
 Displays
– Current value
– Maximum value since start (resetable)
 Simple to understand from a glance
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36
User Interaction
 Complex UIs are bad for driver distraction
– Programming the SatNav while driving
 Make Carputer interaction as simple as possible
 Sequence of screens
– Main menu? Too complex, too much reading
– Cycle through screens (Keep number small)
– Just touch screen to change to next display
 Use setMouseTransparent(true);
– Use steering wheel button
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37
UI Screens
Splash Screen
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38
UI Screens
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39
UI Screens
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.40
UI Screens
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.41
Graph Plots Of Throttle Position And Power
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.42
JavaFX Charts And Colours
Can Only Be Changed Using CSS
.axis { -fx-tick-label: #FFFFFF; }
.axis-tick-mark { -fx-stroke: #FFFFFF; }
.axis-minor-tick-mark { -fx-stroke: #000000; }
.chart-plot-background { -fx-background-color: #000000; }
.chart-alternative-row-fill { -fx-fill: #000000; }
.default-color0.chart-series-line { -fx-stroke: #FFFF33; }
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.43
Design: Model
Sensor
<<Interface>>
Runnable
<<Interface>>
AccelerationSensor
<<Abstract>>
OBD2Sensor
<<Abstract>>
ELM327SimulationCar SimulationAccelerometer MPU9150
EnginePerformance
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.44
Design: View
Display
BasicDisplay AdvancedDisplay GraphDisplay GForceDisplay
ThrottleGraphDisplay PowerGraphDisplay
SplashScreen
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.45
Design: Controller
BasicDisplay
AdvancedDisplay
TorqueGraphDisplay
GForceDisplay
CarputerController
Accelerometer
AudiS3
ELM327
EnginePerformance
PowerGraphDisplay
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.46
Using Car Control Buttons
 Not simple
– Car manufacturers don’t share the CAN bus IDs and message formats
– Even things like Audi forums can’t supply this
– Need to reverse engineer
 ELM327 has AT MA command
– Monitor all CAN Bus traffic
– Need to pick the relevant message from a LOT of data
– Once the ID is know use AT MT xx to monitor transmit messages
Monitoring CAN Bus Data
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.47
Future Ideas, Conclusions
and Resources
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.48
What Next
 Integrate heart rate monitor to add biometric data
 Integrate GPS receiver for mapping data
 Heads Up Display (HUD)
– Microprojector and half-silvered perspex
 Further investigation of CAN Bus signals
– Brake pressure, steering position
– Use other switches
– Send commands (this is rather scary)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.49
The Pi Can Interface
 Can’t read CAN bus and OBDII at the
same time via ELM327
 Use connector for entertainment
system
 Need to check that I2C for
accelerometer will still work
 Reasonable cost, $50
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.50
Resources
 www.audi.com
 www.raspberrypi.org
 javafx.oracle.com
 blogs.oracle.com/speakjava
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.51
Demos
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.52
Graphic Section Divider
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.53

More Related Content

What's hot

MM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent BetbederMM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent BetbederAMD Developer Central
 
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...mfrancis
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...AMD Developer Central
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Dmitry Chuyko
 
802.11-2012 Update
802.11-2012 Update802.11-2012 Update
802.11-2012 UpdateSavvius, Inc
 
Wireless Feature Update
Wireless Feature UpdateWireless Feature Update
Wireless Feature UpdateCisco Canada
 
Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015KC Digital Drive
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 
Virtualization aware Java VM
Virtualization aware Java VMVirtualization aware Java VM
Virtualization aware Java VMTim Ellison
 
Visualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with RVisualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with RPoonam Bajaj Parhar
 
Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30Marcello Marchesini
 
Edje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesEdje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesMicroEJ
 

What's hot (13)

MM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent BetbederMM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
 
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
 
Compile ahead of time. It's fine?
Compile ahead of time. It's fine?Compile ahead of time. It's fine?
Compile ahead of time. It's fine?
 
802.11-2012 Update
802.11-2012 Update802.11-2012 Update
802.11-2012 Update
 
Hotspot & AOT
Hotspot & AOTHotspot & AOT
Hotspot & AOT
 
Wireless Feature Update
Wireless Feature UpdateWireless Feature Update
Wireless Feature Update
 
Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 
Virtualization aware Java VM
Virtualization aware Java VMVirtualization aware Java VM
Virtualization aware Java VM
 
Visualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with RVisualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with R
 
Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30
 
Edje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesEdje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT Devices
 

Viewers also liked

Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit PythonEinfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit PythonThomas Koch
 
Raspberry Pi tutorial
Raspberry Pi tutorialRaspberry Pi tutorial
Raspberry Pi tutorial艾鍗科技
 
Based on raspberry pi with the application of Stepper
Based on raspberry pi with the application of StepperBased on raspberry pi with the application of Stepper
Based on raspberry pi with the application of Stepper冠宇 陳
 
Raspberry Pi with Java 8
Raspberry Pi with Java 8Raspberry Pi with Java 8
Raspberry Pi with Java 8javafxpert
 

Viewers also liked (6)

The Java Carputer
The Java CarputerThe Java Carputer
The Java Carputer
 
Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit PythonEinfache Heimautomatisierung auf dem Raspberry Pi mit Python
Einfache Heimautomatisierung auf dem Raspberry Pi mit Python
 
Raspberry Pi tutorial
Raspberry Pi tutorialRaspberry Pi tutorial
Raspberry Pi tutorial
 
Based on raspberry pi with the application of Stepper
Based on raspberry pi with the application of StepperBased on raspberry pi with the application of Stepper
Based on raspberry pi with the application of Stepper
 
Raspberry Pi with Java 8
Raspberry Pi with Java 8Raspberry Pi with Java 8
Raspberry Pi with Java 8
 
Asus Tinker Board
Asus Tinker BoardAsus Tinker Board
Asus Tinker Board
 

Similar to The Raspberry Pi JavaFX Carputer

A2 a peep into the fastest servers for database middleware and enterprise j...
A2   a peep into the fastest servers for database middleware and enterprise j...A2   a peep into the fastest servers for database middleware and enterprise j...
A2 a peep into the fastest servers for database middleware and enterprise j...Dr. Wilfred Lin (Ph.D.)
 
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Codemotion
 
Drives Software Programming – using PLC or Drive bespoke programming?
Drives Software Programming – using PLC or Drive bespoke programming?Drives Software Programming – using PLC or Drive bespoke programming?
Drives Software Programming – using PLC or Drive bespoke programming?Optima Control Solutions
 
Sparc m6 32 in-memory infrastructure for the entire enterprise
Sparc m6 32 in-memory infrastructure for the entire enterpriseSparc m6 32 in-memory infrastructure for the entire enterprise
Sparc m6 32 in-memory infrastructure for the entire enterprisesolarisyougood
 
Final presentation [dissertation project], 20192 esv0002
Final presentation [dissertation project], 20192 esv0002Final presentation [dissertation project], 20192 esv0002
Final presentation [dissertation project], 20192 esv0002MOHAMMED FURQHAN
 
Presentation oracle exalogic elastic cloud
Presentation   oracle exalogic elastic cloudPresentation   oracle exalogic elastic cloud
Presentation oracle exalogic elastic cloudsolarisyougood
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаVolha Banadyseva
 
Solutions for ADAS and AI data engineering using OpenPOWER/POWER systems
Solutions for ADAS and AI data engineering using OpenPOWER/POWER systemsSolutions for ADAS and AI data engineering using OpenPOWER/POWER systems
Solutions for ADAS and AI data engineering using OpenPOWER/POWER systemsGanesan Narayanasamy
 
z/OS Through V2R1Communications Server Performance Functions Update
z/OS Through V2R1Communications Server Performance Functions Updatez/OS Through V2R1Communications Server Performance Functions Update
z/OS Through V2R1Communications Server Performance Functions UpdatezOSCommserver
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас домаDiana Dymolazova
 
OVERVIEW OF PLC AND SCADA
OVERVIEW OF PLC AND SCADAOVERVIEW OF PLC AND SCADA
OVERVIEW OF PLC AND SCADASandeep Sahu
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesMert Çalışkan
 
Software Defined Data Center: The Intersection of Networking and Storage
Software Defined Data Center: The Intersection of Networking and StorageSoftware Defined Data Center: The Intersection of Networking and Storage
Software Defined Data Center: The Intersection of Networking and StorageEMC
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Pro sphere customer technical
Pro sphere customer technicalPro sphere customer technical
Pro sphere customer technicalsolarisyougood
 
Device to Intelligence, IOT and Big Data in Oracle
Device to Intelligence, IOT and Big Data in OracleDevice to Intelligence, IOT and Big Data in Oracle
Device to Intelligence, IOT and Big Data in OracleJunSeok Seo
 
Spansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller FamilySpansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller FamilySpansion
 

Similar to The Raspberry Pi JavaFX Carputer (20)

A2 a peep into the fastest servers for database middleware and enterprise j...
A2   a peep into the fastest servers for database middleware and enterprise j...A2   a peep into the fastest servers for database middleware and enterprise j...
A2 a peep into the fastest servers for database middleware and enterprise j...
 
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
 
Drives Software Programming – using PLC or Drive bespoke programming?
Drives Software Programming – using PLC or Drive bespoke programming?Drives Software Programming – using PLC or Drive bespoke programming?
Drives Software Programming – using PLC or Drive bespoke programming?
 
FPGA MeetUp
FPGA MeetUpFPGA MeetUp
FPGA MeetUp
 
Sparc m6 32 in-memory infrastructure for the entire enterprise
Sparc m6 32 in-memory infrastructure for the entire enterpriseSparc m6 32 in-memory infrastructure for the entire enterprise
Sparc m6 32 in-memory infrastructure for the entire enterprise
 
Final presentation [dissertation project], 20192 esv0002
Final presentation [dissertation project], 20192 esv0002Final presentation [dissertation project], 20192 esv0002
Final presentation [dissertation project], 20192 esv0002
 
Presentation oracle exalogic elastic cloud
Presentation   oracle exalogic elastic cloudPresentation   oracle exalogic elastic cloud
Presentation oracle exalogic elastic cloud
 
VineeshKumar_Resume
VineeshKumar_ResumeVineeshKumar_Resume
VineeshKumar_Resume
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
 
Solutions for ADAS and AI data engineering using OpenPOWER/POWER systems
Solutions for ADAS and AI data engineering using OpenPOWER/POWER systemsSolutions for ADAS and AI data engineering using OpenPOWER/POWER systems
Solutions for ADAS and AI data engineering using OpenPOWER/POWER systems
 
z/OS Through V2R1Communications Server Performance Functions Update
z/OS Through V2R1Communications Server Performance Functions Updatez/OS Through V2R1Communications Server Performance Functions Update
z/OS Through V2R1Communications Server Performance Functions Update
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас дома
 
OVERVIEW OF PLC AND SCADA
OVERVIEW OF PLC AND SCADAOVERVIEW OF PLC AND SCADA
OVERVIEW OF PLC AND SCADA
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
 
Software Defined Data Center: The Intersection of Networking and Storage
Software Defined Data Center: The Intersection of Networking and StorageSoftware Defined Data Center: The Intersection of Networking and Storage
Software Defined Data Center: The Intersection of Networking and Storage
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Pro sphere customer technical
Pro sphere customer technicalPro sphere customer technical
Pro sphere customer technical
 
TN104_Rutenberg_Sinai_090805
TN104_Rutenberg_Sinai_090805TN104_Rutenberg_Sinai_090805
TN104_Rutenberg_Sinai_090805
 
Device to Intelligence, IOT and Big Data in Oracle
Device to Intelligence, IOT and Big Data in OracleDevice to Intelligence, IOT and Big Data in Oracle
Device to Intelligence, IOT and Big Data in Oracle
 
Spansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller FamilySpansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller Family
 

More from Simon Ritter

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native CompilerSimon Ritter
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type PatternsSimon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoringSimon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
Getting the Most From Modern Java
Getting the Most From Modern JavaGetting the Most From Modern Java
Getting the Most From Modern JavaSimon Ritter
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVMSimon Ritter
 
JDK 14 Lots of New Features
JDK 14 Lots of New FeaturesJDK 14 Lots of New Features
JDK 14 Lots of New FeaturesSimon Ritter
 
How to Choose a JDK
How to Choose a JDKHow to Choose a JDK
How to Choose a JDKSimon Ritter
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologySimon Ritter
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologySimon Ritter
 
Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?Simon Ritter
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12Simon Ritter
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondSimon Ritter
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still FreeSimon Ritter
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondSimon Ritter
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveSimon Ritter
 

More from Simon Ritter (20)

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native Compiler
 
Java On CRaC
Java On CRaCJava On CRaC
Java On CRaC
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type Patterns
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoring
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Getting the Most From Modern Java
Getting the Most From Modern JavaGetting the Most From Modern Java
Getting the Most From Modern Java
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVM
 
JDK 14 Lots of New Features
JDK 14 Lots of New FeaturesJDK 14 Lots of New Features
JDK 14 Lots of New Features
 
Java after 8
Java after 8Java after 8
Java after 8
 
How to Choose a JDK
How to Choose a JDKHow to Choose a JDK
How to Choose a JDK
 
Java Programming
Java ProgrammingJava Programming
Java Programming
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
 
Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep Dive
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

The Raspberry Pi JavaFX Carputer

  • 1. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
  • 2. Is It A Car? Is It A Computer? No, It’s The Raspberry Pi JavaFX Informatics System Simon Ritter Principal Technology Evangelist Oracle Corporation @speakjava
  • 3. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 4. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4 Program Agenda  Cars and Computers  The Raspberry Pi  Embedded Java and JavaFX  Building a Java Powered “Carputer”  Demos
  • 5. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5 Cars And Computers
  • 6. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6 My First Car: 1981  No electronics – Well, it had a radio  Purely electromechanical – Points/Distributor – Carburettor/Manual choke – Drum brakes – Dynamo – Lights, horn, wipers, fan, ignition switch 1971 Mini Clubman 1000
  • 7. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7 Car Wiring: 1970s Image coutesy of Haynes manuals
  • 8. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8 My Current Car  Lots of electronics – Engine Control Unit (ECU) – Fuel Injection/Electronic timing – “Fly-by-wire” throttle – Anti-lock Braking System (ABS) – Electronic Stability Program (ESP) – Magnetorheological Suspension – Satellite navigation – Auto-sensing wipers and lights 2011 Audi S3
  • 9. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9 Car Wiring: 2011 Bus architecture means substantially less wiring Convenience Bus Infotainment Bus Powertrain Bus
  • 10. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10 Protocols For Car Bus Communication  On Board Diagnostics (OBD-II) – Connector, SAE J1939 / ISO 15031-3  OBD-II Protocols – SAE J1850 PWM or VPM – ISO 9141-2 – ISO 14230 – ISO 15765-4: Controller Area Network (CAN) Bus  11 or 29 bit ID, 250 or 500 kbaud
  • 11. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11 The Raspberry Pi
  • 12. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12 Raspberry Pi  Project started in 2006 – Goal was to devise a computer to inspire children – Inspiration from the BBC Micro project from 1981 – Officially launched 29th Feb, 2012 – Over 1 million boards shipped so far History and Goals
  • 13. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13 Raspberry Pi  CPU: ARM 11 (v6) core running at 700MHz – Broadcom SoC package – Can now be overclocked to 1GHz (without breaking the warranty!)  Memory: 512Mb  I/O: – HDMI and composite video – Audio out (3.5mm plug) – 2 x USB ports – Ethernet – Header pins for GPIO, UART, SPI and I2C Specification
  • 14. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14 Raspberry Pi Carputer  Plenty of computing power – With low electrical power consumption (< 1 Amp at 5V)  Persistent storage provided by SD card – Disk drives not ideal in hot places with lots of vibration  Supported device for embedded Java – Hardware floating point acceleration configured – Java SE Embedded and Java ME Embedded – JavaFX Prism graphics engine ported Advantages
  • 15. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15 Embedded Java and JavaFX
  • 16. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16 Java Technology for Embedded Devices Platform Footprint Device CPU/ GPU/I-OARM 7 Cortex M ARM9/11 MIPS32 ARM Cortex A PPC Intel Atom 50KB-1MB 1MB-10MB 10MB-100MB Java ME Java SE Java Card
  • 17. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17 Java ME Embedded 3.3  Connected Limited Device Configuration 1.1 – Reduced footprint JVM and core libraries  Device Access API (new) – Standard library for access to  GPIO  UART  I2C/SPI  Additional profiles used as required Key Features
  • 18. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18 Java SE 8 Embedded (Early Access)  Tuned for Raspberry Pi – ARM6 architecture does not require hardware FP – Raspberry Pi has one, so JVM needs specific compiler options  Inlcudes JavaFX  Includes compact profiles for reduced footprint  Recently added to standard build platforms – EA updated as each new build comes out Key Features
  • 19. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19 JavaFX On Embedded Devices  JavaFX on embedded does not support the full feature set – No WebView component (not a problem for the carputer) – No direct media playback support  For video there is a work around (but, does the carputer need it?)  Sound would be nice, but not essential  Remember resource constraints – Big scene graphs need memory and CPU cycles – Keep number of nodes small (ideally <50) Things To Consider
  • 20. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20 Building a Java Powered “Carputer”
  • 21. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21 Carputer Design Objectives  Display realtime data – Engine performance (Power, Torque, Load) – Driver data (Throttle position, steering angle, braking force, etc) – G-Forces on car  Record data for later analysis – Produce graphs to display changes over time – Play at Formula 1 – Improve driving style (!)
  • 22. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22 ELM327  WiFi or Bluetooth connection to OBD-II  Fixed IP address, Ad-hoc networking  Need to configure Raspberry Pi – /etc/network/interfaces  AT style commands for control  Non-AT commands are assumed to be OBD-II – Simple request-response interaction – Easy to write Java code to handle this Cheap way to hack your car
  • 23. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23 Touchscreen  2 DIN fitting size – Ideal for centre console  HDMI input – Specifically marketed for Raspberry Pi  USB connection for touch screen Lots of things available on eBay
  • 24. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24 JavaFX And Touchscreen  Raspian Linux recognises device: eGalax Inc  Creates two devices in /dev/input/event0, event1  JavaFX sees devices and uses event0 – No events generated – Need to use event1 (No idea why)  Special build of JavaFX?  Neccesity is the mother of invention – Delete event0 and mknod event0 c 13 65 (same as event1) – Need script to repeat at boot time Not completely straightforward
  • 25. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25 Carputer Hardware Architecture USB WiFi Dongle Touch Screen Accelerometer HDMI USB I2C 12V Car Converter ELM327 Car Service Port 5V USB
  • 26. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26 Touchscreen Hardware Fitting Challenges
  • 27. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27 Accelerometer  Sparkfun breakout board MPU 9150 – 9 DoF sensor (accelerometer, gyroscope, compass)  Communications via I2C – Configure Raspberry Pi /etc/modules  i2c-bcm2708, i2c-dev  i2c-detect -y 1 to get address – Compass communication is a bit more complicated  Second I2C bus
  • 28. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28 Accelerometer Code Using Pi4J Library on Java SE Embedded I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1); I2CDevice device = bus.getDevice(0x68); /* Start sensing */ device.write(0x6B, (byte)0b00000000); device.write(0x6C, (byte)0b00000000); /* Set configuration */ device.write(0x1B, (byte)0b00011000); // Gyroscope device.write(0x1C, (byte)0b00000100); // Accelerometer device.read(0x3B, accelData, 0, ACCEL_PACKET_SIZE);
  • 29. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29 Compensating For Gravity In Acceleration  The accelerometer measures acceleration (obviously)  Gravity is a constant acceleration – Consider it static acceleration  What we want is dynamic acceleration  Zero out gravitational effect – Assume no rotation of the sensor – Nearly correct, car will roll in corners and pitch under braking/acceleration – Good enough for the demo – Could integrate gyro and Kalman filter for higher accuracy The Earth Sucks
  • 30. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30 Calculating Power And Torque  Results will not have high accuracy – Values in red are not precise  Dynamometer is the only way to get accurate figures  Interesting to see values v. manufacturers figures Torque (Nm) = Mass x Wheel Radius x Acceleration (in G) Torque (lb/ft) = Torque in Nm x 0.73756 Power (BHP) = Torque (lb/ft) x engine RPM / 5252
  • 31. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31 Carputer Software Architecture  Screens based – Splash screen – Basic and advanced car data – G forces on car – Graphed results of different parameters  Simple UI – Can’t read numbers when driving  Touchscreen to switch screens – Repurpose existing car controls to change screen? Realtime Data
  • 32. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32 UI Design Ideas Take Inspiration From Others Renault Megane Sport
  • 33. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33 UI Design Ideas Take Inspiration From Others Tesla
  • 34. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34 UI Design Ideas Take Inspiration From Others Lamborghini Reveton
  • 35. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35 Simple Data Display Control  Only uses 3 nodes – Polygon – Rectangle – Line – Labels are optional  Displays – Current value – Maximum value since start (resetable)  Simple to understand from a glance
  • 36. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36 User Interaction  Complex UIs are bad for driver distraction – Programming the SatNav while driving  Make Carputer interaction as simple as possible  Sequence of screens – Main menu? Too complex, too much reading – Cycle through screens (Keep number small) – Just touch screen to change to next display  Use setMouseTransparent(true); – Use steering wheel button
  • 37. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37 UI Screens Splash Screen
  • 38. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38 UI Screens
  • 39. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39 UI Screens
  • 40. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.40 UI Screens
  • 41. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.41 Graph Plots Of Throttle Position And Power
  • 42. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.42 JavaFX Charts And Colours Can Only Be Changed Using CSS .axis { -fx-tick-label: #FFFFFF; } .axis-tick-mark { -fx-stroke: #FFFFFF; } .axis-minor-tick-mark { -fx-stroke: #000000; } .chart-plot-background { -fx-background-color: #000000; } .chart-alternative-row-fill { -fx-fill: #000000; } .default-color0.chart-series-line { -fx-stroke: #FFFF33; }
  • 43. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.43 Design: Model Sensor <<Interface>> Runnable <<Interface>> AccelerationSensor <<Abstract>> OBD2Sensor <<Abstract>> ELM327SimulationCar SimulationAccelerometer MPU9150 EnginePerformance
  • 44. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.44 Design: View Display BasicDisplay AdvancedDisplay GraphDisplay GForceDisplay ThrottleGraphDisplay PowerGraphDisplay SplashScreen
  • 45. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.45 Design: Controller BasicDisplay AdvancedDisplay TorqueGraphDisplay GForceDisplay CarputerController Accelerometer AudiS3 ELM327 EnginePerformance PowerGraphDisplay
  • 46. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.46 Using Car Control Buttons  Not simple – Car manufacturers don’t share the CAN bus IDs and message formats – Even things like Audi forums can’t supply this – Need to reverse engineer  ELM327 has AT MA command – Monitor all CAN Bus traffic – Need to pick the relevant message from a LOT of data – Once the ID is know use AT MT xx to monitor transmit messages Monitoring CAN Bus Data
  • 47. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.47 Future Ideas, Conclusions and Resources
  • 48. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.48 What Next  Integrate heart rate monitor to add biometric data  Integrate GPS receiver for mapping data  Heads Up Display (HUD) – Microprojector and half-silvered perspex  Further investigation of CAN Bus signals – Brake pressure, steering position – Use other switches – Send commands (this is rather scary)
  • 49. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.49 The Pi Can Interface  Can’t read CAN bus and OBDII at the same time via ELM327  Use connector for entertainment system  Need to check that I2C for accelerometer will still work  Reasonable cost, $50
  • 50. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.50 Resources  www.audi.com  www.raspberrypi.org  javafx.oracle.com  blogs.oracle.com/speakjava
  • 51. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.51 Demos
  • 52. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.52 Graphic Section Divider
  • 53. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.53