SlideShare a Scribd company logo
Cars and Computers: Building a Java Carputer
Simon Ritter
Head of Java Technology Evangelism
Oracle Corp.
Twitter: @speakjava
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
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.
2
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Cars And Computers
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
Car Wiring: 1970s
Image coutesy of Haynes manuals
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
Bus architecture means substantially less wiring
Car Wiring: 2011
Convenience Bus Infotainment Bus Powertrain Bus
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
The Java Carputer
(Mark 1)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Carputer Design Objectives
• Display realtime data
• Engine performance (Power, Torque, Load)
• Driver data (Throttle position, steering angle, braking force, etc)
• G-Forces on car
• Graphed data for time-based analysis
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Carputer Hardware Architecture
USB WiFi Dongle
Touch Screen
Accelerometer
HDMI USB
I2C
12V Car
Converter
ELM327
Car
Service
Port
5V USB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
Hardware Fitting Challenges
Touchscreen
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
Take Inspiration From Others
UI Design Ideas
Renault Megane Sport
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Take Inspiration From Others
UI Design Ideas
Tesla
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Take Inspiration From Others
UI Design Ideas
Lamborghini Reveton
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
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 © 2014, Oracle and/or its affiliates. All rights reserved.
Splash Screen
UI Screens
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
UI Screens
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
UI Screens
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
The Java Carputer
(Mark 2)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Carputer Hardware Architecture
25
USB via FTDICrossover ethernet
Infra red
Thermal sensor
CAN High
CAN Low
OBD2 Service Port
Wi-Fi
Accelerometer/
Gyro/Compass
I2C
USB
UART
Serial
GPSHeart Rate Monitor
USB
Video Camera
Raspberry Pi Model B+
7” Touch secreen
USB
SDR/TPMS
CAN Bus
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Tracking Position With GPS
• AdaFruit Ultimate GPS breakout
– 10Hz read rate
– Serial interface
• Very simple configuration
– Disable /dev/ttyAMA0 on Pi as console
– 9600 8N1
– Read data using librxtx-java
– Comma separated values $GPGGA and $GPVTG
– Need to handle frequent data corruption
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Heart Rate Monitoring of the Driver
• Sparkfun board
– USB interface, serial connection
• Similar to GPS
– Use librxtx-java
– 9600, 8N1
• More complicated coding
– Actually need to send a read request!
• Some issues with wireless connection
– 80cm max, doesn’t work well through a Rapsberry Pi
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
In-car Video
• Becoming very common to avoid insurance issues
• Transcend DrivePro 200
– Built-in Wi-Fi
– iPhone app
• How to get video stream?
– Approached Transcend tech support
– Found VLC code
– Wireshark
– SYN/ACK, Yuck!
28
Camera Application
192.168.0.1 192.168.0.2
Port 9000 Port 43229
Port 9001 Port 42719
Port 9002 Port 58105
Port 8554 (RTSP) Port 60583
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
The Simplest Solution Is Often The Best
29
Push button using GPIO lines and Pi4J
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Thermal Sensors For Brakes and Tyres
The Goal
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Infra-Red Thermometer
• MLX90614 breakout board
– I2C interface seemed problematic on the Pi
– Also has serial interface
– Use FTDI breakout board
– 4 wires becomes simple serial interface
31
The Reality
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Thermal Sensor Data
• Provides continuous reading as lines of text (e.g. 73.2F)
– Don’t like Fahrenheit, wanted Celcius
– Lambdas and Streams!
32
private double currentTemperature;
public void run() {
thermalReader.lines()
.mapToDouble(s -> Double.parseDouble(s.substring(0, s.length() - 1)))
.map(t -> ((t - 32) * 5 / 9))
.filter(t -> t != currentTemperature)
.peek(t -> listener.ifPresent(l -> l.temperatureChange(t)))
.forEach(t -> currentTemperature = t);
}
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Thermal Sensor Data
• Provides continuous reading as lines of text (e.g. 73.2F)
– Don’t like Fahrenheit, wanted Celcius
– Lambdas and Streams!
33
private double currentTemperature;
public void run() {
thermalReader.lines()
.mapToDouble(s -> Double.parseDouble(s.substring(0, s.length() - 1)))
.map(t -> ((t - 32) * 5 / 9))
.filter(t -> t != this.currentTemperature)
.peek(t -> listener.ifPresent(l -> l.temperatureChange(t)))
.forEach(t -> this.currentTemperature = t);
}
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 34
Tyre Sensor
Fitting The Thermal Sensors
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 35
Brake Disk Sensor
Fitting The Thermal Sensors
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36
Separate Pi in Engine Bay
Fitting The Thermal Sensors
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Fitting The Thermal Sensors
• Simple server listens on port
• Carputer requests data
• Couple of issues
– Server needed reset for new
connection (bug to be fixed)
– How to tell which sensor is which
(ttyUSB0/ttyUSB1)
37
The Networked Car
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Fitting The Thermal Sensors
• Rasperry Pi at over 50C
– After 10 minute drive
• New approach required
– Longer USB cables
– Put the Pi in the car
38
Internal Combustion Produces Heat
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Getting Data From The CAN Bus
• Controller Area Network
• Used to connect many sensors, actuators and devices
– Without huge amounts of wiring
• Conveniently the CAN bus is connected to the OBD2 port
– Yes, the wiring is there
– No, the signals are not
– Presumably security measure from car manufacturers
– Boo!
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Where There’s A Will There’s A Way
Getting Data From The CAN Bus
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Where There’s A Will There’s A Way
Getting Data From The CAN Bus
Success! (And the car still works)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Getting Data From The CAN Bus
• Lawicel CAN bus to USB
• Serial device
• Sends decoded data
• Need to write a Java library
– CAN id
– Message data
• Then the hard part starts
– Figuring it all out
42
Electrical Connectivity Is Only The Start
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 43
Finished Data Capture System
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Data Recording and Analysis
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Display Collected Data
• JavaFX application
• Video stream
– Synchronised to data streams
• Data recorded as sequence of text records
– Comma separated values
– One line per sensor
– Time stamp
• Read all data in at start of application
– 15 minutes of data takes about 100ms
45
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
• Video (with controls)
• G-forces
• GPS co-ordinates/altitude
• Map of current position
• Speed (compare car and GPS)
• Bearing
• Engine load
• Fuel pressure
• Air intake temperature
• Coolant temperature
• Catalyst/exhaust temperature
• Tyre temperature
• Brake temperature
• Throttle position
• Engine RPM
• Heart rate
46
Data To Display
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Conclusions & Resources
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Conclusions
• Cars produce lots of data
• Use of sensors with Java is simple to collect (most) data
• Playback of data useful for insurance, fleet management, training
• Java and JavaFX make UI design simple
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Resources and Links
• www.sparkfun.com
• www.adafruit.com
• www.raspberrypi.org
• blogs.oracle.com/speakjava
• Twitter: @speakjava
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Demos
Ad

More Related Content

What's hot (20)

CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...
CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...
CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...
AMD Developer Central
 
Delivering Great WebRTC on Mobile Devices
Delivering Great WebRTC on Mobile DevicesDelivering Great WebRTC on Mobile Devices
Delivering Great WebRTC on Mobile Devices
Weemo, Inc.
 
KaiSemi - FPGA to ASIC Conversions
KaiSemi  - FPGA to ASIC ConversionsKaiSemi  - FPGA to ASIC Conversions
KaiSemi - FPGA to ASIC Conversions
kaisemi
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Developer Network
 
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
AMD Developer Central
 
Powerp Sveto 2 Eng
Powerp Sveto 2 EngPowerp Sveto 2 Eng
Powerp Sveto 2 Eng
Svetozar Jovanovic
 
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-ResolutionUltra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Intel® Software
 
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
 
Apple A Series Application Processor Device 2015
Apple A Series Application Processor Device 2015Apple A Series Application Processor Device 2015
Apple A Series Application Processor Device 2015
JJ Wu
 
More explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff up
Intel® Software
 
802.11-2012 Update
802.11-2012 Update802.11-2012 Update
802.11-2012 Update
Savvius, Inc
 
HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...
HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...
HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...
AMD Developer Central
 
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen KatsmanGS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
AMD Developer Central
 
FPGA MeetUp
FPGA MeetUpFPGA MeetUp
FPGA MeetUp
Moya Brannan
 
Device Abstraction in OSGi Based Embedded Systems - Dimitar Valtchev
Device Abstraction in OSGi Based Embedded Systems - Dimitar ValtchevDevice Abstraction in OSGi Based Embedded Systems - Dimitar Valtchev
Device Abstraction in OSGi Based Embedded Systems - Dimitar Valtchev
mfrancis
 
Curriculum Vitae ganesh with photo-1
Curriculum Vitae ganesh with photo-1Curriculum Vitae ganesh with photo-1
Curriculum Vitae ganesh with photo-1
Ganesh Sankar
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Developer Network
 
Apple A8 Series Application Processor
Apple A8 Series Application ProcessorApple A8 Series Application Processor
Apple A8 Series Application Processor
JJ Wu
 
Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30
Marcello Marchesini
 
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
AMD Developer Central
 
CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...
CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...
CE-4030, Optimizing Photo Editing Application with HSA Technology, by Stanley...
AMD Developer Central
 
Delivering Great WebRTC on Mobile Devices
Delivering Great WebRTC on Mobile DevicesDelivering Great WebRTC on Mobile Devices
Delivering Great WebRTC on Mobile Devices
Weemo, Inc.
 
KaiSemi - FPGA to ASIC Conversions
KaiSemi  - FPGA to ASIC ConversionsKaiSemi  - FPGA to ASIC Conversions
KaiSemi - FPGA to ASIC Conversions
kaisemi
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Developer Network
 
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
AMD Developer Central
 
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-ResolutionUltra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Intel® Software
 
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
 
Apple A Series Application Processor Device 2015
Apple A Series Application Processor Device 2015Apple A Series Application Processor Device 2015
Apple A Series Application Processor Device 2015
JJ Wu
 
More explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff up
Intel® Software
 
802.11-2012 Update
802.11-2012 Update802.11-2012 Update
802.11-2012 Update
Savvius, Inc
 
HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...
HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...
HSA-4146, Creating Smarter Applications and Systems Through Visual Intelligen...
AMD Developer Central
 
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen KatsmanGS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
AMD Developer Central
 
Device Abstraction in OSGi Based Embedded Systems - Dimitar Valtchev
Device Abstraction in OSGi Based Embedded Systems - Dimitar ValtchevDevice Abstraction in OSGi Based Embedded Systems - Dimitar Valtchev
Device Abstraction in OSGi Based Embedded Systems - Dimitar Valtchev
mfrancis
 
Curriculum Vitae ganesh with photo-1
Curriculum Vitae ganesh with photo-1Curriculum Vitae ganesh with photo-1
Curriculum Vitae ganesh with photo-1
Ganesh Sankar
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Developer Network
 
Apple A8 Series Application Processor
Apple A8 Series Application ProcessorApple A8 Series Application Processor
Apple A8 Series Application Processor
JJ Wu
 
Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30Aruba utilities on mobile devices v30
Aruba utilities on mobile devices v30
Marcello Marchesini
 
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
AMD Developer Central
 

Similar to Cars and Computers: Building a Java Carputer (20)

The Java Carputer
The Java CarputerThe Java Carputer
The Java Carputer
Simon Ritter
 
10 Reasons to Use detector and sensor Solution Kits
10 Reasons to Use detector and sensor Solution Kits10 Reasons to Use detector and sensor Solution Kits
10 Reasons to Use detector and sensor Solution Kits
Renesas Electronics Corporation
 
Spansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller FamilySpansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller Family
Spansion
 
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
WebRTC Customer Experience Optimizations  - Kranky Geek PresentationWebRTC Customer Experience Optimizations  - Kranky Geek Presentation
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
amithap07
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
shintaro mizuno
 
"Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio...
"Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio..."Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio...
"Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio...
Edge AI and Vision Alliance
 
End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...
End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...
End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...
mfrancis
 
Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)
Marco Antonio Maciel
 
z/OS V2R2 Communications Server Overview
z/OS V2R2 Communications Server Overviewz/OS V2R2 Communications Server Overview
z/OS V2R2 Communications Server Overview
zOSCommserver
 
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Honeywell
 
Measuring and improving your app's network performance oredev
Measuring and improving your app's network performance   oredevMeasuring and improving your app's network performance   oredev
Measuring and improving your app's network performance oredev
Doug Sillars
 
TN104_Rutenberg_Sinai_090805
TN104_Rutenberg_Sinai_090805TN104_Rutenberg_Sinai_090805
TN104_Rutenberg_Sinai_090805
Orna Zadok Rutenberg
 
JavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost Computers
JavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost ComputersJavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost Computers
JavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost Computers
Jorge Hidalgo
 
HR-045-職場經驗分享
HR-045-職場經驗分享HR-045-職場經驗分享
HR-045-職場經驗分享
handbook
 
FieldServer for OEM Overview
FieldServer for OEM OverviewFieldServer for OEM Overview
FieldServer for OEM Overview
Sierra Monitor Corporation
 
Programable logic controller.pdf
Programable logic controller.pdfProgramable logic controller.pdf
Programable logic controller.pdf
sravan66
 
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
Alan Quayle
 
EMC World 2015 - The Devops Toolkit
EMC World 2015 - The Devops ToolkitEMC World 2015 - The Devops Toolkit
EMC World 2015 - The Devops Toolkit
Jonas Rosland
 
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
Jonas Rosland
 
IRJET - Implementation of SDC: Self-Driving Car based on Raspberry Pi
IRJET - Implementation of SDC: Self-Driving Car based on Raspberry PiIRJET - Implementation of SDC: Self-Driving Car based on Raspberry Pi
IRJET - Implementation of SDC: Self-Driving Car based on Raspberry Pi
IRJET Journal
 
Spansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller FamilySpansion Traveo Automotive Microcontroller Family
Spansion Traveo Automotive Microcontroller Family
Spansion
 
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
WebRTC Customer Experience Optimizations  - Kranky Geek PresentationWebRTC Customer Experience Optimizations  - Kranky Geek Presentation
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
amithap07
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
shintaro mizuno
 
"Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio...
"Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio..."Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio...
"Multiple Uses of Pipelined Video Pre-Processor Hardware in Vision Applicatio...
Edge AI and Vision Alliance
 
End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...
End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...
End-to-End Architectures for Mobile Device Services - Dave Marples, Telcordia...
mfrancis
 
Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)Plataforma Java Embedded & Internet of Things (IoT)
Plataforma Java Embedded & Internet of Things (IoT)
Marco Antonio Maciel
 
z/OS V2R2 Communications Server Overview
z/OS V2R2 Communications Server Overviewz/OS V2R2 Communications Server Overview
z/OS V2R2 Communications Server Overview
zOSCommserver
 
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Honeywell
 
Measuring and improving your app's network performance oredev
Measuring and improving your app's network performance   oredevMeasuring and improving your app's network performance   oredev
Measuring and improving your app's network performance oredev
Doug Sillars
 
JavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost Computers
JavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost ComputersJavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost Computers
JavaOne 2015 - CON6489 - Smart Open Spaces Powered by Low Cost Computers
Jorge Hidalgo
 
HR-045-職場經驗分享
HR-045-職場經驗分享HR-045-職場經驗分享
HR-045-職場經驗分享
handbook
 
Programable logic controller.pdf
Programable logic controller.pdfProgramable logic controller.pdf
Programable logic controller.pdf
sravan66
 
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
Alan Quayle
 
EMC World 2015 - The Devops Toolkit
EMC World 2015 - The Devops ToolkitEMC World 2015 - The Devops Toolkit
EMC World 2015 - The Devops Toolkit
Jonas Rosland
 
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
Jonas Rosland
 
IRJET - Implementation of SDC: Self-Driving Car based on Raspberry Pi
IRJET - Implementation of SDC: Self-Driving Car based on Raspberry PiIRJET - Implementation of SDC: Self-Driving Car based on Raspberry Pi
IRJET - Implementation of SDC: Self-Driving Car based on Raspberry Pi
IRJET Journal
 
Ad

More from IndicThreads (20)

Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs it
IndicThreads
 
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive ApplicationsUnderstanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
IndicThreads
 
Go Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayGo Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang way
IndicThreads
 
Building Resilient Microservices
Building Resilient Microservices Building Resilient Microservices
Building Resilient Microservices
IndicThreads
 
App using golang indicthreads
App using golang  indicthreadsApp using golang  indicthreads
App using golang indicthreads
IndicThreads
 
Building on quicksand microservices indicthreads
Building on quicksand microservices  indicthreadsBuilding on quicksand microservices  indicthreads
Building on quicksand microservices indicthreads
IndicThreads
 
How to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingHow to Think in RxJava Before Reacting
How to Think in RxJava Before Reacting
IndicThreads
 
Iot secure connected devices indicthreads
Iot secure connected devices indicthreadsIot secure connected devices indicthreads
Iot secure connected devices indicthreads
IndicThreads
 
Real world IoT for enterprises
Real world IoT for enterprisesReal world IoT for enterprises
Real world IoT for enterprises
IndicThreads
 
IoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreads
IndicThreads
 
Functional Programming Past Present Future
Functional Programming Past Present FutureFunctional Programming Past Present Future
Functional Programming Past Present Future
IndicThreads
 
Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams
IndicThreads
 
Building & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fameBuilding & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fame
IndicThreads
 
Internet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads ConferenceInternet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads Conference
IndicThreads
 
Scrap Your MapReduce - Apache Spark
 Scrap Your MapReduce - Apache Spark Scrap Your MapReduce - Apache Spark
Scrap Your MapReduce - Apache Spark
IndicThreads
 
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
 Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
IndicThreads
 
Speed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedbackSpeed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedback
IndicThreads
 
Unraveling OpenStack Clouds
 Unraveling OpenStack Clouds Unraveling OpenStack Clouds
Unraveling OpenStack Clouds
IndicThreads
 
Digital Transformation of the Enterprise. What IT leaders need to know!
Digital Transformation of the Enterprise. What IT  leaders need to know!Digital Transformation of the Enterprise. What IT  leaders need to know!
Digital Transformation of the Enterprise. What IT leaders need to know!
IndicThreads
 
Architectural Considerations For Complex Mobile And Web Applications
 Architectural Considerations For Complex Mobile And Web Applications Architectural Considerations For Complex Mobile And Web Applications
Architectural Considerations For Complex Mobile And Web Applications
IndicThreads
 
Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs it
IndicThreads
 
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive ApplicationsUnderstanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
IndicThreads
 
Go Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayGo Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang way
IndicThreads
 
Building Resilient Microservices
Building Resilient Microservices Building Resilient Microservices
Building Resilient Microservices
IndicThreads
 
App using golang indicthreads
App using golang  indicthreadsApp using golang  indicthreads
App using golang indicthreads
IndicThreads
 
Building on quicksand microservices indicthreads
Building on quicksand microservices  indicthreadsBuilding on quicksand microservices  indicthreads
Building on quicksand microservices indicthreads
IndicThreads
 
How to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingHow to Think in RxJava Before Reacting
How to Think in RxJava Before Reacting
IndicThreads
 
Iot secure connected devices indicthreads
Iot secure connected devices indicthreadsIot secure connected devices indicthreads
Iot secure connected devices indicthreads
IndicThreads
 
Real world IoT for enterprises
Real world IoT for enterprisesReal world IoT for enterprises
Real world IoT for enterprises
IndicThreads
 
IoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreads
IndicThreads
 
Functional Programming Past Present Future
Functional Programming Past Present FutureFunctional Programming Past Present Future
Functional Programming Past Present Future
IndicThreads
 
Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams Harnessing the Power of Java 8 Streams
Harnessing the Power of Java 8 Streams
IndicThreads
 
Building & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fameBuilding & scaling a live streaming mobile platform - Gr8 road to fame
Building & scaling a live streaming mobile platform - Gr8 road to fame
IndicThreads
 
Internet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads ConferenceInternet of things architecture perspective - IndicThreads Conference
Internet of things architecture perspective - IndicThreads Conference
IndicThreads
 
Scrap Your MapReduce - Apache Spark
 Scrap Your MapReduce - Apache Spark Scrap Your MapReduce - Apache Spark
Scrap Your MapReduce - Apache Spark
IndicThreads
 
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
 Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
IndicThreads
 
Speed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedbackSpeed up your build pipeline for faster feedback
Speed up your build pipeline for faster feedback
IndicThreads
 
Unraveling OpenStack Clouds
 Unraveling OpenStack Clouds Unraveling OpenStack Clouds
Unraveling OpenStack Clouds
IndicThreads
 
Digital Transformation of the Enterprise. What IT leaders need to know!
Digital Transformation of the Enterprise. What IT  leaders need to know!Digital Transformation of the Enterprise. What IT  leaders need to know!
Digital Transformation of the Enterprise. What IT leaders need to know!
IndicThreads
 
Architectural Considerations For Complex Mobile And Web Applications
 Architectural Considerations For Complex Mobile And Web Applications Architectural Considerations For Complex Mobile And Web Applications
Architectural Considerations For Complex Mobile And Web Applications
IndicThreads
 
Ad

Recently uploaded (20)

Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
Adobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 linkAdobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 link
mahmadzubair09
 
GDS SYSTEM | GLOBAL DISTRIBUTION SYSTEM
GDS SYSTEM | GLOBAL  DISTRIBUTION SYSTEMGDS SYSTEM | GLOBAL  DISTRIBUTION SYSTEM
GDS SYSTEM | GLOBAL DISTRIBUTION SYSTEM
philipnathen82
 
Digital Twins Software Service in Belfast
Digital Twins Software Service in BelfastDigital Twins Software Service in Belfast
Digital Twins Software Service in Belfast
julia smits
 
The Elixir Developer - All Things Open
The Elixir Developer - All Things OpenThe Elixir Developer - All Things Open
The Elixir Developer - All Things Open
Carlo Gilmar Padilla Santana
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by stepImplementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts
Dimitrios Platis
 
Robotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptxRobotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptx
julia smits
 
Creating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdfCreating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdf
Applitools
 
AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?
Amara Nielson
 
Exchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv SoftwareExchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv Software
Shoviv Software
 
Innovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at allInnovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at all
ayeshakanwal75
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Maximizing ROI with Odoo Staff Augmentation A Smarter Way to Scale
Maximizing ROI with Odoo Staff Augmentation  A Smarter Way to ScaleMaximizing ROI with Odoo Staff Augmentation  A Smarter Way to Scale
Maximizing ROI with Odoo Staff Augmentation A Smarter Way to Scale
SatishKumar2651
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
Adobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 linkAdobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 link
mahmadzubair09
 
GDS SYSTEM | GLOBAL DISTRIBUTION SYSTEM
GDS SYSTEM | GLOBAL  DISTRIBUTION SYSTEMGDS SYSTEM | GLOBAL  DISTRIBUTION SYSTEM
GDS SYSTEM | GLOBAL DISTRIBUTION SYSTEM
philipnathen82
 
Digital Twins Software Service in Belfast
Digital Twins Software Service in BelfastDigital Twins Software Service in Belfast
Digital Twins Software Service in Belfast
julia smits
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by stepImplementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts
Dimitrios Platis
 
Robotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptxRobotic Process Automation (RPA) Software Development Services.pptx
Robotic Process Automation (RPA) Software Development Services.pptx
julia smits
 
Creating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdfCreating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdf
Applitools
 
AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?
Amara Nielson
 
Exchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv SoftwareExchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv Software
Shoviv Software
 
Innovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at allInnovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at all
ayeshakanwal75
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Maximizing ROI with Odoo Staff Augmentation A Smarter Way to Scale
Maximizing ROI with Odoo Staff Augmentation  A Smarter Way to ScaleMaximizing ROI with Odoo Staff Augmentation  A Smarter Way to Scale
Maximizing ROI with Odoo Staff Augmentation A Smarter Way to Scale
SatishKumar2651
 

Cars and Computers: Building a Java Carputer

  • 1. Cars and Computers: Building a Java Carputer Simon Ritter Head of Java Technology Evangelism Oracle Corp. Twitter: @speakjava
  • 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 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. 2
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Cars And Computers
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Car Wiring: 1970s Image coutesy of Haynes manuals
  • 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Bus architecture means substantially less wiring Car Wiring: 2011 Convenience Bus Infotainment Bus Powertrain Bus
  • 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. The Java Carputer (Mark 1)
  • 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Carputer Design Objectives • Display realtime data • Engine performance (Power, Torque, Load) • Driver data (Throttle position, steering angle, braking force, etc) • G-Forces on car • Graphed data for time-based analysis
  • 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Carputer Hardware Architecture USB WiFi Dongle Touch Screen Accelerometer HDMI USB I2C 12V Car Converter ELM327 Car Service Port 5V USB
  • 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Hardware Fitting Challenges Touchscreen
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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);
  • 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Take Inspiration From Others UI Design Ideas Renault Megane Sport
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Take Inspiration From Others UI Design Ideas Tesla
  • 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Take Inspiration From Others UI Design Ideas Lamborghini Reveton
  • 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 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
  • 21. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Splash Screen UI Screens
  • 22. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. UI Screens
  • 23. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. UI Screens
  • 24. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. The Java Carputer (Mark 2)
  • 25. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Carputer Hardware Architecture 25 USB via FTDICrossover ethernet Infra red Thermal sensor CAN High CAN Low OBD2 Service Port Wi-Fi Accelerometer/ Gyro/Compass I2C USB UART Serial GPSHeart Rate Monitor USB Video Camera Raspberry Pi Model B+ 7” Touch secreen USB SDR/TPMS CAN Bus
  • 26. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Tracking Position With GPS • AdaFruit Ultimate GPS breakout – 10Hz read rate – Serial interface • Very simple configuration – Disable /dev/ttyAMA0 on Pi as console – 9600 8N1 – Read data using librxtx-java – Comma separated values $GPGGA and $GPVTG – Need to handle frequent data corruption
  • 27. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Heart Rate Monitoring of the Driver • Sparkfun board – USB interface, serial connection • Similar to GPS – Use librxtx-java – 9600, 8N1 • More complicated coding – Actually need to send a read request! • Some issues with wireless connection – 80cm max, doesn’t work well through a Rapsberry Pi
  • 28. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. In-car Video • Becoming very common to avoid insurance issues • Transcend DrivePro 200 – Built-in Wi-Fi – iPhone app • How to get video stream? – Approached Transcend tech support – Found VLC code – Wireshark – SYN/ACK, Yuck! 28 Camera Application 192.168.0.1 192.168.0.2 Port 9000 Port 43229 Port 9001 Port 42719 Port 9002 Port 58105 Port 8554 (RTSP) Port 60583
  • 29. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. The Simplest Solution Is Often The Best 29 Push button using GPIO lines and Pi4J
  • 30. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Thermal Sensors For Brakes and Tyres The Goal
  • 31. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Infra-Red Thermometer • MLX90614 breakout board – I2C interface seemed problematic on the Pi – Also has serial interface – Use FTDI breakout board – 4 wires becomes simple serial interface 31 The Reality
  • 32. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Thermal Sensor Data • Provides continuous reading as lines of text (e.g. 73.2F) – Don’t like Fahrenheit, wanted Celcius – Lambdas and Streams! 32 private double currentTemperature; public void run() { thermalReader.lines() .mapToDouble(s -> Double.parseDouble(s.substring(0, s.length() - 1))) .map(t -> ((t - 32) * 5 / 9)) .filter(t -> t != currentTemperature) .peek(t -> listener.ifPresent(l -> l.temperatureChange(t))) .forEach(t -> currentTemperature = t); }
  • 33. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Thermal Sensor Data • Provides continuous reading as lines of text (e.g. 73.2F) – Don’t like Fahrenheit, wanted Celcius – Lambdas and Streams! 33 private double currentTemperature; public void run() { thermalReader.lines() .mapToDouble(s -> Double.parseDouble(s.substring(0, s.length() - 1))) .map(t -> ((t - 32) * 5 / 9)) .filter(t -> t != this.currentTemperature) .peek(t -> listener.ifPresent(l -> l.temperatureChange(t))) .forEach(t -> this.currentTemperature = t); }
  • 34. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 34 Tyre Sensor Fitting The Thermal Sensors
  • 35. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 35 Brake Disk Sensor Fitting The Thermal Sensors
  • 36. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36 Separate Pi in Engine Bay Fitting The Thermal Sensors
  • 37. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Fitting The Thermal Sensors • Simple server listens on port • Carputer requests data • Couple of issues – Server needed reset for new connection (bug to be fixed) – How to tell which sensor is which (ttyUSB0/ttyUSB1) 37 The Networked Car
  • 38. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Fitting The Thermal Sensors • Rasperry Pi at over 50C – After 10 minute drive • New approach required – Longer USB cables – Put the Pi in the car 38 Internal Combustion Produces Heat
  • 39. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Getting Data From The CAN Bus • Controller Area Network • Used to connect many sensors, actuators and devices – Without huge amounts of wiring • Conveniently the CAN bus is connected to the OBD2 port – Yes, the wiring is there – No, the signals are not – Presumably security measure from car manufacturers – Boo!
  • 40. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Where There’s A Will There’s A Way Getting Data From The CAN Bus
  • 41. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Where There’s A Will There’s A Way Getting Data From The CAN Bus Success! (And the car still works)
  • 42. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Getting Data From The CAN Bus • Lawicel CAN bus to USB • Serial device • Sends decoded data • Need to write a Java library – CAN id – Message data • Then the hard part starts – Figuring it all out 42 Electrical Connectivity Is Only The Start
  • 43. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 43 Finished Data Capture System
  • 44. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Data Recording and Analysis
  • 45. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Display Collected Data • JavaFX application • Video stream – Synchronised to data streams • Data recorded as sequence of text records – Comma separated values – One line per sensor – Time stamp • Read all data in at start of application – 15 minutes of data takes about 100ms 45
  • 46. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. • Video (with controls) • G-forces • GPS co-ordinates/altitude • Map of current position • Speed (compare car and GPS) • Bearing • Engine load • Fuel pressure • Air intake temperature • Coolant temperature • Catalyst/exhaust temperature • Tyre temperature • Brake temperature • Throttle position • Engine RPM • Heart rate 46 Data To Display
  • 47. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Conclusions & Resources
  • 48. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Conclusions • Cars produce lots of data • Use of sensors with Java is simple to collect (most) data • Playback of data useful for insurance, fleet management, training • Java and JavaFX make UI design simple
  • 49. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Resources and Links • www.sparkfun.com • www.adafruit.com • www.raspberrypi.org • blogs.oracle.com/speakjava • Twitter: @speakjava
  • 50. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Demos
  翻译: