summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2018-10-08 17:52:22 -0600
committerBdale Garbee <bdale@gag.com>2018-10-08 17:52:22 -0600
commit2450e69d3afd3345a6e5f7ca133d929fbdcfdf53 (patch)
treec04aa34bdecbf909dbeea8854390364bf140e7ca /doc
parent449ed72371f80f03dcc5dcf66af5c9465e7ed57e (diff)
parent5a86ff43a2b4a90dbddc1bba48019626e1b83e10 (diff)
Merge branch 'branch-1.8' into debian
Diffstat (limited to 'doc')
-rw-r--r--doc/.gitignore1
-rw-r--r--doc/Makefile.am (renamed from doc/Makefile)23
-rw-r--r--doc/RELNOTES8
-rw-r--r--doc/altusmetrum-docinfo.xml9
-rw-r--r--doc/map-loading.dot35
-rw-r--r--doc/map-loading.txt221
-rw-r--r--doc/micropeak-docinfo.xml16
-rw-r--r--doc/release-notes-1.8.7.inc37
-rw-r--r--doc/release-notes.inc4
-rw-r--r--doc/specs.inc18
-rw-r--r--doc/telegps-docinfo.xml10
-rw-r--r--doc/telemini.inc50
-rw-r--r--doc/usage.inc19
13 files changed, 441 insertions, 10 deletions
diff --git a/doc/.gitignore b/doc/.gitignore
index 786123a3..06ad43eb 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -4,3 +4,4 @@
*.raw
titlepage.templates.xsl
fop-cfg.xml
+map-loading.svg
diff --git a/doc/Makefile b/doc/Makefile.am
index 3661a6d6..450053f1 100644
--- a/doc/Makefile
+++ b/doc/Makefile.am
@@ -2,7 +2,12 @@
# http://docbook.sourceforge.net/release/xsl/current/README
#
+if FAKETIME
+FAKETIME=TZ=UTC faketime -f '$(RELEASE_DATE) 00:00:00 i0'
+endif
+
RELNOTES_INC=\
+ release-notes-1.8.7.inc \
release-notes-1.8.6.inc \
release-notes-1.8.5.inc \
release-notes-1.8.4.inc \
@@ -194,7 +199,8 @@ RELNOTES_HTML=$(RELNOTES_INC:.inc=.html)
ONEFILE_TXT_FILES=\
altos.txt \
companion.txt \
- telemetry.txt
+ telemetry.txt \
+ map-loading.txt
ONEFILE_RAW_FILES=$(ONEFILE_TXT_FILES:.txt=.raw)
ONEFILE_PDF_FILES=$(ONEFILE_TXT_FILES:.txt=.pdf)
@@ -215,6 +221,8 @@ HTML_REVHISTORY=\
PDF=altusmetrum.pdf micropeak.pdf telegps.pdf easymini.pdf $(ONEFILE_PDF_FILES) \
$(OUTLINE_PDF_FILES)
+MAP_DOT_FILES=map-loading.dot
+MAP_SVG_FILES=$(MAP_DOT_FILES:.dot=.svg)
FOP_STYLE=am-fo.xsl
HTML_STYLE=am-html.xsl
COMMON_STYLE=common.xsl
@@ -244,7 +252,10 @@ PUBLISH_DOC=$(PUBLISH_HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET)
DOC=$(HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET)
-.SUFFIXES: .tmpl .xsl .inc .txt .raw .pdf .html
+SUFFIXES = .dot .svg .tmpl .xsl .inc .txt .raw .pdf .html
+
+.dot.svg:
+ dot -Tsvg -o$@ $*.dot
.txt.raw:
sed -e 's/^[ ]*//' -e 's/^\\//' $*.txt > $@
@@ -253,18 +264,20 @@ DOC=$(HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET)
sed -e 's/^[ ]*//' -e 's/^\\//' $*.inc > $@
.raw.html:
- a2x --verbose -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(FOP_STYLE) --fop --fop-opts="-c $(FOP_XCONF)" $*.raw
- a2x --verbose -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(HTML_STYLE) --stylesheet=$(STYLESHEET) $*.raw
+ a2x -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(HTML_STYLE) --stylesheet=$(STYLESHEET) $*.raw
case $* in release-notes*) ./fix-html $*.html ;; esac
+ $(FAKETIME) a2x -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(FOP_STYLE) --fop --fop-opts="-c $(FOP_XCONF)" $*.raw
.html.pdf:
- @touch $@
+ echo $@
.tmpl.xsl:
xsltproc --output $@ /usr/share/xml/docbook/stylesheet/docbook-xsl/template/titlepage.xsl $*.tmpl
all: $(HTML) $(PDF)
+map-loading.raw: $(MAP_SVG_FILES)
+
altusmetrum-revhistory.html: altusmetrum.html
micropeak-revhistory.html: micropeak.html
diff --git a/doc/RELNOTES b/doc/RELNOTES
index 748d2b5b..678ac17e 100644
--- a/doc/RELNOTES
+++ b/doc/RELNOTES
@@ -1,12 +1,12 @@
Creating documentation for a new release of AltOS
+* Write release notes in release-notes-${version}.inc. Add to
+ Makefile
+
* Make sure that doc/altusmetrum-docinfo.xml has the right copyright
year, and add release to the revision history at the front (release
notes will be pulled in by release-notes.inc)
-* Write release notes in release-notes-${version}.inc. Add to
- Makefile
-
* Add references to that as appropriate from each of the
documents:
@@ -34,3 +34,5 @@ Creating documentation for a new release of AltOS
telemetry-docinfo.xml
* Add release-notes-${version}.inc to git
+
+* Make sure new hardware specs are documented in specs.inc
diff --git a/doc/altusmetrum-docinfo.xml b/doc/altusmetrum-docinfo.xml
index 7b696b97..18bc644d 100644
--- a/doc/altusmetrum-docinfo.xml
+++ b/doc/altusmetrum-docinfo.xml
@@ -47,6 +47,15 @@
<revhistory>
<?dbhtml filename="altusmetrum-revhistory.html"?>
<revision>
+ <revnumber>1.8.7</revnumber>
+ <date>8 Oct 2018</date>
+ <revremark>
+ Include TeleMega v3.0 firmware in release. Fix TeleBT v4.0 RF
+ calibration to factory value when reflashing. Fix map images.
+ Fix Mac OS X support.
+ </revremark>
+ </revision>
+ <revision>
<revnumber>1.8.6</revnumber>
<date>6 Aug 2018</date>
<revremark>
diff --git a/doc/map-loading.dot b/doc/map-loading.dot
new file mode 100644
index 00000000..f5be02ef
--- /dev/null
+++ b/doc/map-loading.dot
@@ -0,0 +1,35 @@
+digraph map_loading {
+ edge [arrowsize=0.5; style="setlinewidth(2)"]
+ node [style=filled; fontcolor=white; color=invis; shape=box; arrowsize=0.5; fontname="DejaVu Sans,sans-serif"; fontsize=12; height=0.2;];
+ edge [decorate=true; fontname="DejaVu Sans,sans-serif"; fontsize=8];
+ graph [fontname="DejaVu Sans,sans-serif"; fontsize=15; ]
+ rankdir="TB";
+ ranksep=0.5;
+ nodesep=0.5;
+ color=invis;
+ fillcolor="#c0c0c0";
+ fontcolor="white";
+
+ app -> apache [label="AltOS Map URI"]
+ apache -> app [label="Google Map tile"]
+
+ apache -> cgi_script [label="AltOS Map URI"]
+ cgi_script -> cache_manager [label="AltOS Tile Request"]
+
+ cgi_script -> apache [label="Google Map tile"]
+
+ cache_manager -> cgi_script [label="AltOS Tile Reply"]
+
+ cache_manager -> disk_files [label="AltOS tile files" dir="both"]
+ cache_manager -> google_maps [label="Google Map URI"]
+
+ google_maps -> cache_manager [label="Google Map tile"]
+
+ app [color="#885931" label="Application"]
+ apache [color="#d12127" label="Apache Web Server"]
+ cgi_script [color="#551a8b" label="AltOS Map CGI Script"]
+ cache_manager [color="#c75b1c" label="AltOS Map Cache Manager"]
+ disk_files [color="#4f81bd" label="File System"]
+ google_maps [color="#4cbb44" label="Google Maps"]
+}
+
diff --git a/doc/map-loading.txt b/doc/map-loading.txt
new file mode 100644
index 00000000..1b39dd6b
--- /dev/null
+++ b/doc/map-loading.txt
@@ -0,0 +1,221 @@
+= Loading Map Tiles from Google Maps
+:doctype: article
+
+== The Google Maps Problem
+
+Until recently, Google Maps could be used without fee to fetch map
+tiles. Applications could load map tiles anonymously or using a key;
+when used anonymously, the number of tiles that could be loaded per
+day and the rate at which tiles could be loaded was throttled to make
+the API practical only for development purpose. With an application
+key, the number of tiles available per day was much higher, and there
+was no rate limiting. This was usually sufficient for Altos Metrum
+customer use.
+
+However, this has changed and now there is no way to load map tiles
+anonymously, and any application key must be tied to a credit
+card. The tile cap for free usage is now monthly instead of
+daily. Because the key is tied to a credit card, we should not ship it
+with the application any longer. And because the cap is monthly
+instead of daily, we need some way to control usage by our
+applications.
+
+=== The Proposed Solution — An Intermediate Service
+
+To give us some measure of control over tile loading, we will want to
+interpose a server controlled by us between the application and Google
+Maps. This will let us store the Google Maps key in a secure location,
+and also control tile loading by each user.
+
+image::map-loading.svg[align="center"]
+
+== AltOS Map Service
+
+This service receives a URL request and replies with either a map tile
+or an error. It is functionally equivalent to the Google Maps service,
+except that it can control use of the Google Maps API.
+
+=== AltOS Map CGI Script
+
+The AltOS Map CGI Script is a straightforward script which connects to
+the AltOS Map Cache Manager, transmits a URL describing the desired
+map tile and receives back a filename (or error), then sends the
+contents of that file back through Apache to the requesting
+application. The name of the script is 'altos-map'.
+
+==== Inputs
+
+The AltOS Map CGI Script will parse the provided AltOS Map URI or
+AltOS Version URI.
+
+==== Outputs
+
+For AltOS Map URLs, the CGI Script will return either the contents of
+the associated Google Map tile or an error indicating what failed:
+
+_200 OK_: The map tile image data or version information
+
+_400 Bad Request_: The URL is malformed or not compatible with the
+version supported by the service
+
+_403 Forbidden_: The map tile is outside the areas supported by the
+current AltOS Map service area
+
+_408 Request Timeout_: Attempts to fetch the tile from Google Maps
+timed out.
+
+_503 Service Unavailable_: The service is temporarily refusing to
+satisfy this request due to resource limitations.
+
+=== AltOS Map Cache Manager
+
+This is a service running on the local machine and available over a
+local network socket. It translates an AltOS Map URL into a local
+filename containing the contents of the associated Google Maps
+tile. The name of the cache manager is 'altos-mapd'. It will listen
+for requests on port 16717.
+
+=== AltOS Map URI
+
+AltOS uses a limited subset of the Google Maps, and the AltOS Map URIs
+only encode those elements which we currently use. This specification
+describes AltOS Map URI format version 1.0.0. The application is
+required to provide URIs compatible with the format supported by the
+server. The elements of the elements are:
+
+ * Latitude of center point
+ * Longitude of center point
+ * Zoom level (from bushes to planets)
+
+Encoding this in a URI is straightforward:
+
+\ altos-map?lat=<lat>&lon=<lon>&zoom=<zoom>
+
+Latitude and longitude are both encoded using decimal degrees with 6
+digits following the decimal point.
+
+Zoom levels can range from 1 (world) to 20 (buildings). Higher zoom
+levels show smaller areas at greater detail.
+
+The only Google Map type supported by version 1.0.0 of the service is
+“hybrid”, which combines road graphics on top of satellite images.
+
+Version 1.0.0 always returns images which are 512x512 pixels.
+
+If we need additional elements in the URL, we can add them in the
+future and bump the supported version number.
+
+=== AltOS Version URI
+
+To allow applications to discover what AltOS Map URI version is supported by the
+AltOS Map service, the application may query the version of the API
+supported using the Version URI. The application provides the version
+that it supports and the AltOS Map service returns a version not
+greater than the client version:
+
+\ altos-map?version=<client-major>.<client-minor>.<client-revision>
+\ →
+\ <server-major>.<server-minor>.<server.revision>
+
+=== AltOS Tile Request
+
+The AltOS Map CGI Script parses the Map URI and passes that
+information to the AltOS Map Cache Manager using the AltOS Tile
+Specifier syntax. This is a JSON representation of the same data
+provided by the URI:
+
+\ {
+\ "lat": <latitude>,
+\ "lon": <longitude>,
+\ "zoom": <zoom-level>,
+\ "remote_addr": "<IPv4 or IPv6 address of requesting client>"
+\ }
+
+Latitude and longitude are both encoded using decimal degrees with 6
+digits following the decimal point.
+
+=== AltOS Tile Reply
+
+Sent back from the Cache Manager to the CGI Script, this encodes the
+status of the request and the filename of any tile data available. It
+is encoded in JSON format:
+
+\ {
+\ "status": <HTTP status>,
+\ "filename": "<absolute path to image file>",
+\ "content_type": "<HTTP content-type>"
+\ }
+
+The “filename” and “content-type” elements are only included when
+the status is _200 OK_.
+
+=== AltOS Tile Filename
+
+While the current AltOS Map URI version only supports a limited subset
+of the Google Maps functionality, we'll encode more of that data in
+filenames to allow for easy expansion of functionality in the
+future. The elements of an AltOS Tile filename consist of :
+
+ * Latitude, with N/S indicator (instead of a sign)
+ * Longitude, with E/W indicator (instead of a sign)
+ * Map type.
+ * Zoom level
+ * Scale factor. Scale, and the preceding hyphen are omitted for a scale factor of 1.
+ * Image format suffix. '.jpg' for JPEG files and '.png' for PNG files.
+
+Latitude and longitude are both encoded using decimal degrees with 6
+digits following the decimal point.
+
+Map type is one of :
+
+ _hybrid_: Road graphics over satellite images
+ _roadmap_: Symbolic road map
+ _satellite_: Un-annotated satellite images
+ _terrain_: Topographic map
+
+Here's what map filenames look like:
+
+\ map-{N,S}<lat>,{E,W}<lon>-<type>-<zoom>[-<scale>].<format>
+\
+\ map-N36.508532,W107.823944-hybrid-18.jpg
+
+To transmit this name from the AltOS Map Cache Manager back to the
+Altos Map CGI script, the filename will be wrapped in a JSON string
+
+== Implementation
+
+The AltOS Map CGI Script and AltOS Map Cache Manager will both be
+implemented in Java as much of the required Google Maps infrastructure
+is already available in that language.
+
+=== Access Control
+
+No access control to the service is planned at this point. If
+necessary, we could implement username/password access control for each
+user of the service.
+
+=== Location Restrictions
+
+To avoid unbounded usage, and confine the utility of this service to
+AltOS users, the service will only offer map tiles whose center
+location is within 10 miles of one of the sites registered in
+our launch sites database.
+
+To allow testing of the registered launch site database, a database of
+privileged clients will be supported. Privileged clients will have
+unlimited access to the service.
+
+=== Per-Client Restrictions
+
+We should implement a per-day limit on the number of tiles provided to
+a particular requesting client. We can also rate limit clients to a
+certain number of tiles per minute to reduce the bandwidth consumed
+out of our server.
+
+=== Cache Lifetime Restrictions.
+
+The Google Maps API allows for caching of map data for no more than 30
+days. To honor this, the Cache Manager will re-fetch any requested
+tiles when the cached version is older than this. If the fetch fails,
+the cache manager will continue to serve the data from the cached
+version of the file.
diff --git a/doc/micropeak-docinfo.xml b/doc/micropeak-docinfo.xml
index 37c6e770..6fab12b8 100644
--- a/doc/micropeak-docinfo.xml
+++ b/doc/micropeak-docinfo.xml
@@ -5,7 +5,7 @@
<email>keithp@keithp.com</email>
</author>
<copyright>
- <year>2014</year>
+ <year>2018</year>
<holder>Keith Packard</holder>
</copyright>
<mediaobject>
@@ -32,6 +32,20 @@
<revhistory>
<?dbhtml filename="micropeak-revhistory.html"?>
<revision>
+ <revnumber>1.8.7</revnumber>
+ <date>8 October 2018</date>
+ <revremark>
+ Poll for MicroPeak USB while the device dialog is open. Fix Mac OS X support.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.8.6</revnumber>
+ <date>6 August 2018</date>
+ <revremark>
+ Report altimeter-recorded maximum height value
+ </revremark>
+ </revision>
+ <revision>
<revnumber>1.3.2</revnumber>
<date>12 February 2014</date>
<revremark>
diff --git a/doc/release-notes-1.8.7.inc b/doc/release-notes-1.8.7.inc
new file mode 100644
index 00000000..f8b7b103
--- /dev/null
+++ b/doc/release-notes-1.8.7.inc
@@ -0,0 +1,37 @@
+= Release Notes for Version 1.8.7
+:toc!:
+:doctype: article
+
+ Version 1.8.7
+
+ == AltOS
+
+ * Include TeleMega v3.0 firmware
+
+ == AltosUI, TeleGPS, MicroPeak
+
+ * Poll for new devices while Device dialog is displayed
+
+ * Wait for device to re-appear when flashing new firmware
+
+ * Fetch correct TeleBT v4.0 RF calibration values from web
+ site when reflashing.
+
+ * Change gyro headings in .csv files from x/y/z to
+ roll/pitch/yaw
+
+ * Add documentation about Packet Link mode
+
+ * Add documentation about forcing TeleMini RF parameters to
+ known values.
+
+ * Create a proxy server for Google Maps to re-enable map
+ images
+
+ * Fix Java version info in all distributed jar files so that
+ applications will run with standard Mac OS X Java.
+
+ * Replace JavaApplicationStub for Mac OS X so that
+ applications will run with Oracle Java.
+
+
diff --git a/doc/release-notes.inc b/doc/release-notes.inc
index 693699df..1183fd12 100644
--- a/doc/release-notes.inc
+++ b/doc/release-notes.inc
@@ -1,6 +1,10 @@
[appendix]
== Release Notes
:leveloffset: 2
+ include::release-notes-1.8.7.raw[]
+
+ <<<<
+ :leveloffset: 2
include::release-notes-1.8.6.raw[]
<<<<
diff --git a/doc/specs.inc b/doc/specs.inc
index f09d6fc9..1b7ea74b 100644
--- a/doc/specs.inc
+++ b/doc/specs.inc
@@ -76,6 +76,15 @@
|1MB
|-
|3.7-12V
+
+ |EasyMini v2.0
+ |MS5607 30km (100k')
+ |-
+ |-
+ |-
+ |1MB
+ |-
+ |3.7-12V
endif::easymini[]
ifdef::telemega[]
@@ -96,6 +105,15 @@
|8MB
|40mW
|3.7V
+
+ |TeleMega v3.0
+ |MS5607 30km (100k')
+ |MMA6555 102g
+ |uBlox Max-7Q
+ |MPU9250
+ |8MB
+ |40mW
+ |3.7V
endif::telemega[]
ifdef::easymega[]
diff --git a/doc/telegps-docinfo.xml b/doc/telegps-docinfo.xml
index 5e347cfd..4d3533de 100644
--- a/doc/telegps-docinfo.xml
+++ b/doc/telegps-docinfo.xml
@@ -10,7 +10,7 @@
<email>keithp@keithp.com</email>
</author>
<copyright>
- <year>2015</year>
+ <year>2018</year>
<holder>Bdale Garbee and Keith Packard</holder>
</copyright>
<mediaobject>
@@ -38,6 +38,14 @@
<revhistory>
<?dbhtml filename="telegps-revhistory.html"?>
<revision>
+ <revnumber>1.8.7</revnumber>
+ <date>08 Oct 2018</date>
+ <revremark>
+ Fix TeleBT v4.0 RF calibration to factory value when
+ reflashing. Fix map images. Fix Mac OS X support.
+ </revremark>
+ </revision>
+ <revision>
<revnumber>1.8.3</revnumber>
<date>11 Dec 2017</date>
<revremark>
diff --git a/doc/telemini.inc b/doc/telemini.inc
index b40582a2..08893dfb 100644
--- a/doc/telemini.inc
+++ b/doc/telemini.inc
@@ -94,6 +94,56 @@
the left power switch wire. Hook a lead to either of the
mounting holes for a ground connection.
+ === Using Packet Link Mode with TeleMini
+
+ After TeleMini powers up, it will check to see if some
+ device is attempting to communicate with it using
+ Packet Link Mode. If so, it will switch to idle mode
+ and start communicating. To switch to flight mode,
+ reboot the device either over the radio link or by
+ powering it off and back on.
+
+ If no ground station is attempting to communicate
+ using Packet Link Mode, TeleMini will enter pad mode
+ and prepare for flight.
+
+ The sequence of operations to use Packet Link Mode
+ with TeleMini is:
+
+ 1. Configure the ground station data rate, frequency
+ and callsign to match the TeleMini settings.
+
+ 2. Start Packet Link Mode in the ground station by
+ selecting the desired operation (Safe Flight Data,
+ Configure Altimeter, Fire Igniter or Monitor
+ Idle). Select the TeleBT or TeleDongle device. The
+ red LED should begin flashing rapidly.
+
+ 3. Turn on TeleMini. You should see the red LED flash
+ very rapidly during the initial communication burst,
+ but it should then slow down when the link is idle.
+
+ Once TeleMini is in Idle mode, it will stay in that
+ mode until rebooted. That means you can stop one
+ Packet Link operation, wait a while and start another
+ Packet Link operation.
+
+ === Forcing TeleMini radio parameters to known defaults
+
+ If you don't know what the TeleMini frequency and
+ callsign settings are, you can temporarily force it
+ back to the original default values (frequency
+ 434.550MHz, callsign N0CALL) by connecting a wire
+ between hole 3 and hole 7 on the debug connector. Hole
+ 3 has the square pad around it, hole 7 is the one
+ nearest the MS5607 baro sensor, which is a rectangular
+ component with a metal cap that has two holes in it.
+
+ Once TeleMini has been powered up with this wire
+ connected, the wire may be removed. The radio
+ parameters will stay set to these default values until
+ changed by the user or when the device is rebooted.
+
=== TeleMini v1
TeleMini v1 is the earlier version of this product. It
diff --git a/doc/usage.inc b/doc/usage.inc
index d010f398..dd795bdd 100644
--- a/doc/usage.inc
+++ b/doc/usage.inc
@@ -323,3 +323,22 @@
different kind of battery to any of these will destroy
the board.
endif::telemega,easymega,telemetrum[]
+
+ === Using Packet Link Mode
+
+ All AltusMetrum flight computers that have a radio can
+ communicate with the ground station software for
+ configuration and other operations using the Packet
+ Link mode. This uses radio communication instead of a
+ USB cable. To set this up, the ground station software
+ must be configured to the correct data rate, frequency
+ and callsign.
+
+ You can monitor Packet Link mode from TeleBT or
+ TeleDongle by watching the LEDs. Each time the device
+ transmits, the red LED will flash. When the link is
+ busy, or when the link is not working, the device will
+ transmit 10 times per second, so the LED will flash
+ rapidly. When the link is working and there is no data
+ to send, the link will flash once per second, and the
+ LED will flash more slowly.