SlideShare ist ein Scribd-Unternehmen logo
1 von 68
Downloaden Sie, um offline zu lesen
abusing phones 
to make the internet of things 
Jan Jongboom 
JSConf EU 2014
@janjongboom 
Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
@janjongboom 
Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
First screwdriver ever! 
Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
Maker movement is 
EVERYWHERE 
(Kickstarter, spaces, fairs, Wired) 
These days hardware is totally coming back. Maker movement is everywhere. Can buy all stuff on Kickstarter, iot, etc. Even on 
cover of Wired.
Reason: Arduino & Raspberry boards that can connect ordinary stuff. Amazing for building new stuff. Phone sensors can be 
attached, low cost because huge volume.
Now one big problem for people that hardware-challenged like me. I don’t wanna do stuff like this, but still want to make things.
€ 34,99 
Also: stuff is expensive. Get a TFT display for a Rasperry Pi for 35 euro
€ 25,- 
While you can get a FULL phone for 25?!
So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera 
more & 3G instead of 2g. It can run Firefox OS that’s nice.
Bluetooth, WiFi, 3G, 
2 Cameras, GPS, 
qHD touch screen 
So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera 
more & 3G instead of 2g. It can run Firefox OS that’s nice.
Bluetooth, WiFi, 3G, 
2 Cameras, GPS, 
qHD touch screen 
So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera 
more & 3G instead of 2g. It can run Firefox OS that’s nice.
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko HTML5 
UI 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko HTML5 
UI 
Has all phone APIs in JS 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
Linux 
Kernel 
Gecko 
Has all phone APIs in JS 
From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: 
phone chipset + JS bindings to everything (OMG AWESOME)
That is awesome.
Only thing is that we still have a body around the phone. Let’s remove that.
Remove screws and open le phone.
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
Camera can click it out. Have standard connectors. Very awesome
Camera can click it out. Have standard connectors. Very awesome
There is also this thing. It does radio communication. Also need it. I don’t what this is, I just ripped it off and it still works.
So we are left with this. Printboard, radio and camera.
I also wanted to reuse the touchscreen.
So i started fiddling with screwdriver as these things are glued together
Didnt end so well
So I figured just detach the touchscreen connector.
Didnt work out that well either.
Problem: no Wifi... These paper thingies are apparently antenna’s OMG
So some tape and all is well.
So now we have super cool system on a chip 3/4 of a creditcard.
Linux 
Kernel 
Gecko 
Has all phone APIs in JS 
Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
Linux 
Kernel 
Gecko JanOS 
Has all phone APIs in JS 
Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
Linux 
Kernel 
Gecko JanOS 
Has all phone APIs in JS 
Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
JanOS 
Alternative to Firefox OS 
Some batteries included 
Need rooted Firefox OS phone 
with ADB enabled 
So it runs on any Firefox OS enabled phone. It comes with some batteries, like autoconnecting 3G, APN detection, Wifi and 
camera.
Booting / !ashing 
$ make reset-phone && adb logcat 
Keep ur casing intact, don’t need to press battery
1 <!DOCTYPE html> 
2 <html> 
3 <head> 
4 <meta name="viewport" content="width=device-5 initial-scale=1"> 
6 <meta charset="utf-8"> 
7 
8 <script src="js/bootstrap.js"></script> 
9 <script defer src="js/camera.js"></script> 
10 <script defer src="js/security_cam.js"></script> 
11 <script defer src="js/doorbell.js"></script> 
12 <script defer src="js/bluetooth.js"></script> 
13 <script defer src="js/tracker.js"></script> 
14 </head> 
16 <body> 
17 <h1>OMG WELCOME TO JANOS 1.0!</h1> 
18 </body> 
19 </html> 
So when we start Gecko we boot it into a webpage. Easy easy easy
about:app-manager 
We can now connect the app manager and execute JS and debug shit. Very cool.
Security camera 
Every 5 seconds take photo 
Save to storage (4GB!) or SD 
Sync with cloud 
So let’s look at some cool ways of using this thing. We can make a security cam, easy easy.
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Taking picture to storage 
1 window.camera.takePicture('front').then(function(blob) { 
2 var storage = navigator.getDeviceStorage('pictures'); 
3 var req = storage.addNamed(blob, 
'myawesomepicture.jpg'); 
4 req.onsuccess = function() { 
5 console.log('Saved on internal storage!'); 
6 }; 
7 });
Doorbell 
Proximity sensor 
Ring over bluetooth 
Live video stream 
Or a doorbell over bluetooth. That’s rad.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Bluetooth doorbell 
1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 
2 window.onuserproximity = function(e) { 
3 if (e.near) { 
4 var audio = new Audio('/sounds/doorbell.ogg'); 
5 audio.play(); 
6 } 
7 }; 
8 }); 
Pair it, play a soud when user is close to proximity. Truly wireless.
Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
Brian 
Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the 
apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the 
apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
BrianTracker™ 
2G connection 
Connected to push server 
Geolocation on request 
Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the 
apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
And I can press a button and track him down, just from this small device I put in his coat.
OK. DEMO TIME!!111
Get hacking 
Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts 
and make stuff. Yay. ZTE Open C is 69$ and can be rooted.
Get hacking 
Grab a rootable FxOS phone 
Crack it open 
Write your own scripts 
PROFIT! 
Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts 
and make stuff. Yay. ZTE Open C is 69$ and can be rooted.
Thank you! 
http://janjongboom.com 
THANKS!

Weitere ähnliche Inhalte

Ähnlich wie Abusing phones to make the internet of things - JSConf EU 2014

Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Brian LeRoux
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapRaymond Camden
 
IoThings you don't even need to hack
IoThings you don't even need to hackIoThings you don't even need to hack
IoThings you don't even need to hackSlawomir Jasek
 
Web design and_hosting
Web design and_hostingWeb design and_hosting
Web design and_hostingxmgkklglt1991
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConfBrian LeRoux
 
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...Codemotion
 
Js On Mobile Devices
Js On Mobile DevicesJs On Mobile Devices
Js On Mobile DevicesJens Arps
 
WebRTC Reborn - Full Stack Toronto
WebRTC Reborn -  Full Stack TorontoWebRTC Reborn -  Full Stack Toronto
WebRTC Reborn - Full Stack TorontoDan Jenkins
 
Kranky geeklondon build an app
Kranky geeklondon build an appKranky geeklondon build an app
Kranky geeklondon build an appTim Panton
 
JS Fest 2019. Sebastian Golasch. The Universal Serial Web
JS Fest 2019. Sebastian Golasch. The Universal Serial WebJS Fest 2019. Sebastian Golasch. The Universal Serial Web
JS Fest 2019. Sebastian Golasch. The Universal Serial WebJSFestUA
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
Going mobile - tip, tricks and tools for building mobile web-apps
Going mobile - tip, tricks and tools for building mobile web-appsGoing mobile - tip, tricks and tools for building mobile web-apps
Going mobile - tip, tricks and tools for building mobile web-appsJoshua May
 
Building Droids with JavaScript
Building Droids with JavaScriptBuilding Droids with JavaScript
Building Droids with JavaScriptAndrew Fisher
 
Sys 214 Final Exam
Sys 214 Final ExamSys 214 Final Exam
Sys 214 Final ExamRikki Wright
 
Rat Pack Remote Control - a technical Internet of Things (tm) basics primer
Rat Pack Remote Control - a technical Internet of Things (tm) basics primerRat Pack Remote Control - a technical Internet of Things (tm) basics primer
Rat Pack Remote Control - a technical Internet of Things (tm) basics primerSven Kräuter
 

Ähnlich wie Abusing phones to make the internet of things - JSConf EU 2014 (20)

Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Mobile JavaScript
Mobile JavaScriptMobile JavaScript
Mobile JavaScript
 
IoThings you don't even need to hack
IoThings you don't even need to hackIoThings you don't even need to hack
IoThings you don't even need to hack
 
The Immobile Web
The Immobile WebThe Immobile Web
The Immobile Web
 
Web design and_hosting
Web design and_hostingWeb design and_hosting
Web design and_hosting
 
Vodafone Widget Camp
Vodafone Widget CampVodafone Widget Camp
Vodafone Widget Camp
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
 
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
Rat Pack Remote Control – an Internet of Things basics hands on workshop by S...
 
Js On Mobile Devices
Js On Mobile DevicesJs On Mobile Devices
Js On Mobile Devices
 
WebRTC Reborn - Full Stack Toronto
WebRTC Reborn -  Full Stack TorontoWebRTC Reborn -  Full Stack Toronto
WebRTC Reborn - Full Stack Toronto
 
Kranky geeklondon build an app
Kranky geeklondon build an appKranky geeklondon build an app
Kranky geeklondon build an app
 
JS Fest 2019. Sebastian Golasch. The Universal Serial Web
JS Fest 2019. Sebastian Golasch. The Universal Serial WebJS Fest 2019. Sebastian Golasch. The Universal Serial Web
JS Fest 2019. Sebastian Golasch. The Universal Serial Web
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Going mobile - tip, tricks and tools for building mobile web-apps
Going mobile - tip, tricks and tools for building mobile web-appsGoing mobile - tip, tricks and tools for building mobile web-apps
Going mobile - tip, tricks and tools for building mobile web-apps
 
Building Droids with JavaScript
Building Droids with JavaScriptBuilding Droids with JavaScript
Building Droids with JavaScript
 
Sys 214 Final Exam
Sys 214 Final ExamSys 214 Final Exam
Sys 214 Final Exam
 
Rat Pack Remote Control - a technical Internet of Things (tm) basics primer
Rat Pack Remote Control - a technical Internet of Things (tm) basics primerRat Pack Remote Control - a technical Internet of Things (tm) basics primer
Rat Pack Remote Control - a technical Internet of Things (tm) basics primer
 

Mehr von Jan Jongboom

TinyML on Arduino - workshop
TinyML on Arduino - workshopTinyML on Arduino - workshop
TinyML on Arduino - workshopJan Jongboom
 
Intelligent Edge - Getting started with TinyML for industrial applications
Intelligent Edge - Getting started with TinyML for industrial applicationsIntelligent Edge - Getting started with TinyML for industrial applications
Intelligent Edge - Getting started with TinyML for industrial applicationsJan Jongboom
 
Teaching your sensors new tricks with Machine Learning - Eta Compute webinar
Teaching your sensors new tricks with Machine Learning - Eta Compute webinarTeaching your sensors new tricks with Machine Learning - Eta Compute webinar
Teaching your sensors new tricks with Machine Learning - Eta Compute webinarJan Jongboom
 
Get started with TinyML - Embedded online conference
Get started with TinyML - Embedded online conferenceGet started with TinyML - Embedded online conference
Get started with TinyML - Embedded online conferenceJan Jongboom
 
Adding intelligence to your LoRaWAN deployment - The Things Virtual Conference
Adding intelligence to your LoRaWAN deployment - The Things Virtual ConferenceAdding intelligence to your LoRaWAN deployment - The Things Virtual Conference
Adding intelligence to your LoRaWAN deployment - The Things Virtual ConferenceJan Jongboom
 
Get started with TinyML - Hackster webinar 9 April 2020
Get started with TinyML - Hackster webinar 9 April 2020Get started with TinyML - Hackster webinar 9 April 2020
Get started with TinyML - Hackster webinar 9 April 2020Jan Jongboom
 
Tiny intelligent computers and sensors - Open Hardware Event 2020
Tiny intelligent computers and sensors - Open Hardware Event 2020Tiny intelligent computers and sensors - Open Hardware Event 2020
Tiny intelligent computers and sensors - Open Hardware Event 2020Jan Jongboom
 
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019Jan Jongboom
 
Adding intelligence to your LoRaWAN devices - The Things Conference on tour
Adding intelligence to your LoRaWAN devices - The Things Conference on tourAdding intelligence to your LoRaWAN devices - The Things Conference on tour
Adding intelligence to your LoRaWAN devices - The Things Conference on tourJan Jongboom
 
Machine learning on 1 square centimeter - Emerce Next 2019
Machine learning on 1 square centimeter - Emerce Next 2019Machine learning on 1 square centimeter - Emerce Next 2019
Machine learning on 1 square centimeter - Emerce Next 2019Jan Jongboom
 
Fundamentals of IoT - Data Science Africa 2019
Fundamentals of IoT - Data Science Africa 2019Fundamentals of IoT - Data Science Africa 2019
Fundamentals of IoT - Data Science Africa 2019Jan Jongboom
 
17,000 contributions in 32K RAM - FOSS North 2019
17,000 contributions in 32K RAM - FOSS North 201917,000 contributions in 32K RAM - FOSS North 2019
17,000 contributions in 32K RAM - FOSS North 2019Jan Jongboom
 
Open Hours: Mbed Simulator
Open Hours: Mbed SimulatorOpen Hours: Mbed Simulator
Open Hours: Mbed SimulatorJan Jongboom
 
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OSEfficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OSJan Jongboom
 
Machine learning on 1 cm2 - Tweakers Dev Summit
Machine learning on 1 cm2 - Tweakers Dev SummitMachine learning on 1 cm2 - Tweakers Dev Summit
Machine learning on 1 cm2 - Tweakers Dev SummitJan Jongboom
 
Simulating LoRaWAN devices - LoRa Alliance AMM 2019
Simulating LoRaWAN devices - LoRa Alliance AMM 2019Simulating LoRaWAN devices - LoRa Alliance AMM 2019
Simulating LoRaWAN devices - LoRa Alliance AMM 2019Jan Jongboom
 
Develop with Mbed OS - The Things Conference 2019
Develop with Mbed OS - The Things Conference 2019Develop with Mbed OS - The Things Conference 2019
Develop with Mbed OS - The Things Conference 2019Jan Jongboom
 
Firmware Updates over LoRaWAN - The Things Conference 2019
Firmware Updates over LoRaWAN - The Things Conference 2019Firmware Updates over LoRaWAN - The Things Conference 2019
Firmware Updates over LoRaWAN - The Things Conference 2019Jan Jongboom
 
Faster Device Development - GSMA @ CES 2019
Faster Device Development - GSMA @ CES 2019Faster Device Development - GSMA @ CES 2019
Faster Device Development - GSMA @ CES 2019Jan Jongboom
 
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM TokyoMbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM TokyoJan Jongboom
 

Mehr von Jan Jongboom (20)

TinyML on Arduino - workshop
TinyML on Arduino - workshopTinyML on Arduino - workshop
TinyML on Arduino - workshop
 
Intelligent Edge - Getting started with TinyML for industrial applications
Intelligent Edge - Getting started with TinyML for industrial applicationsIntelligent Edge - Getting started with TinyML for industrial applications
Intelligent Edge - Getting started with TinyML for industrial applications
 
Teaching your sensors new tricks with Machine Learning - Eta Compute webinar
Teaching your sensors new tricks with Machine Learning - Eta Compute webinarTeaching your sensors new tricks with Machine Learning - Eta Compute webinar
Teaching your sensors new tricks with Machine Learning - Eta Compute webinar
 
Get started with TinyML - Embedded online conference
Get started with TinyML - Embedded online conferenceGet started with TinyML - Embedded online conference
Get started with TinyML - Embedded online conference
 
Adding intelligence to your LoRaWAN deployment - The Things Virtual Conference
Adding intelligence to your LoRaWAN deployment - The Things Virtual ConferenceAdding intelligence to your LoRaWAN deployment - The Things Virtual Conference
Adding intelligence to your LoRaWAN deployment - The Things Virtual Conference
 
Get started with TinyML - Hackster webinar 9 April 2020
Get started with TinyML - Hackster webinar 9 April 2020Get started with TinyML - Hackster webinar 9 April 2020
Get started with TinyML - Hackster webinar 9 April 2020
 
Tiny intelligent computers and sensors - Open Hardware Event 2020
Tiny intelligent computers and sensors - Open Hardware Event 2020Tiny intelligent computers and sensors - Open Hardware Event 2020
Tiny intelligent computers and sensors - Open Hardware Event 2020
 
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019
 
Adding intelligence to your LoRaWAN devices - The Things Conference on tour
Adding intelligence to your LoRaWAN devices - The Things Conference on tourAdding intelligence to your LoRaWAN devices - The Things Conference on tour
Adding intelligence to your LoRaWAN devices - The Things Conference on tour
 
Machine learning on 1 square centimeter - Emerce Next 2019
Machine learning on 1 square centimeter - Emerce Next 2019Machine learning on 1 square centimeter - Emerce Next 2019
Machine learning on 1 square centimeter - Emerce Next 2019
 
Fundamentals of IoT - Data Science Africa 2019
Fundamentals of IoT - Data Science Africa 2019Fundamentals of IoT - Data Science Africa 2019
Fundamentals of IoT - Data Science Africa 2019
 
17,000 contributions in 32K RAM - FOSS North 2019
17,000 contributions in 32K RAM - FOSS North 201917,000 contributions in 32K RAM - FOSS North 2019
17,000 contributions in 32K RAM - FOSS North 2019
 
Open Hours: Mbed Simulator
Open Hours: Mbed SimulatorOpen Hours: Mbed Simulator
Open Hours: Mbed Simulator
 
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OSEfficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
Efficient IoT solutions based on LoRaWAN, The Things Network and Mbed OS
 
Machine learning on 1 cm2 - Tweakers Dev Summit
Machine learning on 1 cm2 - Tweakers Dev SummitMachine learning on 1 cm2 - Tweakers Dev Summit
Machine learning on 1 cm2 - Tweakers Dev Summit
 
Simulating LoRaWAN devices - LoRa Alliance AMM 2019
Simulating LoRaWAN devices - LoRa Alliance AMM 2019Simulating LoRaWAN devices - LoRa Alliance AMM 2019
Simulating LoRaWAN devices - LoRa Alliance AMM 2019
 
Develop with Mbed OS - The Things Conference 2019
Develop with Mbed OS - The Things Conference 2019Develop with Mbed OS - The Things Conference 2019
Develop with Mbed OS - The Things Conference 2019
 
Firmware Updates over LoRaWAN - The Things Conference 2019
Firmware Updates over LoRaWAN - The Things Conference 2019Firmware Updates over LoRaWAN - The Things Conference 2019
Firmware Updates over LoRaWAN - The Things Conference 2019
 
Faster Device Development - GSMA @ CES 2019
Faster Device Development - GSMA @ CES 2019Faster Device Development - GSMA @ CES 2019
Faster Device Development - GSMA @ CES 2019
 
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM TokyoMbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
Mbed LoRaWAN stack: a case study - LoRa Alliance AMM Tokyo
 

Kürzlich hochgeladen

SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 

Kürzlich hochgeladen (17)

young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 

Abusing phones to make the internet of things - JSConf EU 2014

  • 1. abusing phones to make the internet of things Jan Jongboom JSConf EU 2014
  • 2. @janjongboom Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
  • 3. @janjongboom Jan, live in Amsterdam. Work for Telenor, LAAARGE telco. They pay me to work on Firefox OS.
  • 4. Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
  • 5. First screwdriver ever! Let me start w/ confession... Before this talk I never owned a screwdriver. That’s a dangerous road when doing a hardware talk.
  • 6. Maker movement is EVERYWHERE (Kickstarter, spaces, fairs, Wired) These days hardware is totally coming back. Maker movement is everywhere. Can buy all stuff on Kickstarter, iot, etc. Even on cover of Wired.
  • 7. Reason: Arduino & Raspberry boards that can connect ordinary stuff. Amazing for building new stuff. Phone sensors can be attached, low cost because huge volume.
  • 8. Now one big problem for people that hardware-challenged like me. I don’t wanna do stuff like this, but still want to make things.
  • 9. € 34,99 Also: stuff is expensive. Get a TFT display for a Rasperry Pi for 35 euro
  • 10. € 25,- While you can get a FULL phone for 25?!
  • 11. So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera more & 3G instead of 2g. It can run Firefox OS that’s nice.
  • 12. Bluetooth, WiFi, 3G, 2 Cameras, GPS, qHD touch screen So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera more & 3G instead of 2g. It can run Firefox OS that’s nice.
  • 13. Bluetooth, WiFi, 3G, 2 Cameras, GPS, qHD touch screen So let’s make some cool shit. This is the Geeksphone Peak. It just has normal phone features. Compared to 25$ it has 1 camera more & 3G instead of 2g. It can run Firefox OS that’s nice.
  • 14. From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 15. Linux Kernel From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 16. Linux Kernel Gecko From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 17. Linux Kernel Gecko HTML5 UI From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 18. Linux Kernel Gecko HTML5 UI Has all phone APIs in JS From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 19. Linux Kernel Gecko Has all phone APIs in JS From code perspective it looks like this: kernel, Gecko, UI. We don’t need a UI for IoT things. So let’s strip it off. What do we have: phone chipset + JS bindings to everything (OMG AWESOME)
  • 21. Only thing is that we still have a body around the phone. Let’s remove that.
  • 22. Remove screws and open le phone.
  • 23. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 24. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 25. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 26. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 27. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 28. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 29. We have SIM card, SD card, screen connector, back camera, flash, touchscreen connector
  • 30. Camera can click it out. Have standard connectors. Very awesome
  • 31. Camera can click it out. Have standard connectors. Very awesome
  • 32. There is also this thing. It does radio communication. Also need it. I don’t what this is, I just ripped it off and it still works.
  • 33. So we are left with this. Printboard, radio and camera.
  • 34. I also wanted to reuse the touchscreen.
  • 35. So i started fiddling with screwdriver as these things are glued together
  • 36. Didnt end so well
  • 37. So I figured just detach the touchscreen connector.
  • 38. Didnt work out that well either.
  • 39. Problem: no Wifi... These paper thingies are apparently antenna’s OMG
  • 40. So some tape and all is well.
  • 41. So now we have super cool system on a chip 3/4 of a creditcard.
  • 42. Linux Kernel Gecko Has all phone APIs in JS Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
  • 43. Linux Kernel Gecko JanOS Has all phone APIs in JS Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
  • 44. Linux Kernel Gecko JanOS Has all phone APIs in JS Now we can run cooler shit on top of it. As I have a big ego I called it JanOS
  • 45. JanOS Alternative to Firefox OS Some batteries included Need rooted Firefox OS phone with ADB enabled So it runs on any Firefox OS enabled phone. It comes with some batteries, like autoconnecting 3G, APN detection, Wifi and camera.
  • 46. Booting / !ashing $ make reset-phone && adb logcat Keep ur casing intact, don’t need to press battery
  • 47. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta name="viewport" content="width=device-5 initial-scale=1"> 6 <meta charset="utf-8"> 7 8 <script src="js/bootstrap.js"></script> 9 <script defer src="js/camera.js"></script> 10 <script defer src="js/security_cam.js"></script> 11 <script defer src="js/doorbell.js"></script> 12 <script defer src="js/bluetooth.js"></script> 13 <script defer src="js/tracker.js"></script> 14 </head> 16 <body> 17 <h1>OMG WELCOME TO JANOS 1.0!</h1> 18 </body> 19 </html> So when we start Gecko we boot it into a webpage. Easy easy easy
  • 48. about:app-manager We can now connect the app manager and execute JS and debug shit. Very cool.
  • 49. Security camera Every 5 seconds take photo Save to storage (4GB!) or SD Sync with cloud So let’s look at some cool ways of using this thing. We can make a security cam, easy easy.
  • 50. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 51. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 52. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 53. Taking picture to storage 1 window.camera.takePicture('front').then(function(blob) { 2 var storage = navigator.getDeviceStorage('pictures'); 3 var req = storage.addNamed(blob, 'myawesomepicture.jpg'); 4 req.onsuccess = function() { 5 console.log('Saved on internal storage!'); 6 }; 7 });
  • 54. Doorbell Proximity sensor Ring over bluetooth Live video stream Or a doorbell over bluetooth. That’s rad.
  • 55. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 56. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 57. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 58. Bluetooth doorbell 1 enableBluetoothAudio('00:0C:8A:75:EF:30').then(function() { 2 window.onuserproximity = function(e) { 3 if (e.near) { 4 var audio = new Audio('/sounds/doorbell.ogg'); 5 audio.play(); 6 } 7 }; 8 }); Pair it, play a soud when user is close to proximity. Truly wireless.
  • 59. Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
  • 60. Brian Another real life usecase. This is Brian, as you can see Brian is quite the wild boy.
  • 61. Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
  • 62. Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
  • 63. BrianTracker™ 2G connection Connected to push server Geolocation on request Brian has this tendency to get lost VERY often. In Warsaw he had to sleep on a bench outside because he couldn’t find the apartment. He also never has any power in his phone. Solution: the BrianTracker. No screen, so low battery consumption.
  • 64. And I can press a button and track him down, just from this small device I put in his coat.
  • 66. Get hacking Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts and make stuff. Yay. ZTE Open C is 69$ and can be rooted.
  • 67. Get hacking Grab a rootable FxOS phone Crack it open Write your own scripts PROFIT! Alright, this is cool and low budget, but START HACKING. Only way to really feel the powerz of hardware. Write your own scripts and make stuff. Yay. ZTE Open C is 69$ and can be rooted.