building dash7 apps with opentag

57
Copyright © DASH7 Alliance OpenTag: Office Hours JP Norair 12 May 2011 [email protected] skype: jpnorair

Upload: dash7-alliance

Post on 15-Jan-2015

5.129 views

Category:

Technology


9 download

DESCRIPTION

Excellent primer on the DASH7 open source firmware environment called OpenTag that now supports DASH7 Mode 2, which enables multi-hop communications, better crypto and sensor support, multi-channel architecture, and much more in a very small (sub 20kb) stack.

TRANSCRIPT

Page 1: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

OpenTag: Office Hours

JP Norair 12 May 2011

[email protected]: jpnorair

Page 2: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

OpenTag: Office Hours

JP Norair 12 May 2011

[email protected]: jpnorair

‣Some information about DASH7 (for noobs)

‣What you get [with OpenTag]

‣Where to get it

‣What you can do to help

‣Project Roadmaps

‣Answering your Questions

Page 3: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 is a 2nd Generation WSN/IoT/RFID Technology

Mode 2

433 MHz band8 channels

Compact Stacktyp. 16KB

Optimized forMicro Power

Optimized forLow Latency(Bursty Data)

Universal Interoperability

Adaptive Data Rate28 - 200 kbps

Very FastMulticast

Page 4: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

About DASH7 Alliance

• Specification Development

‣ Mode 2 (basically done)

‣ “DNA” Middleware layer

‣ NFC integration

‣ More

• Market Development

• ISO Stewardship

• Go to dash7.org to see new membership terms, and other information.

Next Meeting: 21 Junein San Francisco

Page 5: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

What You Get [with OpenTag]OpenTag is a very purpose-built OS that uses DASH7 I/O

OpenTag Component What it Does

Low Level Radio Driver PHY & MAC Control

System Event and Session Manager (OS-like)

Network Protocols (M2NP, M2DP, M2AdvP) Routing, Raw Data, Group Synchronization

Transport Protocols (M2QP) Query / Data Acquisition, Data Transfer

Filesystem Read, Write, Create, Delete, Etc.

Application Modules Built-in Apps (none yet)

C API Library functions (Programming apps in C on the same device)

Serial API(s) Client-Server (Communicating the apps via another device)

Page 6: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Where to Get it

Signup, Forums, Mailing List, other supportSignup, Forums, Mailing List, other support

http://sourceforge.net/projects/opentag

Latest Code Download (use Git)Latest Code Download (use Git)

git clone git://opentag.sourceforge.net/gitroot/opentag/OpenTag_M2

OpenTag and Mode 2 Wiki (in continuous development)OpenTag and Mode 2 Wiki (in continuous development)

http://www.indigresso.com/wiki

Page 7: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Where to Get it

Signup, Forums, Mailing List, other supportSignup, Forums, Mailing List, other support

http://sourceforge.net/projects/opentag

Latest Code Download (use Git)Latest Code Download (use Git)

git clone git://opentag.sourceforge.net/gitroot/opentag/OpenTag_M2

OpenTag and Mode 2 Wiki (in continuous development)OpenTag and Mode 2 Wiki (in continuous development)

http://www.indigresso.com/wiki

Don’t understand Git? Google is your friend

(Git documentation is good)

Page 8: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How You Can Help

Beta Testing DocumentingCore

Development

Page 9: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How You Can Help

Beta Testing DocumentingCore

Development

• Currently about 3 Beta testers(you know who you are: if you want to be recognized, email me)

• Download the code, compile, and play with it. You will find bugs and have questions.

‣ Send messages on developers mailing list (sourceforge).

‣ Skype me, for quick info

Page 10: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How You Can Help

Beta Testing DocumentingCore

Development

• Currently about 3 Beta testers(you know who you are: if you want to be recognized, email me)

• Download the code, compile, and play with it. You will find bugs and have questions.

‣ Send messages on developers mailing list (sourceforge).

‣ Skype me, for quick info

• Currently just me (officially)

• Requires a good understanding of the code and specification

‣ My estimation: will take you 3-6 weeks to get here

• Two possibilities

‣ OT library development

‣ Porting to other platforms

Page 11: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How You Can Help

Beta Testing DocumentingCore

Development

• Currently about 3 Beta testers(you know who you are: if you want to be recognized, email me)

• Download the code, compile, and play with it. You will find bugs and have questions.

‣ Send messages on developers mailing list (sourceforge).

‣ Skype me, for quick info

• Currently just me (officially)

• Requires a good understanding of the code and specification

‣ My estimation: will take you 3-6 weeks to get here

• Two possibilities

‣ OT library development

‣ Porting to other platforms

• Currently just me

• Requires a good understanding of the code or specification

• Many possibilities

‣ Wiki

‣ Formal documents

‣ Academic research papers

Page 12: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

Page 13: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

SS Pre-alpha & Alpha:Module testing and simulation

(usually on PC)

Page 14: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

SS Pre-alpha & Alpha:Module testing and simulation

(usually on PC)

SS Beta 0 (current):Initial Platform Testing (CC430)

without Serial API, not all features are complete

Page 15: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

SS Pre-alpha & Alpha:Module testing and simulation

(usually on PC)

SS Beta 0 (current):Initial Platform Testing (CC430)

without Serial API, not all features are complete

SS Beta 1:Testing platform(s) using Serial

API, and completion of all features for version 1.0

Page 16: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

SS Pre-alpha & Alpha:Module testing and simulation

(usually on PC)

SS Beta 0 (current):Initial Platform Testing (CC430)

without Serial API, not all features are complete

SS Beta 1:Testing platform(s) using Serial

API, and completion of all features for version 1.0

SS Beta 2:Feature complete debug and

official compliance testing

Page 17: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

SS Pre-alpha & Alpha:Module testing and simulation

(usually on PC)

SS Beta 0 (current):Initial Platform Testing (CC430)

without Serial API, not all features are complete

SS Beta 1:Testing platform(s) using Serial

API, and completion of all features for version 1.0

SS Beta 2:Feature complete debug and

official compliance testing

SS Version 1.0:Bundling of official code packages for platforms

Page 18: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Feature Roadmap: Now it is a Race

SS Pre-alpha & Alpha:Module testing and simulation

(usually on PC)

SS Beta 0 (current):Initial Platform Testing (CC430)

without Serial API, not all features are complete

SS Beta 1:Testing platform(s) using Serial

API, and completion of all features for version 1.0

SS Beta 2:Feature complete debug and

official compliance testing

SS Version 1.0:Bundling of official code packages for platforms

position

Page 19: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Planned Platform Support (Official)

Beta 0:CC430, POSIX Simulator

Beta 1:Beta 0 + ADuCRF101 +

SX1231 Module

Beta 2:No additional, planned

“official” platforms

Page 20: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Planned Platform Support (Official)

Beta 0:CC430, POSIX Simulator

Beta 1:Beta 0 + ADuCRF101 +

SX1231 Module

Beta 2:No additional, planned

“official” platforms

“Official” just means that I personally know it works. If you develop a

working platform and send one to me, I will make it official

Page 21: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Case Studies (Comprehensive Answers to Recently Asked Questions)

‣How does OpenTag enable location derivation?

‣Can OpenTag do multihop and mesh?

‣How are events processed?

‣How many simultaneous connections are supported?

‣How is data stored and logged?

‣What is the deal with wireless regulations at 433 MHz?

Page 22: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How does OpenTag enable location derivation?

Page 23: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Has Two Features that Enable Location DerivationFeature 1: Normalized RSSI

Without Normalized RSSIDevices need to know

configurations of all other devices in the network

With Normalized RSSIDevices in a network are free to

use different power outputs

Open Loop Closed Loop

Page 24: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Has Two Features that Enable Location DerivationFeature 1: Normalized RSSI

DASH7 Mode 2 Foreground Frame ArchitectureLength(Bytes)

TX EIRP(0.5 dBm)

Subnet Filter

Frame Control

Other Headers

Data Payload

Footers(crypto)

CRC

1 Byte 1 Byte 1 Byte 1 Byte 0-52 Bytes 0-249 Bytes 0-40 Bytes 2 Bytes

0-255 -40 to 23.5 — — (optional) — (optional) —

Mode 2 transmissions tell the receiver how much power was used,

so the receiver can normalize the RSSI dynamically

Page 25: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Has Two Features that Enable Location DerivationFeature 1: Normalized RSSI

DASH7 Mode 2 Foreground Frame ArchitectureLength(Bytes)

TX EIRP(0.5 dBm)

Subnet Filter

Frame Control

Other Headers

Data Payload

Footers(crypto)

CRC

1 Byte 1 Byte 1 Byte 1 Byte 0-52 Bytes 0-249 Bytes 0-40 Bytes 2 Bytes

0-255 -40 to 23.5 — — (optional) — (optional) —

Mode 2 transmissions tell the receiver how much power was used,

so the receiver can normalize the RSSI dynamically

This feature can be used to enable location derivation and also to filter out transmissions that are too far

away (configurable)

Page 26: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Has Two Features that Enable Location Derivation(2) Buferring Location Data

Location CoordinateFlags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Data may contain normalized RSSI’s from 1 to 3 antennas, and also angle

of incidence information

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

coord N

coord 3

coord 2

coord 1

Location ListLocation can be derived from an algorithm that uses data from multiple coordinates

Page 27: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Has Two Features that Enable Location Derivation(2) Buferring Location Data

Location CoordinateFlags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Data may contain normalized RSSI’s from 1 to 3 antennas, and also angle

of incidence information

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

Flags Device ID Loc. Data

1 Byte 2/8 Bytes 3 Bytes

coord N

coord 3

coord 2

coord 1

Location ListLocation can be derived from an algorithm that uses data from multiple coordinates

DASH7 does not specify the algorithm to use, just the way data is stored. The algorithm

is up to you!

Page 28: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

OpenTag Implements Normalized RSSI

DASH7 Location Features

Usage

Normalized RSSIAngle of Incidence

Requires special HW, not currently tested or

implemented in OpenTag

RSSI is implemented in the Radio Driver. During any reception, OpenTag buffers the non-normalized RSSI value on each antenna (typically 1) You can get it by calling radio_rssi()

Page 29: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

OpenTag Implements Normalized RSSI

DASH7 Location Features

Usage

Normalized RSSIAngle of Incidence

Requires special HW, not currently tested or

implemented in OpenTag

RSSI is implemented in the Radio Driver. During any reception, OpenTag buffers the non-normalized RSSI value on each antenna (typically 1) You can get it by calling radio_rssi()

OpenTag can be configured to automatically normalize and

populate the location list.

Page 30: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

OpenTag Implements Normalized RSSI

DASH7 Location Features

Usage

Normalized RSSIAngle of Incidence

Requires special HW, not currently tested or

implemented in OpenTag

RSSI is implemented in the Radio Driver. During any reception, OpenTag buffers the non-normalized RSSI value on each antenna (typically 1) You can get it by calling radio_rssi()

OpenTag can be configured to automatically normalize and

populate the location list.

Your algorithm needs to read this data and do the rest

Page 31: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

One Example of Using RSSI for LocationUsing large numbers of low-cost, battery-powered fixed position nodes is cheap and precise

Fixed Position Node

Mobile Node

Node with Location Algorithm (knows positions of fixed nodes)

(packet data)

Page 32: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

One Example of Using RSSI for LocationUsing large numbers of low-cost, battery-powered fixed position nodes is cheap and precise

(location list)

(derived location of mobile node)

(packet data)

Page 33: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Can OpenTag [and DASH7]do Multihop and Mesh?

Page 34: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 & OpenTag Support Limited MultihoppingDASH7‘s advanced query functionality and long range deprecate needs for complex hopping

One Hop Two Hops 3 to 15 Hops

Routing Support

Integration

All– Anycast Request– Unicast Response

– Anycast Request– Unicast Response

AutomatedBuilt-in, available to

application layerRequires 3rd Party

routing table algorithm

Page 35: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 & OpenTag Support Limited MultihoppingDASH7‘s advanced query functionality and long range deprecate needs for complex hopping

One Hop Two Hops 3 to 15 Hops

Routing Support

Integration

All– Anycast Request– Unicast Response

– Anycast Request– Unicast Response

AutomatedBuilt-in, available to

application layerRequires 3rd Party

routing table algorithm

If you want to build a mesh network, you would need to integrate a routing algorithm.

RPL is one example.

Enables simple repeaters

Page 36: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Network Routing Template

Routable DASH7 Mode 2 frame, as seen by network protocolData Link Layer

(M2DLL)Data Link Layer

(M2DLL)Mode 2 Network ProtocolMode 2 Network Protocol

(M2NP)Mode 2 Network Protocol

(M2NP)Mode 2 Network Protocol M2DLL

Length(Bytes)

Data Link Headers

M2NLS Header

Routing Header

M2NP Payload

M2NLS Auth. Data

DLLS Auth. Data

1 Byte 7-38 Bytes 1-25 Bytes 1-18 Bytes 0-245 Bytes 0-20 Bytes 0-20 Bytes

(optional) (optional) (optional) (optional)

For Data Link Layer Security

For Network Layer Security

Page 37: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

DASH7 Mode 2 Network Routing Template

Routable DASH7 Mode 2 frame, as seen by network protocolData Link Layer

(M2DLL)Data Link Layer

(M2DLL)Mode 2 Network ProtocolMode 2 Network Protocol

(M2NP)Mode 2 Network Protocol

(M2NP)Mode 2 Network Protocol M2DLL

Length(Bytes)

Data Link Headers

M2NLS Header

Routing Header

M2NP Payload

M2NLS Auth. Data

DLLS Auth. Data

1 Byte 7-38 Bytes 1-25 Bytes 1-18 Bytes 0-245 Bytes 0-20 Bytes 0-20 Bytes

(optional) (optional) (optional) (optional)

For Data Link Layer Security

For Network Layer Security

The Built-in two hop leverages the Origin and Destination IDs, which are additional to the

Data Link Layer addressing (Source and Target)

Hop Control

Hop Extension

Origin Device ID

Destination Device ID

1 Byte 1 Byte 2/8 Bytes 2/8 Bytes

(optional) (optional) (optional)

Page 38: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Routing Functions in OpenTag Network Module

• Function network_route_ff() is automatically called by OpenTag when parsing an incoming frame

‣ returns 0 if the frame is routed to this device

‣ returns positive number (corresponding to routing table index) if frame is routed to a known device

‣ returns -1 if frame should be discarded

• Function m2np_header() writes a properly routed M2NP header to a new frame.

‣ routing algorithm needs to store the routing information in the m2np data structure, so m2np_header() can use it.

‣ m2np data structure is exposed, so you can put routing algorithm anywhere you want.

So, to implement sophisticated multihop or mesh routing, you need to integrate your

routing table and routing algorithm into this function, network_route_ff()

Page 39: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Routing Functions in OpenTag Network Module

• Function network_route_ff() is automatically called by OpenTag when parsing an incoming frame

‣ returns 0 if the frame is routed to this device

‣ returns positive number (corresponding to routing table index) if frame is routed to a known device

‣ returns -1 if frame should be discarded

• Function m2np_header() writes a properly routed M2NP header to a new frame.

‣ routing algorithm needs to store the routing information in the m2np data structure, so m2np_header() can use it.

‣ m2np data structure is exposed, so you can put routing algorithm anywhere you want.

So, to implement sophisticated multihop or mesh routing, you need to integrate your

routing table and routing algorithm into this function, network_route_ff()

Remember, normalized RSSI information is already part of DASH7, so routing algorithms that use link budget data are

well suited.

Page 40: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How are events processed?(and, how good is the event

timing resolution)

Page 41: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

What is an Event?(For those among us who are not software nerds)

An event is anything that causes a program to stop doing what it is doing, and start doing something else.

A Timer expiring

Pushing a Button An API Call

Getting a Sensor Reading

Some Examples

Page 42: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Events in OpenTag

• OpenTag includes an event and task manager that runs parallel to the user’s application

• When an event occurs, OpenTag takes control of the system in order to run the task associated with the event. It gives back control when the Task is done (or when it’s idle)

Event(Descending Priority) Associated Tasks Notes

Internal RF interrupt

API Call

Sensor Detect

System Timer Expires

Low Level Radio Control Transparent to Application

Generate new request Application dependent

Generate new request Application dependent

Automated tasks:- Listen for data

- Prepare response- Send Beacon

[Mostly] Transparent to Application

Page 43: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Events in OpenTag

• OpenTag includes an event and task manager that runs parallel to the user’s application

• When an event occurs, OpenTag takes control of the system in order to run the task associated with the event. It gives back control when the Task is done (or when it’s idle)

Event(Descending Priority) Associated Tasks Notes

Internal RF interrupt

API Call

Sensor Detect

System Timer Expires

Low Level Radio Control Transparent to Application

Generate new request Application dependent

Generate new request Application dependent

Automated tasks:- Listen for data

- Prepare response- Send Beacon

[Mostly] Transparent to Application

Needs a dedicated timer resource.

For SoC’s/SiP’s, totally transparent

Page 44: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

What Actually Happens when an Event Occurs?

• Any event must call sys_event_manager() in the system module (system.c) in order to bind a task to the event that just occurred.

‣ System Timer Events are managed internally by OpenTag, so when the system timer expires, the appropriate task is automatically processed.

‣ The system timer is always running. So events can be queued up during OpenTag tasks (expired events are discarded).

Event Occurs

Run Task

Event Mgr checks what task is

pending

No Task Pending

Automated Tasks(Descending Priority)

Radio RX/TX

Activate Session

Initialize Channel Scan

Send Beacon

Page 45: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How Fast is the Event Timing Resolution?

• The OpenTag system timer runs at a resolution of “1 tick,” where 1 tick = 1/1024 sec

‣ Roughly 1 ms

‣ Allows usage of 32768 Hz crystal as source

• There is another timer unit called a “short tick” equal to 1/32768 sec (~30.5 µs)

‣ Not used at all in OpenTag library (OTlib)

‣ Used only for internal radio processes, although certain radios have internal timers and don’t need to use an MCU timer at all.

‣ All DASH7 processes are timed in ticks. So short ticks are only necessary if you are an optimizer and want to establish internal timer offsets that are shorter than 1 tick.

The application layer, thus, needs to have worst case

latency of 1 tick.

Since this is internal, you could use another clock source and achieve a

higher resolution, but you would need to write some new driver code.

Page 46: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How many simultaneous connections are supported?

Page 47: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

This Answer Depends on What You Mean by “Connection”

• Answer: 1

‣ This is like cable-replacement, which is not something DASH7 is designed to do well.

‣ Requires either complex time-slotting (like GSM, Bluetooth) or even more complex MIMO (802.11n, CDMA, OFDM) in order to support multiple isochronous connections via wireless.

Connection Model 1(Isochronous, streaming data)

Master

Slave Slave Slave

Page 48: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

This Answer Depends on What You Mean by “Connection”

• Answer: 1

‣ This is like cable-replacement, which is not something DASH7 is designed to do well.

‣ Requires either complex time-slotting (like GSM, Bluetooth) or even more complex MIMO (802.11n, CDMA, OFDM) in order to support multiple isochronous connections via wireless.

Connection Model 1(Isochronous, streaming data)

Master

Slave Slave Slave

In Hardware language, this is usually referred to as a “bus”

Page 49: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

This Answer Depends on What You Mean by “Connection”

• Answer: a lot (potentially 1000’s)

‣ This is broadcast-query-respond, which DASH7 is designed to do especially well.

‣ Basic queries of thousands of devices can be accomplished without much overhead.

‣ Follow-up dialogs with queried devices is limited by available memory and idle-time configuration

Connection Model 2(Bursty, queued data)

Node

Node Node

Node

NodeCollector

Page 50: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How is data stored and logged?

Page 51: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Answer: The Built in Filesystem

GFB(General File Block)

ISFB(Indexed Short File Block)

Functions

Security

Max File Size

Max Files

Files used by DASH7

Searchable

Executable

File Structure

Read, Write, Create, DeleteRead, Write, Create, Delete

POSIX-like, with optional cryptoPOSIX-like, with optional crypto

65 KB 255 Bytes

256 256

0 33 reserved

No Yes

Yes Yes

Binary (App. Dependent) Byte-centric, Big-Endian + some files have standardized structure

Page 52: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

Using the OpenTag Filesystem (called Veelite)

• In C, it is a lot like using the POSIX C library

‣ FILE* — vlFILE*

‣ fopen() — vl_open(), vl_new()

‣ fclose() — vl_close()

‣ fgetc(), fputc() — vl_read(), vl_write()

• You can also access files by DASH7 itself, using an Application Subprotocol (included in OpenTag), as long as you have appropriate user access to the files you want.

• The Application Subprotocol for file access is also used over a wire, for the Serial-API, if you are connecting an OpenTag module to another piece of HW.

Client HW

Page 53: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

What is the deal with wireless regulations at 433 MHz?

Page 54: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

433 MHz is Usually Available License-free (or cheaply)Plus: no regulations in Antarctica!

FCC 15.231 & 240North America uses the FCC

part 15 license-free spec

Limited ERC 70-03Some countries use basically the ERC 70-03 spec, but with certain

limitations (e.g. small fees) required to use the spectrum.

ERC 70-03 (or similar)Most countries in the world use the EU/ISM 433 MHz spec, or something similar.

Korea & Japanhave their own regulations for

license-free 433 MHz use

Page 55: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

433 MHz Regulatory Policy Summary

Regulation Complexity Usage Notes Simplified Specification

FCC Part 15.231 High General Use

Spectrum: 420 - 450 MHz (20 MHz)Max EIRP: highly variable, but effectively -2.4 dBmMax Duty Cycle: highly variable, but effectively 50%Max TX time: highly variable, but effectively 100 msBeacons: requires very low duty cycle, or alternatively ! -14.4 dBm

FCC Part 15.240 Moderate For Containers onlySimilar to 15.231 but with simpler rules, no allowance for beacons, and longer TX time permitted. In most cases it does not really improve performance of DASH7 Mode 2 over 15.231.

ETSI ERC 70-03 Low General UseSpectrum: 433.05 - 434.79 MHz (1.74 MHz)Class 1: 0 dBm @ 100% duty cycle, max TX 36 sec.Class 2: 10 dBm @ 10% duty cycle, max TX 36 sec, listen before talk

Korean ETRI Low General Use Spectrum: 433.67 - 434.17 MHz (500 KHz)Max EIRP: 0 dBmMax Duty Cycle: 100%Max TX time: 100 ms(Note: for guidance only, I am not an expert on ETRI & RR)

Japanese RR Low Logistics only

Spectrum: 433.67 - 434.17 MHz (500 KHz)Max EIRP: 0 dBmMax Duty Cycle: 100%Max TX time: 100 ms(Note: for guidance only, I am not an expert on ETRI & RR)

Page 56: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How about that one?

No way! I only date guys who use

OpenTag

See you next time…

Page 57: Building DASH7 Apps with OpenTag

Copyright © DASH7 Alliance

How about that one?

No way! I only date guys who use

OpenTag

See you next time…Send more questions to:[email protected]

Subject: “OpenTag Question”