# TeleMetrum
This is a recording dual-deploy altimeter for high power model rocketry
-with integrated telemetry link.
+with integrated GPS and telemetry link.
-<a href="rawfront.jpg"> <img src="rawfront-thumb.jpg"></a>
-<a href="rawback.jpg"> <img src="rawback-thumb.jpg"></a>
+Production units are available from the
+[Garbee and Garbee](http://auric.gag.com) web store.
+
+These are photos of our current production version, which includes an
+integrated GPS receiver with active patch antenna:
+
+<a href="v1.0/cimg5972-crop.jpg"> <img src="v1.0/cimg5972-thumb.jpg"></a>
+<a href="v1.0/cimg5974-crop.jpg"> <img src="v1.0/cimg5974-thumb.jpg"></a>
+
+These are photos of our second version, which included the integrated Venus
+GPS receiver, but with a passive patch antenna that turned out to have
+disappointing performance due to our many PCB geometry constraints:
+
+<a href="v0.2/cimg5164-cropped.jpg"> <img src="v0.2/cimg5164-thumb.jpg"></a>
+<a href="v0.2/cimg5171-cropped.jpg"> <img src="v0.2/cimg5171-thumb.jpg"></a>
+
+And this is a photo of our original board with serial port for off-board GPS,
+without the big off-board 1000uF cap from the original ejection circuit:
+
+<a href="v0.1/loadedpair.jpg"> <img src="v0.1/loadedpair-thumb.jpg"></a>
## Motivation ##
using a different part in the same TI series, that integrated a transceiver
and CPU on the same chip.
It didn't take us long to realize that with such a part we could combine and
-simplify things by building a new altimeter with integrated RF link!
+simplify things by building a new altimeter with integrated RF link! And
+after gaining some experience in 2009 with a first version, we realized we
+always want GPS on board, which lead to our current second generation boards.
## Features ##
* Recording altimeter for model rocketry
* Supports dual deployment (can fire 2 ejection charges)
* 70cm ham-band transceiver for telemetry downlink
-* Primary operations based on pressure sensor
-* Temperature sensor
+* Barometric pressure sensor good to 45k feet MSL
* 1-axis high-g accelerometer for motor characterization
+* On-board, integrated GPS receiver
* On-board non-volatile memory for flight data storage
-* Serial port for attachment of GPS module
* USB for power, configuration, and data recovery
* Integrated support for LiPo rechargeable batteries
-* Designed to fit 29mm airframe coupler tube
+* Uses LiPo to fire e-matches, optional support for separate pyro battery
+* 2.75 x 1 inch board designed to fit inside 29mm airframe coupler tube
### Developer View ###
-* [TI CC1111F32](http://focus.ti.com/docs/prod/folders/print/cc1111f32.html) Low Power RF System-on-Chip
- * Sub-1Ghz transceiver
- * 8051 MCU
- * 32k Flash
- * 4k RAM
- * USB 2.0
- * analog, digital, and serial I/O
-* [Microchip 25LC1024](http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en520389) CMOS serial EEPROM
- * 128k x 8
- * SPI interface
-* Various Sensors
+* Hardware Features
+ * [TI CC1111F32](http://focus.ti.com/docs/prod/folders/print/cc1111f32.html) Low Power RF System-on-Chip
+ * Sub-1Ghz transceiver
+ * 8051 MCU
+ * 32k Flash
+ * 4k RAM
+ * USB 2.0
+ * 6 12-bit analog inputs (11 bits with single-ended sensors)
+ * 2 channels of serial I/O
+ * digital I/O
+ * [Atmel AT45DB081D](http://www.atmel.com/dyn/products/product_card.asp?part_id=3819) DataFlash memory
+ * 1M x 8
+ * 256 byte page size
+ * SPI interface
+ * other parts in this Atmel DataFlash series can optionally be used
+ * [SkyTraq](http://www.skytraq.com.tw/) Venus634FLPx GPS receiver
+ * on-board [Taoglas AP.17A.01[(http://www.taoglas.com/antennas/GPS_Antennas/Internal_GPS_-_Active_Patch_Modules/)
+ single-stage active patch antenna
+ * U.FL connector with 3.3V DC can be re-purposed for optional external amplified antennas
+ * async serial interface
* [Freescale MP3H6115A](http://www.freescale.com/webapp/search.partparamdetail.framework?PART_NUMBER=MP3H6115A6U) pressure sensor
* [Freescale MMA2202EG](http://www.freescale.com/webapp/search.partparamdetail.framework?PART_NUMBER=MMA2202EG) 50g accelerometer. Can use 40-200g variants!
- * [Microchip MCP9700A](http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en027103) temperature sensor
-* Software Features (planned)
+* Software Features
* Written mostly in C with some 8051 assembler
* Runs from on-chip flash, uses on-chip RAM, stores flight data to
- serial EEPROM chip
+ serial DataFlash chip
* USB serial emulation for "console" interface
- * USB mass storage emulation for data recovery
* Tools Used
- * [gEDA](http://geda.seul.org/) for schematic capture and PCB layout
+ * [gEDA](http://www.gpleda.org/) for schematic capture and PCB layout
* [SDCC](http://sdcc.sourceforge.net/) compiler and source debugger
- * [FreeRTOS](http://www.freertos.org/) kernel
* Licenses
* The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html)
* The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
-## Problems ##
+### v0.1 Differences ###
-* The CC1111F32 is a 36-pin QFN package, which necessitates reflow soldering.
+* 2.5 x 1 inch board with all parts mounted on one side
+* 4-pin PicoBlade serial port connector for attachment of external GPS module
+* USB connector projected approximately 3mm over the edge of the board
+* Debug connector used 4 IC socket pins on 100 mil centers
+* no companion board interface
+* [Microchip 25LC1024](http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en520389) CMOS serial EEPROM instead of DataFlash
+ * 128k x 8
+ * SPI interface
+* [Microchip MCP9700A](http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en027103) discrete temperature sensor
+* used 1000uF electrolytic capacitor charged to 5V for pyro supply
+* two LEDs instead of one attached to CPU
+
+The elimination of the discrete temperature sensor and second LED were
+necessary to support the companion board interface added in v0.2.
+
+## [Production History](../production) ##
-* Since we needed to reflow solder anyway, and because TI used them in their
- reference design, we went a little crazy and used 0402 passive parts
- everywhere. That means working under a microscope to place parts!
+## [Flight Logs](flightlogs) ##
+
+## Problems ##
+
+* The CC1111F32 is a 36-pin QFN package, which necessitates reflow
+ soldering. Since we needed to reflow solder anyway, and because TI used
+ them in their reference design, we went a little crazy and used 0402
+ passive parts everywhere. That means working under a microscope to
+ place parts! Without an inspection microscope, loading and testing these
+ boards might be impossible.
+
+* The addition of on-board GPS in v0.2 means that the total power consumption
+ can exceed the rate at which we draw power from the USB interface,
+ particularly when the GPS is in cold start mode. This means a battery must
+ be attached during operation, and also that the battery will only charge
+ effectively from USB when the board is turned off.
+
+* The v0.1 artwork had three issues, two of which required physical rework
+ on each board. All of these issues were fixed in v0.2.
+
+ * The USB connector footprint was placed wrong, so that the
+ connector hung out over the edge of the board instead of being
+ flush.
+ * We needed chip select on the SPI memory. To fix that, we gave up the
+ ability to put the accelerometer into self-test mode and used that
+ GPIO line to pull chip select on the memory, which required two
+ cuts and two jumpers.
+ * The igniter sense circuits each needed a second resistor to
+ complete the voltage divider so our 3.3V CPU ADC could read the
+ 5V ejection voltage. This was fixed by changing two resistor
+ values, and tacking two additional resistors onto the board
+ with jumpers to ground.
## Artifacts ##
The hardware design current gEDA files are available from
-[git.gag.com](http://git.gag.com).
-
-As of 6 January 2009, the raw boards are here, so we're nearly ready to try
-building our first prototype!
+[git.gag.com](http://git.gag.com) in the project
+[hw/telemetrum](http://git.gag.com/?p=hw/telemetrum;a=summary).
+
+Work on the next version proceeds on the master branch, with occasional
+temporary branches created when Bdale is making some major / speculative
+change. The 'v0.2' and 'v0.1' branches document what we're actually flying
+right now on the two respective PCB revisions. The 'ground' branch has a
+cut-down schematic used to generate the BOM for partially loading v0.1 boards
+to used on the ground. We call the on-the-ground version 'TeleDongle'.
+
+For those who don't have ready access to the gEDA suite, here are pdf snapshots
+of files in more easily readable form.
+
+* These are from the v0.2 branch:
+ * [schematic](v0.2/telemetrum.pdf)
+ * [pcb artwork](v0.2/telemetrum.pcb.pdf)
+ * [bill of materials](v0.2/partslist.csv)
+* These are as of the working-v0.1 tag:
+ * [schematic](v0.1/telemetrum.pdf)
+ * [pcb artwork](v0.1/telemetrum.pcb.pdf)
+ * [bill of materials](v0.1/telemetrum.bom)
+
+Our [AltOS](../AltOS) firmware works well enough that we now routinely fly
+TeleMetrum with no backup. Rockets with v0.1 boards have exceeded 50g
+acceleration, been above Mach 1, and reached altitudes greater
+than 12k feet AGL with great results. Keith's ground station program
+called ao-view logs telemetry to disk, displays current and max values for
+key parameters during flight, and even includes voice synthesis
+during the flight so that our eyes can stay on the rockets! We have post
+flight analysis software that makes it easy to extract data from the board,
+analyze it, and even generate KML files for viewing flights in GoogleEarth!
+More details on the software, including full source code and pre-built packages
+can be found on the [AltOS](../AltOS) page on this site.
+
+## Future Plans ##
+
+As of early March 2010, three prototypes of v0.2 exist and have flown with
+great success. We will initiate a production run shortly with the goal of
+making TeleMetrum available in assembled and tested form to others in the
+rocketry hobby in time for the 2010 flying season.
+
+Because we understand that not everyone uses Linux, we are investigating
+the best way to make a cross-platform ground station program for use with
+[AltOS](../AltOS), perhaps in Java...