©2015 FLEXRADIO SYSTEMS SmartSDR API Ham-Com: June 13, 2015 Stephen Hicks, N5AC VP Engineering , FlexRadio Systems
© 2 0 1 5 F L E X R A D I O S Y S T E M S
SmartSDR API
Ham-Com: June 13, 2015
Stephen Hicks, N5AC VP Engineering, FlexRadio Systems
© 2 0 1 5 F L E X R A D I O S Y S T E M S
SDR Forum Update
SmartSDR APIs GLASS Project Maestro
© 2 0 1 5 F L E X R A D I O S Y S T E M S
SmartSDR APIs
FLEX-6XXX
Windows Computer
UDP TCP
FlexLib
SmartSDR Ethernet API
SmartSDR FlexLib API
SmartSDR
SmartSDR-Windows
© 2 0 1 5 F L E X R A D I O S Y S T E M S
SmartSDR Ethernet API Interfaces
FLEX-6XXXUDP TCP
PAN
DATA
MET
ER D
ATA
RF IQ
DAT
A
CLIE
NT D
ATA
DISC
OVE
RY
Streaming Data Control & Status
WFA
LL D
ATA
© 2 0 1 5 F L E X R A D I O S Y S T E M S
API Standards
Radio control is a TCP/IP socket with simple commands (no standard known): slice create freq=14.1 ant=ANT1 mode=USB slice tune 0 14.105
Streaming Panadapter/Waterfall/Meter/Discovery data are VITA-49 Extension
I/Q and Real IF is VITA-49 IF Data (24-192ksps)
© 2 0 1 5 F L E X R A D I O S Y S T E M S
TCP/IP socket connection to port 4992
API provides API version and a “handle” V1.1.0.0 H35E61405
Send commands!
Interface is asynchronous, commands are non-blocking
SmartSDR TCP/UDP API Connecting to radio
© 2 0 1 5 F L E X R A D I O S Y S T E M S
SmartSDR TCP/UDP API Command Format
Command preface, sequence, v-bar, command C134|slice create freq=7.243
Response preface, sequence, v-bar, responseR134|50000002
Status preface, handle, v-bar, statusS67EF9A22|slice 0 freq=7.243 S67EF9A22|slice 0 filter_lo=300 filter_hi=2700
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Slice Receivers, example
Create a slice receiverslice create [freq=<MHz>] [ant=<antenna>] [mode=<mode>]C34|slice create freq=14.236 mode=FDV R34|0
Tune a slice receiverslice tune 0 [freq=<MHz>] C45|slice 0 freq=14.236
Change slice receiver settingsslice set <slice> [<feature>=<value>] C71|slice set 0 diversity=1 tx=0 record=1R71|0
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Ethernet API Simplicity
Example: K6TU iPad Control App
Requested API: July 1, 2013
Asked 3-4 questions
Beta iPad app delivered: August 18, 2013
Developed Objective-C interface library, now at:[email protected]:n5ac/smartsdr-objective-c
© 2 0 1 5 F L E X R A D I O S Y S T E M S
All SmartSDR APIs are OPEN
SmartSDR APIs Launch Pagehttp://www.flexradio.com/amateur-products/flex-6000-signature-series/smartsdr-api/
Sniffing TCP/IP API Using Wireshark
Yes, we know
The objective was KISS, easy debugging & testing
Today, connections restricted
SmartSDR TCP/UDP API Dude, that is major hackable
Authentication and Authorization coming to a radio near you
Ethernet API Documentation
Online Wiki docs
Source code
Community Supporthttp://community.flexradio.com
FlexLib - SmartSDR in .NETFlexLib is a .NET 4.0 DLL that provides .NET style access to the SmartSDR Internet API
Simplifies interoperation with the radio in .NET environment - Object Oriented, Events, etc.
Provided at no charge on the FlexRadio website
Getting started with FlexLib
Radio broadcasts out UDP/IP discovery packets
First, setup event handlers for RadioAdded and RadioRemoved events. API.RadioAdded += new API.RadioAddedEventHandler(API_RadioAdded); API.RadioRemoved += new API.RadioRemovedEventHandler(API_RadioRemoved);
Initialize and wait for Radios
Tell the radio the application name and initialize the API API.ProgramName = "My Program”;
API.Init(); // start receiving discovery packets here
RadioAdded/Removed events fire as the discovery packets are broadcast through the network.
Now you have a reference to a Radio
Selecting a RadioImmediately connect (e.g. CAT, DAX)*
Select from a list (e.g. SmartSDR)
*Immediate connection may behave in unexpected ways in a multi-radio environment (connect to the wrong radio, etc)
Attach to PropertyChanged Events
PropertyChanged events notify you of changes to radio objects
For example: radio.SliceAdded += new Radio.SliceAddedEventHandler(radio_SliceAdded);radio.SliceRemoved += new Radio.SliceRemovedEventHandler(radio_SliceRemoved);
radio.PanadapterAdded += new Radio.PanadapterAddedEventHandler( radio_PanadapterAdded); …
Connect to the RadioNow a connection to the radio will provide you details
Connect: radio.Connect();
Once objects arrive (slices, panadapters, etc) you can attach to notify events within that object slice.PropertyChanged += new PropertyChangedEventHandler(slice_PropertyChanged); panadapter.PropertyChanged += new PropertyChangedEventHandler( panadapter_PropertyChanged);
Observing and Controlling
With these objects, you can observe clients manipulating the radio and control the radio slice.Frequency = 14.185; // MHz slice.Mode = “USB”; slice.UpdateFilter(100, 2700); // Hz
We Eat our own Dog FoodThe SmartSDR Windows client rests on FlexLib which rests on the Internet API
CAT and DAX also use FlexLib
You can do anything you see us do in SmartSDR
You have unprecedented control over a radio server!
All SmartSDR APIs are OPEN
SmartSDR APIs Launch Pagehttp://www.flexradio.com/amateur-products/flex-6000-signature-series/smartsdr-api/
Where to go for help?
SmartSDR TCP-UDP/IP APIhttp://wiki.flexradio.com
SmartSDR FlexLib (Windows .NET API)http://www.flexradio.com/downloads/flexlib_api-zip/
SmartSDR Objective-C Accesshttp://github.com/n5ac/smartsdr-objective-c
SmartSDR Waveform API GPL3 Source http://github.com/n5ac/smartsdr-dsp
Where to go for help (con’t)FlexRadio Community (API Category) http://community.flexradio.com
The community is the best place for questions (please try to avoid sending us email directly)
SmartSDR FlexLib Documentation
Documentation
Doxygen generated docs for FlexLib are available
SmartSDR FlexLib (Windows .NET API) Docshttp://www.flexradio.com/flexlib/annotated.html You can also look at example code (CAT/CODEC2) and at the Visual Studio Object Browser
FlexRadio Community
FlexRadio Community
FlexRadio Community
ANSI/VITA-49 Standard Quick Introduction
ANSI/VITA 49.0-2009 VITA Radio Transport (VRT) Standard (www.vita.com)
Designed specifically for RF/IF and other radio data
Supports high accuracy frequencies, data, time, etc.
Includes metadata layer (self-describing)
Comprehends complex architectures
Comprehends computing & network challenges
Metadata (a.k.a Context) describes the system: Tuned Frequency, Timestamp, sample rate, etc.
Data carries the actual samples
ANSI/VITA-49 Standard Types of data
ADCDown- converter DSP
Receiver Metadata
Data
ANSI/VITA-49 Standard Four data types
Standard Extension
DataIF Data Stream
• Real/Complex Data • Fixed/Floating Point • Flexible Packing
Extension Data Stream
• Any type of data • Custom data formats, etc.
Context
IF Context Stream • Frequency • Power • Timestamp • Location…
Extension Context Stream
• Any kind of context • Custom formats
ANSI/VITA-49 Standard FLEX-6000
Standard Extension
Data
IF Data Stream • Real and I/Q sample data • Both Real and Complex • Floating Point • Processing Efficient
Extension Data Stream • Panadapter • Waterfall • Metering • Compressed Audio (Opus)
Context IF Context Stream • None today, easily added
Extension Context Stream
• None today
ANSI/VITA-49 Standard IF Packet Format
Packet Type (IF, IF context, Extension, Extension Context)
Whether Class ID, Trailer are included, type of timestamp
Rolling packet count and packet size
ANSI/VITA-49 Standard IF Packet Format, header
OUI = Organization (FlexRadio Systems = 0x001C2D)
Information Class (SMOOTHLAKE = 0x534C)
Packet Class (for FRS varies by data type)
ANSI/VITA-49 Standard IF Packet Format, Class ID
Link Efficient reduces network bandwidth (mostly) Processing Efficient reduces CPU effort FlexRadio Systems uses Processing Efficient today
ANSI/VITA-49 Standard IF Packet data packing
LINK EFFICIENT PROCESSING EFFICIENT
ANSI/VITA-49 Standard IF Context Information
Sign-up for developers
Sign-up for developers
Why register?
Invitations to FlexRadio Developer Town Halls
Emails with important developer updates
Access to early code
Registration is completely optional
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Example API DesignApril 25th “I started working on a Android App…”
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Example API DesignApril 26th “Now we are getting somewhere. I successfully graphed live FFT data…”
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Example API DesignApril 26th “Here is what I have so far. Much better me thinks :)”
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Example API DesignApril 27th “I got a pan-adapter successfully run on android”
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Example API DesignMay 8th “here is a little demo”
© 2 0 1 5 F L E X R A D I O S Y S T E M S
On what platforms? If you can write code on it…
OS X
iOS
Linux (BeagleBone, Ubuntu, etc.)
Arduino
Windows
GLASS Project OverviewMay 2015
Global AIS on Space Station
GLASS Project
❑ GLASS Project ▪Global AIS on Space Station (GLASS) is a collaborative applied research and development project to assess the practical value of AIS data collected on the International Space Station (ISS) for maritime operations and worldwide MDA
❑ Majority funded by CASIS, an organization selected by NASA to maximize use of the ISS U.S. National Laboratory ▪ Two-‐year initiative beginning September 2014 ▪ CASIS contribution of more than $500,000 ▪All participants making significant in-‐kind contributions
49
Rationale
❑ Nearly all commercial ships are tracked using Automatic Identification System (AIS)
❑ AIS receivers are typically limited to line-‐of-‐site signal reception
❑ GLASS to acquire world-‐wide, real-‐time AIS data from ISS
❑ ISS ideally suited to maximize reception of AIS signals and offers opportunities for upgrades and maintenance by on-‐board crew
❑ Better information will enhance commercial business, improve national security, protect the environment, and provide economic and societal benefits
50
Team & Roles51
4
❑ JAMSS America, Inc. – principal investigator and project integrator
❑ University of Hawaii – co-‐investigator, maritime researcher and GLASS operational evaluator
❑ Greater Houston Port Bureau – co-‐investigator, maritime consultant and GLASS operational evaluator
❑ Mare Liberum Consulting, L.P. – co-‐investigator, data systems and AIS signal processing/analysis
❑ Flexitech, LLC – consultant, aerospace radio communications technologies
❑ VPI Engineering, FlexRadio Systems & Flexitech, LLC – developers, GLASS space segment system
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Two channels with up to four doppler regions = 8CH Access to samples from receivers (Waveform API) Ethernet output to get samples to ground station
Why FlexRadio?
Project Overview53
GLASS Da
ta
GLASS Servers
•Client Services •Health & Status • Secure Data Archive
User Assessments & Feedback
NASA Ground Network
•Raw Data •Processed Information
Equipment on the ISS consists of redundant SDR (software defined radio) receivers to process incoming AIS signals, packetize them and forward the packets to the TDRSS for downlink to the ground.
TDRSS
ISS
ISS – International Space Station TDRSS – Tracking and Data Relay Satellite System
Users (Evaluators)
54
Express Racks
© 2 0 1 5 F L E X R A D I O S Y S T E M S
GLASS Express Rack Drawer
Schedule
❑ Grant awarded (September 2014) ❑ Hardware/software development (initiated October 2014)
❑ Equipment launched to ISS and readied for operation (late 2015)
❑ System operation and data collection (12-‐month duration)
❑ Final assessment and report ❑ Project completion (late 2016) ❑ Commercial business initiation (2017)
56
6
Anticipated Value
❑ Enhanced global competitiveness ❑ Adaptation to supply chain disruptions ❑ Improved protection of U.S. Exclusive Economic Zones ❑ Decreased environmental impacts ❑ Increased environmental protection ❑ Decreased illegal activities ❑ Expedited emergency response ❑ Enhanced education and training ❑ Data mining for societal benefit
57
7
“Better information will enhance commercial business, improve national security, protect the environment, and provide economic and societal benefits.”
Research Objectives
❑ Verify performance of Software Defined Radio architecture in receiving and processing massive volumes of incoming AIS signals
❑ Verify HarborlightsTM ability to simultaneously process GLASS AIS signals for multiple users and regions
❑ Investigate the value of collecting and using long-‐range AIS data
❑ Investigate ways AIS data obtained from ISS can be used to support ongoing port and brown water operations
❑ Determine value of the AIS data for trade, economic, resource management and national security analysis
❑ Determine business model to commercially provide AIS data to commercial, academic and government users
58
8
Opportunities59
❑ Public and private sector evaluators – analyze and validate the data usefulness for: ▪ Port efficiency, security and safety ▪ Local, regional and national maritime domain awareness ▪ Synergy, co-‐application with other ground and space-‐based technologies (e.g. radar, imaging) ▪Data mining
❑ Creators – identify and develop innovative ideas for use of the data for public benefit
For more information:
[email protected] 281.461.3700
www.jamssamerica.com/GLASS
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Complete access to the radio Standards based Multi platform Broad support from both FlexRadio and customers Simplifies building applications and clients
SmartSDR APIs
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Continued to hear that knobs/buttons are important Often, existing products maligned for complexity Station reconfiguration time frustrating Integration in SO2R, M/1, M/2, M/M stations a problem The dream of simple remote operation…
Maestro The interviews…
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro Control surface and more…
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro Control surface and more
Essentially a remotable SmartSDRwith knobs & buttons Can be used in place of a computer to run any FLEX-6000 Optimized to have just frequently used controls Let’s take a closer look …
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro Display
WXGA (1280x800) 8” IPS Cap Touch Can show one or two panafalls Up to two slices Cap touch, pinch to zoom, buttons and pop-up menus Built on SmartSDR API
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro Controls
Slice A
Slice B or
RIT/XIT
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro Capabilities
Integrated CW keyer Mic, headphones, line in/out ~6 hours of battery life or plug-in (12V nom.) WiFi (802.11 a/b/g/n) and wired Ethernet (1GbE) VESA mount for Public Safety comms, mobile use, etc
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro What’s next?
Control of a computer and large display (fairly easy) Multiple Maestros on a single radio Who knows …
© 2 0 1 5 F L E X R A D I O S Y S T E M S
Maestro What’s next?
Control of a computer and large display (fairly easy) Multiple Maestros on a single radio WAN use (away from the shack) Who knows …