From f27f431a032bed4af3dc523aa666fe06e5971a01 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sun, 18 Jul 2010 19:16:12 -0600 Subject: [PATCH] add documentation files for TeleMetrum --- TeleMetrum/doc/telemetrum-doc.html | 659 +++++++++++++++++++++++++++++ TeleMetrum/doc/telemetrum-doc.pdf | Bin 0 -> 62819 bytes 2 files changed, 659 insertions(+) create mode 100644 TeleMetrum/doc/telemetrum-doc.html create mode 100644 TeleMetrum/doc/telemetrum-doc.pdf diff --git a/TeleMetrum/doc/telemetrum-doc.html b/TeleMetrum/doc/telemetrum-doc.html new file mode 100644 index 0000000..84b2160 --- /dev/null +++ b/TeleMetrum/doc/telemetrum-doc.html @@ -0,0 +1,659 @@ +TeleMetrum

TeleMetrum

Owner's Manual for the TeleMetrum System

Bdale Garbee

Keith Packard

+ This document is released under the terms of the + + Creative Commons ShareAlike 3.0 + + license. +

Revision History
Revision 0.130 March 2010
Initial content

Chapter 1. Introduction and Overview

+ Welcome to the Altus Metrum community! Our circuits and software reflect + our passion for both hobby rocketry and Free Software. We hope their + capabilities and performance will delight you in every way, but by + releasing all of our hardware and software designs under open licenses, + we also hope to empower you to take as active a role in our collective + future as you wish! +

+ The focal point of our community is TeleMetrum, a dual deploy altimeter + with fully integrated GPS and radio telemetry as standard features, and + a "companion interface" that will support optional capabilities in the + future. +

+ Complementing TeleMetrum is TeleDongle, a USB to RF interface for + communicating with TeleMetrum. Combined with your choice of antenna and + notebook computer, TeleDongle and our associated user interface software + form a complete ground station capable of logging and displaying in-flight + telemetry, aiding rocket recovery, then processing and archiving flight + data for analysis and review. +

Chapter 2. Getting Started

Table of Contents

FAQ

+ This chapter began as "The Mere-Mortals Quick Start/Usage Guide to + the Altus Metrum Starter Kit" by Bob Finch, W9YA, NAR 12965, TRA 12350, + w9ya@amsat.org. Bob was one of our first customers for a production + TeleMetrum, and the enthusiasm that led to his contribution of this + section is immensely gratifying and highy appreciated! +

+ The first thing to do after you check the inventory of parts in your + "starter kit" is to charge the battery by plugging it into the + corresponding socket of the TeleMetrum and then using the USB A to B + cable to plug the Telemetrum into your computer's USB socket. The + TeleMetrum circuitry will charge the battery whenever it is plugged + into the usb socket. The TeleMetrum's on-off switch does NOT control + the charging circuitry. When the GPS chip is initially searching for + satellites, the unit will pull more current than it can pull from the + usb port, so the battery must be plugged in order to get a good + satellite lock. Once GPS is locked the current consumption goes back + down enough to enable charging while + running. So it's a good idea to fully charge the battery as your + first item of business so there is no issue getting and maintaining + satellite lock. The yellow charge indicator led will go out when the + battery is nearly full and the charger goes to trickle charge. +

+ The other active device in the starter kit is the half-duplex TeleDongle + rf link. If you plug it in to your computer it should "just work", + showing up as a serial port device. If you are using Linux and are + having problems, try moving to a fresher kernel (2.6.33 or newer), as + there were some ugly USB serial driver bugs in earlier versions. +

+ Next you should obtain and install the AltOS utilities. The first + generation sofware was written for Linux only. New software is coming + soon that will also run on Windows and Mac. For now, we'll concentrate + on Linux. If you are using Debian, an 'altos' package already exists, + see http://altusmetrum.org/AltOS for details on how to install it. + User-contributed directions for building packages on ArchLinux may be + found in the contrib/arch-linux directory as PKGBUILD files. + Between the debian/rules file and the PKGBUILD files in + contrib, you should find enough information to learn how to build the + software for any other version of Linux. +

+ When you have successfully installed the software suite (either from + compiled source code or as the pre-built Debian package) you will + have 10 executable programs all of which have names beginning with 'ao-'. + ('ao-view' is the lone GUI-based program. + The rest are command-line based.) You will also + have 10 man pages, that give you basic info on each program. + And you will also get this documentation in two file types, + telemetrum.pdf and telemetrum.html. + Finally you will have a couple of control files that allow the ao-view + GUI-based program to appear in your menu of programs (under + the 'Internet' category). +

+ Both Telemetrum and TeleDongle can be directly communicated + with using USB ports. The first thing you should try after getting + both units plugged into to your computer's usb port(s) is to run + 'ao-list' from a terminal-window (I use konsole for this,) to see what + port-device-name each device has been assigned by the operating system. + You will need this information to access the devices via their + respective on-board firmware and data using other command line + programs in the AltOS software suite. +

+ To access the device's firmware for configuration you need a terminal + program such as you would use to talk to a modem. The software + authors prefer using the program 'cu' which comes from the UUCP package + on most Unix-like systems such as Linux. An example command line for + cu might be 'cu -l /dev/ttyACM0', substituting the correct number + indicated from running the + ao-list program. Another reasonable terminal program for Linux is + 'cutecom'. The default 'escape' + character used by CU (i.e. the character you use to + issue commands to cu itself instead of sending the command as input + to the connected device) is a '~'. You will need this for use in + only two different ways during normal operations. First is to exit + the program by sending a '~.' which is called a 'escape-disconnect' + and allows you to close-out from 'cu'. The + second use will be outlined later. +

+ Both TeleMetrum and TeleDongle share the concept of a two level + command set in their + firmware. The first layer has several single letter commands. Once + you are using 'cu' (or 'cutecom') sending (typing) a '?' + returns a full list of these + commands. The second level are configuration sub-commands accessed + using the 'c' command, for + instance typing 'c?' will give you this second level of commands + (all of which require the + letter 'c' to access). Please note that most configuration options + are stored only in DataFlash memory, and only TeleMetrum has this + memory to save the various values entered like the channel number + and your callsign when powered off. TeleDongle requires that you + set these each time you plug it in, which ao-view can help with. +

+ Try setting these config ('c' or second level menu) values. A good + place to start is by setting your call sign. By default, the boards + use 'N0CALL' which is cute, but not exactly legal! + Spend a few minutes getting comfortable with the units, their + firmware, 'cu' (and possibly 'cutecom') For instance, try to send + (type) a 'cr2' and verify the channel change by sending a 'cs'. + Verify you can connect and disconnect from the units while in 'cu' + by sending the escape-disconnect mentioned above. +

+ Note that the 'reboot' command, which is very useful on TeleMetrum, + will likely just cause problems with the dongle. The *correct* way + to reset the dongle is just to unplug and re-plug it. +

+ A fun thing to do at the launch site and something you can do while + learning how to use these units is to play with the rf-link access + of the TeleMetrum from the TeleDongle. Be aware that you *must* create + some physical separation between the devices, otherwise the link will + not function due to signal overload in the receivers in each device. +

+ Now might be a good time to take a break and read the rest of this + manual, particularly about the two "modes" that the TeleMetrum + can be placed in and how the position of the TeleMetrum when booting + up will determine whether the unit is in "pad" or "idle" mode. +

+ You can access a TeleMetrum in idle mode from the Teledongle's USB + connection using the rf link + by issuing a 'p' command to the TeleDongle. Practice connecting and + disconnecting ('~~' while using 'cu') from the TeleMetrum. If + you cannot escape out of the "p" command, (by using a '~~' when in + CU) then it is likely that your kernel has issues. Try a newer version. +

+ Using this rf link allows you to configure the TeleMetrum, test + fire e-matches and igniters from the flight line, check pyro-match + continuity and so forth. You can leave the unit turned on while it + is in 'idle mode' and then place the + rocket vertically on the launch pad, walk away and then issue a + reboot command. The TeleMetrum will reboot and start sending data + having changed to the "pad" mode. If the TeleDongle is not receiving + this data, you can disconnect 'cu' from the Teledongle using the + procedures mentioned above and THEN connect to the TeleDongle from + inside 'ao-view'. If this doesn't work, disconnect from the + TeleDongle, unplug it, and try again after plugging it back in. +

+ Eventually the GPS will find enough satellites, lock in on them, + and 'ao-view' will both auditorially announce and visually indicate + that GPS is ready. + Now you can launch knowing that you have a good data path and + good satellite lock for flight data and recovery. Remember + you MUST tell ao-view to connect to the TeleDongle explicitly in + order for ao-view to be able to receive data. +

+ Both RDF (radio direction finding) tones from the TeleMetrum and + GPS trekking data are available and together are very useful in + locating the rocket once it has landed. (The last good GPS data + received before touch-down will be on the data screen of 'ao-view'.) +

+ Once you have recovered the rocket you can download the eeprom + contents using either 'ao-dumplog' (or possibly 'ao-eeprom'), over + either a USB cable or over the radio link using TeleDongle. + And by following the man page for 'ao-postflight' you can create + various data output reports, graphs, and even kml data to see the + flight trajectory in google-earth. (Moving the viewing angle making + sure to connect the yellow lines while in google-earth is the proper + technique.) +

+ As for ao-view.... some things are in the menu but don't do anything + very useful. The developers have stopped working on ao-view to focus + on a new, cross-platform ground station program. Mostly you just use + the Log and Device menus. It has a wonderful display of the incoming + flight data and I am sure you will enjoy what it has to say to you + once you enable the voice output! +

FAQ

+ The altimeter (TeleMetrum) seems to shut off when disconnected from the + computer. Make sure the battery is adequately charged. Remember the + unit will pull more power than the USB port can deliver before the + GPS enters "locked" mode. The battery charges best when TeleMetrum + is turned off. +

+ It's impossible to stop the TeleDongle when it's in "p" mode, I have + to unplug the USB cable? Make sure you have tried to "escape out" of + this mode. If this doesn't work the reboot procedure for the + TeleDongle *is* to simply unplug it. 'cu' however will retain it's + outgoing buffer IF your "escape out" ('~~') does not work. + At this point using either 'ao-view' (or possibly + 'cutemon') instead of 'cu' will 'clear' the issue and allow renewed + communication. +

+ The amber LED (on the TeleMetrum/altimeter) lights up when both + battery and USB are connected. Does this mean it's charging? + Yes, the yellow LED indicates the charging at the 'regular' rate. + If the led is out but the unit is still plugged into a USB port, + then the battery is being charged at a 'trickle' rate. +

+ There are no "dit-dah-dah-dit" sound like the manual mentions? + That's the "pad" mode. Weak batteries might be the problem. + It is also possible that the unit is horizontal and the output + is instead a "dit-dit" meaning 'idle'. +

+ It's unclear how to use 'ao-view' and other programs when 'cu' + is running. You cannot have more than one program connected to + the TeleDongle at one time without apparent data loss as the + incoming data will not make it to both programs intact. + Disconnect whatever programs aren't currently being used. +

+ How do I save flight data? + Live telemetry is written to file(s) whenever 'ao-view' is connected + to the TeleDongle. The file area defaults to ~/altos + but is easily changed using the menus in 'ao-view'. The files that + are written end in '.telem'. The after-flight + data-dumped files will end in .eeprom and represent continuous data + unlike the rf-linked .telem files that are subject to the + turnarounds/data-packaging time slots in the half-duplex rf data path. + See the above instructions on what and how to save the eeprom stored + data after physically retrieving your TeleMetrum. +

Chapter 3. Specifications

  • + Recording altimeter for model rocketry. +

  • + Supports dual deployment (can fire 2 ejection charges). +

  • + 70cm ham-band transceiver for telemetry downlink. +

  • + Barometric pressure sensor good to 45k feet MSL. +

  • + 1-axis high-g accelerometer for motor characterization, capable of + +/- 50g using default part. +

  • + On-board, integrated GPS receiver with 5hz update rate capability. +

  • + On-board 1 megabyte non-volatile memory for flight data storage. +

  • + USB interface for battery charging, configuration, and data recovery. +

  • + Fully integrated support for LiPo rechargeable batteries. +

  • + Uses LiPo to fire e-matches, support for optional separate pyro + battery if needed. +

  • + 2.75 x 1 inch board designed to fit inside 29mm airframe coupler tube. +

Chapter 4. Handling Precautions

+ TeleMetrum is a sophisticated electronic device. When handled gently and + properly installed in an airframe, it will deliver impressive results. + However, like all electronic devices, there are some precautions you + must take. +

+ The Lithium Polymer rechargeable batteries used with TeleMetrum have an + extraordinary power density. This is great because we can fly with + much less battery mass than if we used alkaline batteries or previous + generation rechargeable batteries... but if they are punctured + or their leads are allowed to short, they can and will release their + energy very rapidly! + Thus we recommend that you take some care when handling our batteries + and consider giving them some extra protection in your airframe. We + often wrap them in suitable scraps of closed-cell packing foam before + strapping them down, for example. +

+ The TeleMetrum barometric sensor is sensitive to sunlight. In normal + mounting situations, it and all of the other surface mount components + are "down" towards whatever the underlying mounting surface is, so + this is not normally a problem. Please consider this, though, when + designing an installation, for example, in a 29mm airframe's see-through + plastic payload bay. +

+ The TeleMetrum barometric sensor sampling port must be able to "breathe", + both by not being covered by foam or tape or other materials that might + directly block the hole on the top of the sensor, but also by having a + suitable static vent to outside air. +

+ As with all other rocketry electronics, TeleMetrum must be protected + from exposure to corrosive motor exhaust and ejection charge gasses. +

Chapter 5. Hardware Overview

+ TeleMetrum is a 1 inch by 2.75 inch circuit board. It was designed to + fit inside coupler for 29mm airframe tubing, but using it in a tube that + small in diameter may require some creativity in mounting and wiring + to succeed! The default 1/4 + wave UHF wire antenna attached to the center of the nose-cone end of + the board is about 7 inches long, and wiring for a power switch and + the e-matches for apogee and main ejection charges depart from the + fin can end of the board. Given all this, an ideal "simple" avionics + bay for TeleMetrum should have at least 10 inches of interior length. +

+ A typical TeleMetrum installation using the on-board GPS antenna and + default wire UHF antenna involves attaching only a suitable + Lithium Polymer battery, a single pole switch for power on/off, and + two pairs of wires connecting e-matches for the apogee and main ejection + charges. +

+ By default, we use the unregulated output of the LiPo battery directly + to fire ejection charges. This works marvelously with standard + low-current e-matches like the J-Tek from MJG Technologies, and with + Quest Q2G2 igniters. However, if you + want or need to use a separate pyro battery, you can do so by adding + a second 2mm connector to position B2 on the board and cutting the + thick pcb trace connecting the LiPo battery to the pyro circuit between + the two silk screen marks on the surface mount side of the board shown + here [insert photo] +

+ We offer two choices of pyro and power switch connector, or you can + choose neither and solder wires directly to the board. All three choices + are reasonable depending on the constraints of your airframe. Our + favorite option when there is sufficient room above the board is to use + the Tyco pin header with polarization and locking. If you choose this + option, you crimp individual wires for the power switch and e-matches + into a mating connector, and installing and removing the TeleMetrum + board from an airframe is as easy as plugging or unplugging two + connectors. If the airframe will not support this much height or if + you want to be able to directly attach e-match leads to the board, we + offer a screw terminal block. This is very similar to what most other + altimeter vendors provide and so may be the most familiar + option. You'll need a very small straight blade screwdriver to connect + and disconnect the board in this case, such as you might find in a + jeweler's screwdriver set. Finally, you can forego both options and + solder wires directly to the board, which may be the best choice for + minimum diameter and/or minimum mass designs. +

+ For most airframes, the integrated GPS antenna and wire UHF antenna are + a great combination. However, if you are installing in a carbon-fiber + electronics bay which is opaque to RF signals, you may need to use + off-board external antennas instead. In this case, you can order + TeleMetrum with an SMA connector for the UHF antenna connection, and + you can unplug the integrated GPS antenna and select an appropriate + off-board GPS antenna with cable terminating in a U.FL connector. +

Chapter 6. Operation

Firmware Modes

+ The AltOS firmware build for TeleMetrum has two fundamental modes, + "idle" and "flight". Which of these modes the firmware operates in + is determined by the orientation of the rocket (well, actually the + board, of course...) at the time power is switched on. If the rocket + is "nose up", then TeleMetrum assumes it's on a rail or rod being + prepared for launch, so the firmware chooses flight mode. However, + if the rocket is more or less horizontal, the firmware instead enters + idle mode. +

+ At power on, you will hear three beeps ("S" in Morse code for startup) + and then a pause while + TeleMetrum completes initialization and self tests, and decides which + mode to enter next. +

+ In flight mode, TeleMetrum turns on the GPS system, engages the flight + state machine, goes into transmit-only mode on the RF link sending + telemetry, and waits for launch to be detected. Flight mode is + indicated by an audible "di-dah-dah-dit" ("P" for pad) on the + beeper, followed by + beeps indicating the state of the pyrotechnic igniter continuity. + One beep indicates apogee continuity, two beeps indicate + main continuity, three beeps indicate both apogee and main continuity, + and one longer "brap" sound indicates no continuity. For a dual + deploy flight, make sure you're getting three beeps before launching! + For apogee-only or motor eject flights, do what makes sense. +

+ In idle mode, you will hear an audible "di-dit" ("I" for idle), and + the normal flight state machine is disengaged, thus + no ejection charges will fire. TeleMetrum also listens on the RF + link when in idle mode for packet mode requests sent from TeleDongle. + Commands can be issued to a TeleMetrum in idle mode over either + USB or the RF link equivalently. + Idle mode is useful for configuring TeleMetrum, for extracting data + from the on-board storage chip after flight, and for ground testing + pyro charges. +

+ One "neat trick" of particular value when TeleMetrum is used with very + large airframes, is that you can power the board up while the rocket + is horizontal, such that it comes up in idle mode. Then you can + raise the airframe to launch position, use a TeleDongle to open + a packet connection, and issue a 'reset' command which will cause + TeleMetrum to reboot, realize it's now nose-up, and thus choose + flight mode. This is much safer than standing on the top step of a + rickety step-ladder or hanging off the side of a launch tower with + a screw-driver trying to turn on your avionics before installing + igniters! +

GPS

+ TeleMetrum includes a complete GPS receiver. See a later section for + a brief explanation of how GPS works that will help you understand + the information in the telemetry stream. The bottom line is that + the TeleMetrum GPS receiver needs to lock onto at least four + satellites to obtain a solid 3 dimensional position fix and know + what time it is! +

+ TeleMetrum provides backup power to the GPS chip any time a LiPo + battery is connected. This allows the receiver to "warm start" on + the launch rail much faster than if every power-on were a "cold start" + for the GPS receiver. In typical operations, powering up TeleMetrum + on the flight line in idle mode while performing final airframe + preparation will be sufficient to allow the GPS receiver to cold + start and acquire lock. Then the board can be powered down during + RSO review and installation on a launch rod or rail. When the board + is turned back on, the GPS system should lock very quickly, typically + long before igniter installation and return to the flight line are + complete. +

Ground Testing

+ An important aspect of preparing a rocket using electronic deployment + for flight is ground testing the recovery system. Thanks + to the bi-directional RF link central to the Altus Metrum system, + this can be accomplished in a TeleMetrum-equipped rocket without as + much work as you may be accustomed to with other systems. It can + even be fun! +

+ Just prep the rocket for flight, then power up TeleMetrum while the + airframe is horizontal. This will cause the firmware to go into + "idle" mode, in which the normal flight state machine is disabled and + charges will not fire without manual command. Then, establish an + RF packet connection from a TeleDongle-equipped computer using the + P command from a safe distance. You can now command TeleMetrum to + fire the apogee or main charges to complete your testing. +

+ In order to reduce the chance of accidental firing of pyrotechnic + charges, the command to fire a charge is intentionally somewhat + difficult to type, and the built-in help is slightly cryptic to + prevent accidental echoing of characters from the help text back at + the board from firing a charge. The command to fire the apogee + drogue charge is 'i DoIt drogue' and the command to fire the main + charge is 'i DoIt main'. +

Radio Link

+ The chip our boards are based on incorporates an RF transceiver, but + it's not a full duplex system... each end can only be transmitting or + receiving at any given moment. So we had to decide how to manage the + link. +

+ By design, TeleMetrum firmware listens for an RF connection when + it's in "idle mode" (turned on while the rocket is horizontal), which + allows us to use the RF link to configure the rocket, do things like + ejection tests, and extract data after a flight without having to + crack open the airframe. However, when the board is in "flight + mode" (turned on when the rocket is vertical) the TeleMetrum only + transmits and doesn't listen at all. That's because we want to put + ultimate priority on event detection and getting telemetry out of + the rocket and out over + the RF link in case the rocket crashes and we aren't able to extract + data later... +

+ We don't use a 'normal packet radio' mode because they're just too + inefficient. The GFSK modulation we use is just FSK with the + baseband pulses passed through a + Gaussian filter before they go into the modulator to limit the + transmitted bandwidth. When combined with the hardware forward error + correction support in the cc1111 chip, this allows us to have a very + robust 38.4 kilobit data link with only 10 milliwatts of transmit power, + a whip antenna in the rocket, and a hand-held Yagi on the ground. We've + had a test flight above 12k AGL with good reception, and calculations + suggest we should be good to 40k AGL or more with a 5-element yagi on + the ground. We hope to fly boards to higher altitudes soon, and would + of course appreciate customer feedback on performance in higher + altitude flights! +

Configurable Parameters

+ Configuring a TeleMetrum board for flight is very simple. Because we + have both acceleration and pressure sensors, there is no need to set + a "mach delay", for example. The few configurable parameters can all + be set using a simple terminal program over the USB port or RF link + via TeleDongle. +

Radio Channel

+ Our firmware supports 10 channels. The default channel 0 corresponds + to a center frequency of 434.550 Mhz, and channels are spaced every + 100 khz. Thus, channel 1 is 434.650 Mhz, and channel 9 is 435.550 Mhz. + At any given launch, we highly recommend coordinating who will use + each channel and when to avoid interference. And of course, both + TeleMetrum and TeleDongle must be configured to the same channel to + successfully communicate with each other. +

+ To set the radio channel, use the 'c r' command, like 'c r 3' to set + channel 3. + As with all 'c' sub-commands, follow this with a 'c w' to write the + change to the parameter block in the on-board DataFlash chip. +

Apogee Delay

+ Apogee delay is the number of seconds after TeleMetrum detects flight + apogee that the drogue charge should be fired. In most cases, this + should be left at the default of 0. However, if you are flying + redundant electronics such as for an L3 certification, you may wish + to set one of your altimeters to a positive delay so that both + primary and backup pyrotechnic charges do not fire simultaneously. +

+ To set the apogee delay, use the [FIXME] command. + As with all 'c' sub-commands, follow this with a 'c w' to write the + change to the parameter block in the on-board DataFlash chip. +

Main Deployment Altitude

+ By default, TeleMetrum will fire the main deployment charge at an + elevation of 250 meters (about 820 feet) above ground. We think this + is a good elevation for most airframes, but feel free to change this + to suit. In particular, if you are flying two altimeters, you may + wish to set the + deployment elevation for the backup altimeter to be something lower + than the primary so that both pyrotechnic charges don't fire + simultaneously. +

+ To set the main deployment altitude, use the [FIXME] command. + As with all 'c' sub-commands, follow this with a 'c w' to write the + change to the parameter block in the on-board DataFlash chip. +

Calibration

+ There are only two calibrations required for a TeleMetrum board, and + only one for TeleDongle. +

Radio Frequency

+ The radio frequency is synthesized from a clock based on the 48 Mhz + crystal on the board. The actual frequency of this oscillator must be + measured to generate a calibration constant. While our GFSK modulation + bandwidth is wide enough to allow boards to communicate even when + their oscillators are not on exactly the same frequency, performance + is best when they are closely matched. + Radio frequency calibration requires a calibrated frequency counter. + Fortunately, once set, the variation in frequency due to aging and + temperature changes is small enough that re-calibration by customers + should generally not be required. +

+ To calibrate the radio frequency, connect the UHF antenna port to a + frequency counter, set the board to channel 0, and use the 'C' + command to generate a CW carrier. Wait for the transmitter temperature + to stabilize and the frequency to settle down. + Then, divide 434.550 Mhz by the + measured frequency and multiply by the current radio cal value show + in the 'c s' command. For an unprogrammed board, the default value + is 1186611. Take the resulting integer and program it using the 'c f' + command. Testing with the 'C' command again should show a carrier + within a few tens of Hertz of the intended frequency. + As with all 'c' sub-commands, follow this with a 'c w' to write the + change to the parameter block in the on-board DataFlash chip. +

Accelerometer

+ The accelerometer we use has its own 5 volt power supply and + the output must be passed through a resistive voltage divider to match + the input of our 3.3 volt ADC. This means that unlike the barometric + sensor, the output of the acceleration sensor is not ratiometric to + the ADC converter, and calibration is required. We also support the + use of any of several accelerometers from a Freescale family that + includes at least +/- 40g, 50g, 100g, and 200g parts. Using gravity, + a simple 2-point calibration yields acceptable results capturing both + the different sensitivities and ranges of the different accelerometer + parts and any variation in power supply voltages or resistor values + in the divider network. +

+ To calibrate the acceleration sensor, use the 'c a 0' command. You + will be prompted to orient the board vertically with the UHF antenna + up and press a key, then to orient the board vertically with the + UHF antenna down and press a key. + As with all 'c' sub-commands, follow this with a 'c w' to write the + change to the parameter block in the on-board DataFlash chip. +

+ The +1g and -1g calibration points are included in each telemetry + frame and are part of the header extracted by ao-dumplog after flight. + Note that we always store and return raw ADC samples for each + sensor... nothing is permanently "lost" or "damaged" if the + calibration is poor. +

Chapter 7. Using Altus Metrum Products

Being Legal

+ First off, in the US, you need an [amateur radio license](../Radio) or + other authorization to legally operate the radio transmitters that are part + of our products. +

In the Rocket

+ In the rocket itself, you just need a [TeleMetrum](../TeleMetrum) board and + a LiPo rechargeable battery. An 860mAh battery weighs less than a 9V + alkaline battery, and will run a [TeleMetrum](../TeleMetrum) for hours. +

+ By default, we ship TeleMetrum with a simple wire antenna. If your + electronics bay or the airframe it resides within is made of carbon fiber, + which is opaque to RF signals, you may choose to have an SMA connector + installed so that you can run a coaxial cable to an antenna mounted + elsewhere in the rocket. +

On the Ground

+ To receive the data stream from the rocket, you need an antenna and short + feedline connected to one of our [TeleDongle](../TeleDongle) units. The + TeleDongle in turn plugs directly into the USB port on a notebook + computer. Because TeleDongle looks like a simple serial port, your computer + does not require special device drivers... just plug it in. +

+ Right now, all of our application software is written for Linux. However, + because we understand that many people run Windows or MacOS, we are working + on a new ground station program written in Java that should work on all + operating systems. +

+ After the flight, you can use the RF link to extract the more detailed data + logged in the rocket, or you can use a mini USB cable to plug into the + TeleMetrum board directly. Pulling out the data without having to open up + the rocket is pretty cool! A USB cable is also how you charge the LiPo + battery, so you'll want one of those anyway... the same cable used by lots + of digital cameras and other modern electronic stuff will work fine. +

+ If your rocket lands out of sight, you may enjoy having a hand-held GPS + receiver, so that you can put in a waypoint for the last reported rocket + position before touch-down. This makes looking for your rocket a lot like + Geo-Cacheing... just go to the waypoint and look around starting from there. +

+ You may also enjoy having a ham radio "HT" that covers the 70cm band... you + can use that with your antenna to direction-find the rocket on the ground + the same way you can use a Walston or Beeline tracker. This can be handy + if the rocket is hiding in sage brush or a tree, or if the last GPS position + doesn't get you close enough because the rocket dropped into a canyon, or + the wind is blowing it across a dry lake bed, or something like that... Keith + and Bdale both currently own and use the Yaesu VX-7R at launches. +

+ So, to recap, on the ground the hardware you'll need includes: +

  1. + an antenna and feedline +
  2. + a TeleDongle +
  3. + a notebook computer +
  4. + optionally, a handheld GPS receiver +
  5. + optionally, an HT or receiver covering 435 Mhz +

+

+ The best hand-held commercial directional antennas we've found for radio + direction finding rockets are from + + Arrow Antennas. + + The 440-3 and 440-5 are both good choices for finding a + TeleMetrum-equipped rocket when used with a suitable 70cm HT. +

Data Analysis

+ Our software makes it easy to log the data from each flight, both the + telemetry received over the RF link during the flight itself, and the more + complete data log recorded in the DataFlash memory on the TeleMetrum + board. Once this data is on your computer, our postflight tools make it + easy to quickly get to the numbers everyone wants, like apogee altitude, + max acceleration, and max velocity. You can also generate and view a + standard set of plots showing the altitude, acceleration, and + velocity of the rocket during flight. And you can even export a data file + useable with Google Maps and Google Earth for visualizing the flight path + in two or three dimensions! +

+ Our ultimate goal is to emit a set of files for each flight that can be + published as a web page per flight, or just viewed on your local disk with + a web browser. +

Future Plans

+ In the future, we intend to offer "companion boards" for the rocket that will + plug in to TeleMetrum to collect additional data, provide more pyro channels, + and so forth. A reference design for a companion board will be documented + soon, and will be compatible with open source Arduino programming tools. +

+ We are also working on the design of a hand-held ground terminal that will + allow monitoring the rocket's status, collecting data during flight, and + logging data after flight without the need for a notebook computer on the + flight line. Particularly since it is so difficult to read most notebook + screens in direct sunlight, we think this will be a great thing to have. +

+ Because all of our work is open, both the hardware designs and the software, + if you have some great idea for an addition to the current Altus Metrum family, + feel free to dive in and help! Or let us know what you'd like to see that + we aren't already working on, and maybe we'll get excited about it too... +

+ How GPS Works +

+ Placeholder. +

diff --git a/TeleMetrum/doc/telemetrum-doc.pdf b/TeleMetrum/doc/telemetrum-doc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..973daaa073d85813dd0e8445b9af9dc608101c19 GIT binary patch literal 62819 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 z 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