From HPSDRwiki
Jump to: navigation, search
Goddess Athena

Athena is a Software project intended to develop a software developers kit for the HPSDR radio system. The objective of the project is to provide a multi-platform code basis that will help programmers write client programs using the output of the HPSDR boards. Project goals include:

- Document all the communications protocols and the Library Application Protocol Interface (API)
- Explore the development of RTP [1] and RTSP [2] protocols for the sending of data over ethernet.
- Development of IO compatible server code to communicate with the HPSDR hardware and communicate with client programs with UDP/TCP commands.
- Develop a set of operating specific server code that maintains IO compatibility.
- Potentially develop libraries of functions to help programmers easily access the server.

This project will be run as a moderated open source software project. Code contributions will be evaluated as to the degree it contributes to the over all goals of the project and whether there are undesired interactions with existing code.

Athena is the Greek goddess of home industry including spinning, weaving and carpentry. She is also the goddess of wisdom and known to be very clever, She is also the goddess of war. This is a good name for the server program that is the main connection between many parts of a HPSDR system.

Athena Block Diagram -- Initial ideas

Project leader is Dave Larsen, KV0S

Team members include:

John Melton, G0ORX/N6LYT
Bill Tracey, KD5TFD
Dave McQuate, WA8YWQ
Jeremy McDermond, NH6Z

Ideas, comments and suggestions are welcome.

ghpsdr3 Communication Protocols 2010-08-07

Here is the document of the current ghpsdr3 communication protocols.

ghpsdr3 communication protocols 2010-08-07

updated description

This document is also available on the ghpsdr3 svn under 'doc' directory

--KV0S, Dave 14:56, 7 August 2010 (UTC)

Draft HPSDR Object Rule Set

Based on the discussion on the list server in August 2010, This is an attempt to capture the many of the ideas and create a set of program rule. Design ideas are the programs have discovery and capability reporting. Radio system objects are peers but the the dominate information flow is from hardware to a User interface with some information moving the in reverse direction. This set of rule becomes more important as we move to the ethernet connections but is relevent to USB connections and object to object communications.

Information components include:

1. Connection informations
This is the discovery of Radio system components currently in the users environment. This include both hardware connections and other programs using part of all the radio capabilities.
2. Object capabilities
This is information about the capabilities of the object.
- Radio Model x
- Sampling Base Frequency 14.125MHz
- Sampling Rate 96kHz
- I and Q are 24 bit signed integers
- available on x.x.x.x port y
- Data format
- Commands available
3. Object current status
This is information about the current status of the object.

Possible structure container could be JSON

--KV0S, Dave 18:04, 6 August 2010 (UTC)

Design Ideas

The following is a list of ideas that have been suggested on either the Teamspeak session or the HPSDR reflector.

Athena Driver Wrapper Diagram -- Initial ideas
- The user should be able a common set of HPSDR function to interface with the hardware.
HPSDR Wrapper code on libusb1.0 (Linux and MacOS?) and WinUSB (Windows systems) to allow the use of either driver on corresponding systems.
Theses wrappers should also function with the new OZYII interface.
- Definitions of the UDP/TCP packets structure and allowable command variation to the structure.
Command set to be accepted.
Can packet length and structure be varied by commands?
Logging and peripheral control by TCP? Command structure (CAT?, other)
- Can we design the structure to accommodate both low latency applications and remote base applications?
Options that a user could use to favor one or the other.
- Code documentation formats to follow?
Doxygen, other?


  • SVN --- Subversion repository of HPSDR code.