SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
IoT with the best
Paris 2016-01-16
VSCP
Åke Hedman
Maintainer VSCP (Very Simple Control Protocol)
Founder Paradise of the Frog
Disclaimer
VSCP is not seeking world domination
Does not handle the 15 second rule well
Stay foolish – Be hungry
State of things
● Vertical, vertical, vertical, vertical...
● A lot of transport mechanisms.
● A number of standardization efforts (AllSeen
alliance, IPSO alliance, Tread Group, Eclipse
IoT, etc etc etc )
● IoT???????
IoT - What is it?
● INTERNET of THINGS
● INTERNET = INTER + NET
● THINGS
● Not just wireless, not just protocol A, not just...
● Connecting nets together.
● Intranet of things
● In the end its just about Connecting things together
● Enables Big Data mining.
Problems
Problems
● We must know that a device is there and what it can
do (Discovery).
● Devices from different manufacturers must understand
each other (Message format).
● We need a common way to tell devices what to do
(Configuration).
● We need a common way to update firmware of the
devices (Firmware update).
● SECURITY!!!!
Real world
Messages
Measurements
Measurements
42
Measurements
● “Answer to the Ultimate Question of Life, the
Universe, and Everything.” - The Hitchhiker's
Guide to the Galaxy by Douglas Adams
● The approximate length of a marathon in
kilometres
● The atomic number for Molybdenum
● ...or other things.
Measurements
● It's still 42 if sent over a MQTT channel.
● ...or in an UDP packet.
● ...or sent over a highly secured link.
● ...or sent over a wireless mesh network.
● ...or sent from a mainframe.
● ...or received by the smartest person/machine
in the universe.
Measurement
● So the conclusion is that the receiver has to
know that “42” is a temperature measurement
for the value to be useful at that receiving end.
● So we have to add “information” to the value.
Measurements
So if we know it's a temperature measurement?
Measurements
Typically solved as
by JSON
{
“measurement”: {
“type”: “temperature”,
“value”: 42,
}
}
or in XML
<measurement>
<value type=”temperature”>42</value>
</measurement>
Measurements
Still not perfect
Measurements
Typically solved as
by JSON
{
“measurement”: {
“type”: “temperature”,
“unit”: “kelvin”,
“value”: 42,
}
}
or in XML
<measurement>
<value type=”temperature” unit=”kelvin”>42</value>
</measurement>
Measurement
● Wasteful.
● Over air/cable.
● In RAM of low end device.
● On resources on low end device.
Measurements - VSCP
Typically solved as
in JSON
{
“measurement”: {
“head”:0,
“class”: 10,
“type”: 6,
“unit”: 0,
“sensorindex”: 0
“coding”:
“value”: 42,
}
}
in XML
<measurement head=”0” class=”10” type=”6” >
<value type=”temperature” unit=”kelvin”>42</value>
</measurement>
Measurements
● SI system.
● Well defined data.
● Compare with web.
On/Off
● Same thing.
● Some send literal “on” and “off”
● Others send literal/binary “0” and “1”
● Even others send “‫”في‬ and “‫”بعيدا‬
●
Or even “ 上の” and “ オフ”
● Hard to know what a device is expecting and
equally hard to understand what to do when
received.
VSCP way
Start with the lowest level
How VSCP does it
● Lowest common denominator is the CAN frame
● CAN packet size (8-bytes) .
● Binary
How VSCP does it
● Two levels. Level I and Level II. Mainly differ in
packet size.
● What other calls messages we call EVENTS
● VSCP is an application level protocol.
● On,off,TurnOn,TurnOff etc etc etc etc has a well
defined format.
● Events identified by a class (sort of group) and a
type. Temperature for example is
CLASS1.MEASUREMENT, Type=6
How VSCP does it
● VSCP Level I have a maximum of 512 classes
defined (alarms, measurements, information,
protocol,.......growing) each with 255 possible
types.
● VSCP Level II have a maximum of 65536
classes and where each can have 65535 types.
Turning on “something” in VSCP
● So turning on “something” in VSCP is done by sending
a CLASS1.CONTROL, Type=5 (TurnOn) event.
● Most often the device(s) that is turned on reply with
CLASS1.INFORMATION, Type=3 (On) Event(s).
● Similar CLASS1.CONTROL, Type=6 (TurnOff) event
turn “something” off and expects
CLASS1.INFORMATION, Type=4 (Off) Event(s).
Requires content of Level 1 event
● Flags: 7 bits (priority, hardcoded).
● VSCP Class: 9-bits.
● VSCP Type: 8-bits
● Nickname: 8/16/(24/32)-bits.
● Data: 0-8 bytes.
CAN4VSCP
● 32-bit id.
● Nickname is 8-bits. Can be discovered or hard
coded.
● 0-8 data bytes.
Other events
TurnOn Event over CAN4VSCP
● 32-bit id containing priority, class,type and
nickname described here.
● VSCP-Class =30 (CLASS1.CONTROL)
● VSCP-Type=5 (TurnOn)
● Three data bytes
● Byte 0: User specified. Usually set to zero.
● Byte 1: Zone
● Byte 2: Subzone
But TurnOn can look like this to
in JSON
{
“vscpevent”: {
“priority”:0,
“vscpclass”: 10,
“vscptype”: 6,
“guid”: “”
“data”: {0,0,0}
}
}
in XML
<vscpevent priority=”0” vscpclass=”30” vscptype=”5” guid=”” data=”” />
General VSCP Properties
● Application level protocol.
● No server needed.
● Not addressed.
● Free.
● Open.
● KISS (Keep It Simple Stupid).
Discovery
Discovery
● How do we know things are available?
● Beacons
● Heart beats
How VSCP do it
● Every node send a heartbeat at least once a
minute.
● Possible to scan for nodes.
● When a node identify itself it itself contain the
key to its configuration and usage.
Configuration
Configuration
● We always need a way to tell things what to do
and how to do it before they become useful for
us.
● Pre Windows and HAL sometimes 30 diskettes
for drivers one for the application. HAL was the
thing that made it happen.
● Just as HAL abstracts hardware we need
abstractions for black boxes.
The black box
The black box
The black box
● And they all are all different inside.
● They (almost) always need a manual to
understand how to configure them.
● “Where is the manual...”
●
How VSCP do it
How does VSCP do it?
● The IC Circuit is a successful black box In the
real world.
● Scale well
● Can talk to other IC's
● Is configured with “switches” or registers.
Register Abstraction Model
● So a VSCP black box have a set of registers.
Standard registers. User registers.
● Every register is 8-bits wide.
● There is 128 registers (Standard registers)
reserved on every node that must be there.
● Level I: 128 * 65536 registers that the maker of
the device can use.
● Level II: 32-bit address pointer.
Register Abstraction Model –
Standard registers
● GUID – Globally unique id.
● Pointer to MDF (Module description file).
● Boot loader algorithm.
● Hardware version.
● Firmware version.
●
GUID
● GUID is a 128 bit globally unique id that identify
a unit.
● A nickname (8/16 bit) can be used on a local
bus to save bandwidth..
● GUID's can map to many other globally unique
id's. See Specification.
● GUID series can be requested for free from
guid@vscp.org
Module Description File (MDF)
● XML-file that describe the module.
● Normally fetched from an Internet location but can be fetched from the
device directly to.
● Defines registers and there content.
● Defines abstractions (high level data types).
● Define events sent by node and there content.
● Define actions the nodes decision matrix can generate.
● Defines setup wizards.
● Firmware update information.
● Points to contact info of maker, manual for device, firmware, pictures, is
multilingual and a lot more.
Abstractions
● Present register content as high level data types.
● bool
● string
● long
● float/double
● guid
● Etc etc.
Decision Matrix
● Optional.
● Configure what action a node should perform
when it receives an event.
● For example turn on relay one when a TurnOn-
event is received.
Decision Matrix
● Optional.
● Configure what action a node should perform
when it receives an event.
● For example turn on relay one when a TurnOn-
event is received.
Setup wizards
● A assisted guide to follow, to get a specific
functionality of a device, described in XML.
● Report temperature in degrees Fahrenheit
every minute and alarm me if temperature goes
over 77 degrees or below 32.
● Can be read and served by all UI's
(phones/PC's/tablets/browsers/applications/...)
Firmware update
Firmware update
● Standard algorithm.
● Device specific algorithms.
● Who can/is allowed to do it.
● Protect copying of products.
Implementation
● 2.5K overhead in flash.
● A few bytes of RAM
● Can be implemented alongside proprietary
solution.
Security
● SSL (TCP/IP)
● Aes (Multicast, raw ethernet, wireless)
● Other.
Multicast
● Used for discovery.
● Used to form subnets/groups.
Raw Ethernet
● No need for a tcp/ip stack.
● Very low on recources.
● Do normally not pass a router.
For the end user
● A node is discovered.
● Get MDF from it.
● Configure the node.
● Make it interact with other nodes.
● Use wizard to get help to set up a device to do
“something”.
● Same every time.
Tools
● The VSCP daemon
● VSCP Works
● VSCP Helper library
● Javascript library with HTML5 widgets (websocket)
● Firmware code for multiple platforms.
● Examples.
● Windows/Linux(Pi/Beaglebone)
The VSCP Daemon
● The VSCP “server”.
● TCP/IP interface. This interface is a superset of a general tcp/ip interface that
can be implemented by devices.
● Drivers for everything can be connected. Can be used to abstract non “VSCP
things” to look like they are “VSCP things”. Or the other way around. Many
driver available.
● Multicast interface.
● Advanced internal decision matrix.
● Built in webserver.
● Websocket interface
● REST interface (plain text/CSV/JSON/JSONP/XML).
● Soon built in MQTT and CoAP support.
VSCP Works
● Investigate what is happening on local or
remote bus.
● Interact with nodes.
● Discover nodes.
● Configure nodes.
● Load firmware into devices.
● And more...
VSCP Helper library
● C library for Windows/Linux
● Bindings for many programming tools available
or on the way.
● Many functions to handle VSCP related tasks.
● Can be used to connect to a remote VSCP
daemon in an easy way.
Javascript library
● Interface the efficient websocket interface.
● Buttons.
● Gauges.
● Diagrams
● Tables.
...and more
● A lot more.
The End
● Contribute to the project (http://www.vscp.org)
● Vote for VSCP in Postscape IoT Open source award
http://iotawards.postscapes.com/2015-16/top-iot-open-s
ource-project
● Documentation is here http://vscp.org/#documentation
● Getting started guides is here
http://www.vscp.org/wiki/doku.php/howto/start
● Software is here
https://github.com/grodansparadis/vscp/releases
● Thanks

Mais conteúdo relacionado

Mais procurados

Diagnosing HotSpot JVM Memory Leaks with JFR and JMC
Diagnosing HotSpot JVM Memory Leaks with JFR and JMCDiagnosing HotSpot JVM Memory Leaks with JFR and JMC
Diagnosing HotSpot JVM Memory Leaks with JFR and JMCMushfekur Rahman
 
Layer 7 Firewall on Mikrotik
Layer 7 Firewall on MikrotikLayer 7 Firewall on Mikrotik
Layer 7 Firewall on MikrotikGLC Networks
 
MPLS on Router OS V7 - Part 1
MPLS on Router OS V7 - Part 1MPLS on Router OS V7 - Part 1
MPLS on Router OS V7 - Part 1GLC Networks
 
Provide Internet Services Using GPON
Provide Internet Services Using GPONProvide Internet Services Using GPON
Provide Internet Services Using GPONGLC Networks
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State MachinesMichael Scovetta
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1GLC Networks
 
Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security
Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security
Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security GLC Networks
 
Telecommunication Evolution
Telecommunication EvolutionTelecommunication Evolution
Telecommunication EvolutionGLC Networks
 
Quest for a low powered home hub 120522
Quest for a low powered home hub 120522Quest for a low powered home hub 120522
Quest for a low powered home hub 120522Paul Tanner
 
Building Indoor Wireless Network
Building Indoor Wireless NetworkBuilding Indoor Wireless Network
Building Indoor Wireless NetworkGLC Networks
 
Using Mikrotik Switch Features to Improve Your Network
Using Mikrotik Switch Features to Improve Your Network Using Mikrotik Switch Features to Improve Your Network
Using Mikrotik Switch Features to Improve Your Network GLC Networks
 
Machine Learning with Python
Machine Learning with Python Machine Learning with Python
Machine Learning with Python GLC Networks
 
Mikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and SecurityMikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and SecurityGLC Networks
 
Up and Running SSH Service - Part 1
Up and Running SSH Service - Part 1Up and Running SSH Service - Part 1
Up and Running SSH Service - Part 1GLC Networks
 
The Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation LevelsThe Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation LevelsBoris Hristov
 

Mais procurados (18)

Diagnosing HotSpot JVM Memory Leaks with JFR and JMC
Diagnosing HotSpot JVM Memory Leaks with JFR and JMCDiagnosing HotSpot JVM Memory Leaks with JFR and JMC
Diagnosing HotSpot JVM Memory Leaks with JFR and JMC
 
Android Attacks
Android AttacksAndroid Attacks
Android Attacks
 
Layer 7 Firewall on Mikrotik
Layer 7 Firewall on MikrotikLayer 7 Firewall on Mikrotik
Layer 7 Firewall on Mikrotik
 
MPLS on Router OS V7 - Part 1
MPLS on Router OS V7 - Part 1MPLS on Router OS V7 - Part 1
MPLS on Router OS V7 - Part 1
 
Provide Internet Services Using GPON
Provide Internet Services Using GPONProvide Internet Services Using GPON
Provide Internet Services Using GPON
 
Exploitation and State Machines
Exploitation and State MachinesExploitation and State Machines
Exploitation and State Machines
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1
 
Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security
Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security
Troubleshooting Layer 2 Ethernet Problem: Loop, Broadcast, Security
 
Telecommunication Evolution
Telecommunication EvolutionTelecommunication Evolution
Telecommunication Evolution
 
Quest for a low powered home hub 120522
Quest for a low powered home hub 120522Quest for a low powered home hub 120522
Quest for a low powered home hub 120522
 
Building Indoor Wireless Network
Building Indoor Wireless NetworkBuilding Indoor Wireless Network
Building Indoor Wireless Network
 
Using Mikrotik Switch Features to Improve Your Network
Using Mikrotik Switch Features to Improve Your Network Using Mikrotik Switch Features to Improve Your Network
Using Mikrotik Switch Features to Improve Your Network
 
Machine Learning with Python
Machine Learning with Python Machine Learning with Python
Machine Learning with Python
 
Mikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and SecurityMikrotik IP Settings For Performance and Security
Mikrotik IP Settings For Performance and Security
 
SOSCON 2016 JerryScript
SOSCON 2016 JerryScriptSOSCON 2016 JerryScript
SOSCON 2016 JerryScript
 
An introduction to Arduino
An introduction to ArduinoAn introduction to Arduino
An introduction to Arduino
 
Up and Running SSH Service - Part 1
Up and Running SSH Service - Part 1Up and Running SSH Service - Part 1
Up and Running SSH Service - Part 1
 
The Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation LevelsThe Nightmare of Locking, Blocking and Isolation Levels
The Nightmare of Locking, Blocking and Isolation Levels
 

Semelhante a Ake hedman why we need to unite and why vscp is a solution to a problem

Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012DefCamp
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
Introduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and ProgrammingIntroduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and ProgrammingEmmanuel Obot
 
2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB Workshop2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB WorkshopAntonio Mondragon
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxSamsung Open Source Group
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1tAmit Serper
 
Unified stateful big data processing in Apache Beam (incubating)
Unified stateful big data processing in Apache Beam (incubating)Unified stateful big data processing in Apache Beam (incubating)
Unified stateful big data processing in Apache Beam (incubating)Aljoscha Krettek
 
Aljoscha Krettek - Portable stateful big data processing in Apache Beam
Aljoscha Krettek - Portable stateful big data processing in Apache BeamAljoscha Krettek - Portable stateful big data processing in Apache Beam
Aljoscha Krettek - Portable stateful big data processing in Apache BeamVerverica
 
Building a Database for the End of the World
Building a Database for the End of the WorldBuilding a Database for the End of the World
Building a Database for the End of the Worldjhugg
 
Arduino by yogesh t s'
Arduino by yogesh t s'Arduino by yogesh t s'
Arduino by yogesh t s'tsyogesh46
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightAndy Gelme
 
Introduction to FreeRTOS
Introduction to FreeRTOSIntroduction to FreeRTOS
Introduction to FreeRTOSICS
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Jorisimec.archive
 
Introduction to the Arduino
Introduction to the ArduinoIntroduction to the Arduino
Introduction to the ArduinoWingston
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFoholiab
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon
 
Tft touch screen manufacturers
Tft touch screen manufacturersTft touch screen manufacturers
Tft touch screen manufacturersKeatonParker2
 

Semelhante a Ake hedman why we need to unite and why vscp is a solution to a problem (20)

Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
Introduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and ProgrammingIntroduction to Arduino Hardware and Programming
Introduction to Arduino Hardware and Programming
 
2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB Workshop2nd ARM Developer Day - NXP USB Workshop
2nd ARM Developer Day - NXP USB Workshop
 
Introduction to Microcontrollers
Introduction to MicrocontrollersIntroduction to Microcontrollers
Introduction to Microcontrollers
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
 
Hardware hacking
Hardware hackingHardware hacking
Hardware hacking
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1t
 
Unified stateful big data processing in Apache Beam (incubating)
Unified stateful big data processing in Apache Beam (incubating)Unified stateful big data processing in Apache Beam (incubating)
Unified stateful big data processing in Apache Beam (incubating)
 
Aljoscha Krettek - Portable stateful big data processing in Apache Beam
Aljoscha Krettek - Portable stateful big data processing in Apache BeamAljoscha Krettek - Portable stateful big data processing in Apache Beam
Aljoscha Krettek - Portable stateful big data processing in Apache Beam
 
Building a Database for the End of the World
Building a Database for the End of the WorldBuilding a Database for the End of the World
Building a Database for the End of the World
 
Arduino by yogesh t s'
Arduino by yogesh t s'Arduino by yogesh t s'
Arduino by yogesh t s'
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
 
Introduction to FreeRTOS
Introduction to FreeRTOSIntroduction to FreeRTOS
Introduction to FreeRTOS
 
Tos tutorial
Tos tutorialTos tutorial
Tos tutorial
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris
 
Introduction to the Arduino
Introduction to the ArduinoIntroduction to the Arduino
Introduction to the Arduino
 
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPFA Kernel of Truth: Intrusion Detection and Attestation with eBPF
A Kernel of Truth: Intrusion Detection and Attestation with eBPF
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
 
Tft touch screen manufacturers
Tft touch screen manufacturersTft touch screen manufacturers
Tft touch screen manufacturers
 

Mais de WithTheBest

Riccardo Vittoria
Riccardo VittoriaRiccardo Vittoria
Riccardo VittoriaWithTheBest
 
Recreating history in virtual reality
Recreating history in virtual realityRecreating history in virtual reality
Recreating history in virtual realityWithTheBest
 
Engaging and sharing your VR experience
Engaging and sharing your VR experienceEngaging and sharing your VR experience
Engaging and sharing your VR experienceWithTheBest
 
How to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie StudioHow to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie StudioWithTheBest
 
Mixed reality 101
Mixed reality 101 Mixed reality 101
Mixed reality 101 WithTheBest
 
Unlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive TechnologyUnlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive TechnologyWithTheBest
 
Building your own video devices
Building your own video devicesBuilding your own video devices
Building your own video devicesWithTheBest
 
Maximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unityMaximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unityWithTheBest
 
Haptics & amp; null space vr
Haptics & amp; null space vrHaptics & amp; null space vr
Haptics & amp; null space vrWithTheBest
 
How we use vr to break the laws of physics
How we use vr to break the laws of physicsHow we use vr to break the laws of physics
How we use vr to break the laws of physicsWithTheBest
 
The Virtual Self
The Virtual Self The Virtual Self
The Virtual Self WithTheBest
 
You dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helpsYou dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helpsWithTheBest
 
Omnivirt overview
Omnivirt overviewOmnivirt overview
Omnivirt overviewWithTheBest
 
VR Interactions - Jason Jerald
VR Interactions - Jason JeraldVR Interactions - Jason Jerald
VR Interactions - Jason JeraldWithTheBest
 
Japheth Funding your startup - dating the devil
Japheth  Funding your startup - dating the devilJapheth  Funding your startup - dating the devil
Japheth Funding your startup - dating the devilWithTheBest
 
Transported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estateTransported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estateWithTheBest
 
Measuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VRMeasuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VRWithTheBest
 
Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode. Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode. WithTheBest
 
VR, a new technology over 40,000 years old
VR, a new technology over 40,000 years oldVR, a new technology over 40,000 years old
VR, a new technology over 40,000 years oldWithTheBest
 

Mais de WithTheBest (20)

Riccardo Vittoria
Riccardo VittoriaRiccardo Vittoria
Riccardo Vittoria
 
Recreating history in virtual reality
Recreating history in virtual realityRecreating history in virtual reality
Recreating history in virtual reality
 
Engaging and sharing your VR experience
Engaging and sharing your VR experienceEngaging and sharing your VR experience
Engaging and sharing your VR experience
 
How to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie StudioHow to survive the early days of VR as an Indie Studio
How to survive the early days of VR as an Indie Studio
 
Mixed reality 101
Mixed reality 101 Mixed reality 101
Mixed reality 101
 
Unlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive TechnologyUnlocking Human Potential with Immersive Technology
Unlocking Human Potential with Immersive Technology
 
Building your own video devices
Building your own video devicesBuilding your own video devices
Building your own video devices
 
Maximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unityMaximizing performance of 3 d user generated assets in unity
Maximizing performance of 3 d user generated assets in unity
 
Wizdish rovr
Wizdish rovrWizdish rovr
Wizdish rovr
 
Haptics & amp; null space vr
Haptics & amp; null space vrHaptics & amp; null space vr
Haptics & amp; null space vr
 
How we use vr to break the laws of physics
How we use vr to break the laws of physicsHow we use vr to break the laws of physics
How we use vr to break the laws of physics
 
The Virtual Self
The Virtual Self The Virtual Self
The Virtual Self
 
You dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helpsYou dont have to be mad to do VR and AR ... but it helps
You dont have to be mad to do VR and AR ... but it helps
 
Omnivirt overview
Omnivirt overviewOmnivirt overview
Omnivirt overview
 
VR Interactions - Jason Jerald
VR Interactions - Jason JeraldVR Interactions - Jason Jerald
VR Interactions - Jason Jerald
 
Japheth Funding your startup - dating the devil
Japheth  Funding your startup - dating the devilJapheth  Funding your startup - dating the devil
Japheth Funding your startup - dating the devil
 
Transported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estateTransported vr the virtual reality platform for real estate
Transported vr the virtual reality platform for real estate
 
Measuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VRMeasuring Behavior in VR - Rob Merki Cognitive VR
Measuring Behavior in VR - Rob Merki Cognitive VR
 
Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode. Global demand for Mixed Realty (VR/AR) content is about to explode.
Global demand for Mixed Realty (VR/AR) content is about to explode.
 
VR, a new technology over 40,000 years old
VR, a new technology over 40,000 years oldVR, a new technology over 40,000 years old
VR, a new technology over 40,000 years old
 

Último

怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证ehyxf
 
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证ehyxf
 
Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...gajnagarg
 
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制uodye
 
Hilti's Latest Battery - Hire Depot.pptx
Hilti's Latest Battery - Hire Depot.pptxHilti's Latest Battery - Hire Depot.pptx
Hilti's Latest Battery - Hire Depot.pptxhiredepot6
 
一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样
一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样
一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样ayoqf
 
Call Girls Amethi 9332606886 HOT & SEXY Models beautiful and charming call g...
Call Girls Amethi  9332606886 HOT & SEXY Models beautiful and charming call g...Call Girls Amethi  9332606886 HOT & SEXY Models beautiful and charming call g...
Call Girls Amethi 9332606886 HOT & SEXY Models beautiful and charming call g...Sareena Khatun
 
怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证
怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证
怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证tufbav
 
LANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURE
LANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURELANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURE
LANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHUREF2081syahirahliyana
 
CRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptx
CRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptxCRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptx
CRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptxRishabh332761
 
一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证
一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证
一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证wpkuukw
 
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证ehyxf
 
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证tufbav
 
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一uodye
 
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime GuwahatiGuwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahatimeghakumariji156
 
🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...
🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...
🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...Call Girls Mumbai
 
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...Priya Reddy
 

Último (20)

怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
 
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
 
Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Udgir [ 7014168258 ] Call Me For Genuine Models We ...
 
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
 
Hilti's Latest Battery - Hire Depot.pptx
Hilti's Latest Battery - Hire Depot.pptxHilti's Latest Battery - Hire Depot.pptx
Hilti's Latest Battery - Hire Depot.pptx
 
一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样
一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样
一比一原版(CSUEB毕业证书)东湾分校毕业证原件一模一样
 
Call Girls Amethi 9332606886 HOT & SEXY Models beautiful and charming call g...
Call Girls Amethi  9332606886 HOT & SEXY Models beautiful and charming call g...Call Girls Amethi  9332606886 HOT & SEXY Models beautiful and charming call g...
Call Girls Amethi 9332606886 HOT & SEXY Models beautiful and charming call g...
 
怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证
怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证
怎样办理斯威本科技大学毕业证(SUT毕业证书)成绩单留信认证
 
Buy Abortion pills in Riyadh |+966572737505 | Get Cytotec
Buy Abortion pills in Riyadh |+966572737505 | Get CytotecBuy Abortion pills in Riyadh |+966572737505 | Get Cytotec
Buy Abortion pills in Riyadh |+966572737505 | Get Cytotec
 
In Riyadh Saudi Arabia |+966572737505 | Buy Cytotec| Get Abortion pills
In Riyadh Saudi Arabia |+966572737505 | Buy Cytotec| Get Abortion pillsIn Riyadh Saudi Arabia |+966572737505 | Buy Cytotec| Get Abortion pills
In Riyadh Saudi Arabia |+966572737505 | Buy Cytotec| Get Abortion pills
 
LANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURE
LANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURELANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURE
LANDSLIDE MONITORING AND ALERT SYSTEM FINAL YEAR PROJECT BROCHURE
 
CRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptx
CRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptxCRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptx
CRISIS COMMUNICATION presentation=-Rishabh(11195)-group ppt (4).pptx
 
一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证
一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证
一比一定(购)新西兰林肯大学毕业证(Lincoln毕业证)成绩单学位证
 
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
 
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
 
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
 
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime GuwahatiGuwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
 
🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...
🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...
🌹Patia⬅️ Vip Call Girls Bhubaneswar 📱9777949614 Book Well Trand Call Girls In...
 
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
 

Ake hedman why we need to unite and why vscp is a solution to a problem

  • 1. IoT with the best Paris 2016-01-16 VSCP Åke Hedman Maintainer VSCP (Very Simple Control Protocol) Founder Paradise of the Frog
  • 2. Disclaimer VSCP is not seeking world domination Does not handle the 15 second rule well Stay foolish – Be hungry
  • 3. State of things ● Vertical, vertical, vertical, vertical... ● A lot of transport mechanisms. ● A number of standardization efforts (AllSeen alliance, IPSO alliance, Tread Group, Eclipse IoT, etc etc etc ) ● IoT???????
  • 4. IoT - What is it? ● INTERNET of THINGS ● INTERNET = INTER + NET ● THINGS ● Not just wireless, not just protocol A, not just... ● Connecting nets together. ● Intranet of things ● In the end its just about Connecting things together ● Enables Big Data mining.
  • 6. Problems ● We must know that a device is there and what it can do (Discovery). ● Devices from different manufacturers must understand each other (Message format). ● We need a common way to tell devices what to do (Configuration). ● We need a common way to update firmware of the devices (Firmware update). ● SECURITY!!!!
  • 9. Measurements ● “Answer to the Ultimate Question of Life, the Universe, and Everything.” - The Hitchhiker's Guide to the Galaxy by Douglas Adams ● The approximate length of a marathon in kilometres ● The atomic number for Molybdenum ● ...or other things.
  • 10. Measurements ● It's still 42 if sent over a MQTT channel. ● ...or in an UDP packet. ● ...or sent over a highly secured link. ● ...or sent over a wireless mesh network. ● ...or sent from a mainframe. ● ...or received by the smartest person/machine in the universe.
  • 11. Measurement ● So the conclusion is that the receiver has to know that “42” is a temperature measurement for the value to be useful at that receiving end. ● So we have to add “information” to the value.
  • 12. Measurements So if we know it's a temperature measurement?
  • 13. Measurements Typically solved as by JSON { “measurement”: { “type”: “temperature”, “value”: 42, } } or in XML <measurement> <value type=”temperature”>42</value> </measurement>
  • 15. Measurements Typically solved as by JSON { “measurement”: { “type”: “temperature”, “unit”: “kelvin”, “value”: 42, } } or in XML <measurement> <value type=”temperature” unit=”kelvin”>42</value> </measurement>
  • 16. Measurement ● Wasteful. ● Over air/cable. ● In RAM of low end device. ● On resources on low end device.
  • 17. Measurements - VSCP Typically solved as in JSON { “measurement”: { “head”:0, “class”: 10, “type”: 6, “unit”: 0, “sensorindex”: 0 “coding”: “value”: 42, } } in XML <measurement head=”0” class=”10” type=”6” > <value type=”temperature” unit=”kelvin”>42</value> </measurement>
  • 18. Measurements ● SI system. ● Well defined data. ● Compare with web.
  • 19. On/Off ● Same thing. ● Some send literal “on” and “off” ● Others send literal/binary “0” and “1” ● Even others send “‫”في‬ and “‫”بعيدا‬ ● Or even “ 上の” and “ オフ” ● Hard to know what a device is expecting and equally hard to understand what to do when received.
  • 20. VSCP way Start with the lowest level
  • 21. How VSCP does it ● Lowest common denominator is the CAN frame ● CAN packet size (8-bytes) . ● Binary
  • 22. How VSCP does it ● Two levels. Level I and Level II. Mainly differ in packet size. ● What other calls messages we call EVENTS ● VSCP is an application level protocol. ● On,off,TurnOn,TurnOff etc etc etc etc has a well defined format. ● Events identified by a class (sort of group) and a type. Temperature for example is CLASS1.MEASUREMENT, Type=6
  • 23. How VSCP does it ● VSCP Level I have a maximum of 512 classes defined (alarms, measurements, information, protocol,.......growing) each with 255 possible types. ● VSCP Level II have a maximum of 65536 classes and where each can have 65535 types.
  • 24. Turning on “something” in VSCP ● So turning on “something” in VSCP is done by sending a CLASS1.CONTROL, Type=5 (TurnOn) event. ● Most often the device(s) that is turned on reply with CLASS1.INFORMATION, Type=3 (On) Event(s). ● Similar CLASS1.CONTROL, Type=6 (TurnOff) event turn “something” off and expects CLASS1.INFORMATION, Type=4 (Off) Event(s).
  • 25. Requires content of Level 1 event ● Flags: 7 bits (priority, hardcoded). ● VSCP Class: 9-bits. ● VSCP Type: 8-bits ● Nickname: 8/16/(24/32)-bits. ● Data: 0-8 bytes.
  • 26. CAN4VSCP ● 32-bit id. ● Nickname is 8-bits. Can be discovered or hard coded. ● 0-8 data bytes.
  • 28. TurnOn Event over CAN4VSCP ● 32-bit id containing priority, class,type and nickname described here. ● VSCP-Class =30 (CLASS1.CONTROL) ● VSCP-Type=5 (TurnOn) ● Three data bytes ● Byte 0: User specified. Usually set to zero. ● Byte 1: Zone ● Byte 2: Subzone
  • 29. But TurnOn can look like this to in JSON { “vscpevent”: { “priority”:0, “vscpclass”: 10, “vscptype”: 6, “guid”: “” “data”: {0,0,0} } } in XML <vscpevent priority=”0” vscpclass=”30” vscptype=”5” guid=”” data=”” />
  • 30. General VSCP Properties ● Application level protocol. ● No server needed. ● Not addressed. ● Free. ● Open. ● KISS (Keep It Simple Stupid).
  • 32. Discovery ● How do we know things are available? ● Beacons ● Heart beats
  • 33. How VSCP do it ● Every node send a heartbeat at least once a minute. ● Possible to scan for nodes. ● When a node identify itself it itself contain the key to its configuration and usage.
  • 35. Configuration ● We always need a way to tell things what to do and how to do it before they become useful for us. ● Pre Windows and HAL sometimes 30 diskettes for drivers one for the application. HAL was the thing that made it happen. ● Just as HAL abstracts hardware we need abstractions for black boxes.
  • 38. The black box ● And they all are all different inside. ● They (almost) always need a manual to understand how to configure them. ● “Where is the manual...” ●
  • 40. How does VSCP do it? ● The IC Circuit is a successful black box In the real world. ● Scale well ● Can talk to other IC's ● Is configured with “switches” or registers.
  • 41. Register Abstraction Model ● So a VSCP black box have a set of registers. Standard registers. User registers. ● Every register is 8-bits wide. ● There is 128 registers (Standard registers) reserved on every node that must be there. ● Level I: 128 * 65536 registers that the maker of the device can use. ● Level II: 32-bit address pointer.
  • 42. Register Abstraction Model – Standard registers ● GUID – Globally unique id. ● Pointer to MDF (Module description file). ● Boot loader algorithm. ● Hardware version. ● Firmware version. ●
  • 43. GUID ● GUID is a 128 bit globally unique id that identify a unit. ● A nickname (8/16 bit) can be used on a local bus to save bandwidth.. ● GUID's can map to many other globally unique id's. See Specification. ● GUID series can be requested for free from guid@vscp.org
  • 44. Module Description File (MDF) ● XML-file that describe the module. ● Normally fetched from an Internet location but can be fetched from the device directly to. ● Defines registers and there content. ● Defines abstractions (high level data types). ● Define events sent by node and there content. ● Define actions the nodes decision matrix can generate. ● Defines setup wizards. ● Firmware update information. ● Points to contact info of maker, manual for device, firmware, pictures, is multilingual and a lot more.
  • 45. Abstractions ● Present register content as high level data types. ● bool ● string ● long ● float/double ● guid ● Etc etc.
  • 46. Decision Matrix ● Optional. ● Configure what action a node should perform when it receives an event. ● For example turn on relay one when a TurnOn- event is received.
  • 47. Decision Matrix ● Optional. ● Configure what action a node should perform when it receives an event. ● For example turn on relay one when a TurnOn- event is received.
  • 48. Setup wizards ● A assisted guide to follow, to get a specific functionality of a device, described in XML. ● Report temperature in degrees Fahrenheit every minute and alarm me if temperature goes over 77 degrees or below 32. ● Can be read and served by all UI's (phones/PC's/tablets/browsers/applications/...)
  • 50. Firmware update ● Standard algorithm. ● Device specific algorithms. ● Who can/is allowed to do it. ● Protect copying of products.
  • 51. Implementation ● 2.5K overhead in flash. ● A few bytes of RAM ● Can be implemented alongside proprietary solution.
  • 52. Security ● SSL (TCP/IP) ● Aes (Multicast, raw ethernet, wireless) ● Other.
  • 53. Multicast ● Used for discovery. ● Used to form subnets/groups.
  • 54. Raw Ethernet ● No need for a tcp/ip stack. ● Very low on recources. ● Do normally not pass a router.
  • 55. For the end user ● A node is discovered. ● Get MDF from it. ● Configure the node. ● Make it interact with other nodes. ● Use wizard to get help to set up a device to do “something”. ● Same every time.
  • 56. Tools ● The VSCP daemon ● VSCP Works ● VSCP Helper library ● Javascript library with HTML5 widgets (websocket) ● Firmware code for multiple platforms. ● Examples. ● Windows/Linux(Pi/Beaglebone)
  • 57. The VSCP Daemon ● The VSCP “server”. ● TCP/IP interface. This interface is a superset of a general tcp/ip interface that can be implemented by devices. ● Drivers for everything can be connected. Can be used to abstract non “VSCP things” to look like they are “VSCP things”. Or the other way around. Many driver available. ● Multicast interface. ● Advanced internal decision matrix. ● Built in webserver. ● Websocket interface ● REST interface (plain text/CSV/JSON/JSONP/XML). ● Soon built in MQTT and CoAP support.
  • 58. VSCP Works ● Investigate what is happening on local or remote bus. ● Interact with nodes. ● Discover nodes. ● Configure nodes. ● Load firmware into devices. ● And more...
  • 59. VSCP Helper library ● C library for Windows/Linux ● Bindings for many programming tools available or on the way. ● Many functions to handle VSCP related tasks. ● Can be used to connect to a remote VSCP daemon in an easy way.
  • 60. Javascript library ● Interface the efficient websocket interface. ● Buttons. ● Gauges. ● Diagrams ● Tables.
  • 61. ...and more ● A lot more.
  • 62. The End ● Contribute to the project (http://www.vscp.org) ● Vote for VSCP in Postscape IoT Open source award http://iotawards.postscapes.com/2015-16/top-iot-open-s ource-project ● Documentation is here http://vscp.org/#documentation ● Getting started guides is here http://www.vscp.org/wiki/doku.php/howto/start ● Software is here https://github.com/grodansparadis/vscp/releases ● Thanks