Keith Packard [Sun, 7 Apr 2013 06:48:36 +0000 (23:48 -0700)]
altos: Try RDF mode for TX calibration
Trying to get the radio to stop modulating the carrier when
calibrating the radio, we'll try RDF mode which says no preamble or
sync data. This might shift the frequency though?
Keith Packard [Mon, 1 Apr 2013 08:58:37 +0000 (01:58 -0700)]
altos: Flush the on-board mega log after every sample interval.
SPI flash parts don't need flushing, but the SD card does. Make sure
the SD card contents are sane after every logging interval has passed
by flushing all dirty blocks to the device.
Keith Packard [Sat, 23 Mar 2013 09:10:38 +0000 (02:10 -0700)]
ao-tools/ao-stmload: Be smarter about ELF parsing. Retry open on failure.
Figuring out what goes where is tricky; turns out we want to pull all
of the sections that map inside any program area that is supposed to
be loaded from the file.
So, we walk the program headers, then walk all of the section headers
looking for those that suck data from the same portion of the
file. Compute where in ROM each relevant section goes and build a full
ROM image in memory using that.
This patch also adds code to close and re-open the device if the first
open failed to do what we want. Much nicer to have the computer figure
out when the open succeeded rather than having people re-run the app.
Keith Packard [Sun, 24 Mar 2013 22:04:57 +0000 (15:04 -0700)]
altos/stm: Always check for idle IN buffer before sending
Unlike the AVR and CC1111 USB drivers, the STM usb driver queues IN
bytes in a local buffer instead of in the driver; this means that the
driver is queuing bytes while the previous IN packet is queued for the
host, which allows for overlapping execution.
It also means that when the local buffer is full, we must check to see
if the host has picked up the previous IN packet before trying to
queue another IN packet for transmission. This is done by always
waiting for the IN buffer to be ready before sending data.
Keith Packard [Sun, 24 Mar 2013 22:00:20 +0000 (15:00 -0700)]
altos: Do not release interrupts from any pollchar function
getchar relies on interrupts being blocked across the pollchar calls
and into the sleep call or it may go to sleep with data pending.
This prefixes all pollchar functions with _ to indicate that they are
to be called with interrupts blocked and eliminates all interrupt
manipulation calls from within the pollchar functions.
Keith Packard [Sat, 30 Mar 2013 00:05:36 +0000 (17:05 -0700)]
altos: Get CC115L radio working.
This involved figuring out which GPIO signal would reliably indicate
that the transmitter was finished; I ended up using the PA_PD bit for
this.
This also converts all of the radio users to the long packet support
as the CC115L has only a 64-byte fifo, not large enough to hold either
an RDF tone or a regular AltOS telemetry packet.
This also renames the public API for sending APRS packets from
ao_radio_send_lots to ao_radio_send_aprs, which is at least more
accurate. The workings of that API haven't changed, just the name.
Keith Packard [Fri, 29 Mar 2013 07:32:23 +0000 (00:32 -0700)]
altos: Add FAT32 support. And lots more testing.
Generalizes the FAT code to deal with either 16-bit or 32-bit
versions. The testing code now runs over a variety of disk images to
check for compatibility on all of them.
Keith Packard [Fri, 29 Mar 2013 00:38:14 +0000 (17:38 -0700)]
altos: seek forward on FAT cluster chain instead of restarting
This improves sequential file performance by taking advantage of any
previous cached cluster/offset pair and starting from there when the
cluster changes rather than starting from scratch at the begining again.
Keith Packard [Thu, 28 Mar 2013 23:05:24 +0000 (16:05 -0700)]
altos: Clean up fat driver API. Improve fat test
Make FAT api provide reasonable error return values, change the tests
to write and then read a pile of files, checking that the contents are
correct (using md5sum).
Keith Packard [Thu, 28 Mar 2013 01:43:42 +0000 (18:43 -0700)]
altos: Use FTDW, clear DATA bit. Disable backup write protection
The newer(?) chips in telegps didn't like the previous programming
scheme, so go back to fixed time for write, which does an implicit
erase before every write. Also clear the DATA bit, which is only
needed for double word erase/programming.
Mike Beattie [Sun, 10 Mar 2013 07:40:13 +0000 (20:40 +1300)]
altosdroid: programmatically create map fragment
* Allows reliable fetching of a GoogleMap handle.
* Set map options, initial location (NCR North for now, temporarily)
* Add some info fields below map, and update them accordingly
Keith Packard [Sun, 10 Mar 2013 04:40:52 +0000 (20:40 -0800)]
ao-tools: Add ao-edit-telem
This lets you edit a telemetry file. The only current editing
available is to change the pad location, allowing a flight to be
replayed anywhere in the world.
Mike Beattie [Thu, 7 Mar 2013 08:28:45 +0000 (21:28 +1300)]
altosdroid: Import initial versions of XML and Java for Tab content
* Includes TabsAdapter class borrowed from Support Library sample code
* New "GoNoGoLights" class for dealing with the red/green/gray LEDs
* extra required strings in strings.xml
* Couple of support functions in AltosDroid.java
* rudimentary Maps tab - does nothing at present.
Mike Beattie [Thu, 7 Mar 2013 06:23:39 +0000 (19:23 +1300)]
altosdroid: Adjust build system for GMaps & Tabs support
* Use SupportV4 library for Tab support
* Use Google Services Lib for Google Maps
* revert to a standard Android target, not Google API's
* Add permissions required for Google Maps to manifest, and API key
Keith Packard [Sun, 3 Mar 2013 01:46:29 +0000 (17:46 -0800)]
libaltos: Open FTDI serial devices twice on Windows.
Looks like the Windows FTDI driver has 'issues' and opening it only
once doesn't work correctly. Just close and re-open the device and it
seems to be perfectly happy.
Keith Packard [Sat, 2 Mar 2013 04:45:43 +0000 (20:45 -0800)]
doc: Document how to get TeleMini to 'emergency recovery' mode
TeleMini needs emergency recovery mode in case you forget the radio
parameters and need to get things back to a known state. Add
documentation to describe what this does and how to get it enabled.
Keith Packard [Fri, 1 Mar 2013 20:28:34 +0000 (12:28 -0800)]
altosuilib: Add setNotify/fireSeriesChanged methods to AltosUIGrapher
This will let the data adding functions disable notifications while
adding all of the graph data, and then send a single notification when
the data sets are complete, which speeds up creating of the graph
elements quite a bit.