This afternoon, a box arrived from Advanced Circuits, containing 108 fully assembled TeleDongle boards!
This is not only the first "intended for sale" build of hardware from the Altus Metrum family of projects, it's also the first time that I've ever sent out one of my board designs for someone else to assemble. I therefore approached the turn-on and test of the first board out of the box with more than a little trepidation... fortunately, for no reason!
I'm immensely pleased to report that TeleDongle serial number 100 turned on and works entirely as expected!
I celebrated by packaging it in a cool little Hammond translucent blue plastic box with a USB cable, yielding the first prototype of a fully packaged TeleDongle board such as we anticipate selling for use receiving data from rockets carrying TeleMetrum boards.
We also intend to sell these boards as-is (flashed with default firmware and measured oscillator cal value) to folks who'd like a robust wireless link for their next microcontroller project, whether rocket-related or not. I will, of course, post something here when we're ready to start taking orders.
Now we just need the weather to cooperate long enough to log more test flights of TeleMetrum. The new version looks great so far, but I want a few more flights before I'll be confident enough to place an order with our assembler for a run of those too... Stay tuned!
On Saturday, I joined The Albuquerque Rocket Society monthly launch in Rio Rancho, NM. A friend, Mike, who lives in the area joined me for the launch. While the morning started off clear and calm, if a bit cold... the wind came up hard and we had to call it quits before lunch. But before the wind "blew us away", I managed to get one flight in. And it was an absolutely perfect test of one of my brand-new TeleMetrum v0.2 boards!
My cut-down Hawk Mountain "Raptor" kit, renamed "G-Spot" last October during my quest to exceed 50 g acceleration, was loaded with TeleMetrum serial number 51... and launched on a Cesaroni 229H255WT-14A motor.
The ascent was beautiful! I've put a few photos of the rocket leaving the launch rail up on flickr. However, despite a clear sky, we quickly lost sight of it! I managed to spot a bit of the smoke trail from the delay grain as the rocket approached apogee, but that was it! None of us at the launch saw anything after apogee!
After losing sight of the rocket, I turned my attention to my computer, where we were receiving a solid telemetry stream. It quickly became apparent that the rocket was descending normally under chute. As it got closer to the ground, I started calling out elevation, azimuth, and distance numbers, but still nobody could spot the rocket. As expected, we lost the RF link once the rocket reached the ground.
As various folks on the flight line wished me luck finding my rocket, I put the last reported GPS position into my hand-held receiver. Staring at the map display, Mike and I realized the rocket was far down range, near one of the roads into the site. We jumped into my vehicle and drove down the road to the point closest to the rocket's reported position. We then walked to where the GPS receiver said the rocket should be...
And found the rocket within about 20 feet! That was well within the window of position uncertainty my hand-held GPS was reporting at the time. Things just don't get much better than that! We picked up the rocket, and returned to the flight line only a few minutes after leaving it. After dumping the data from the board's on-board memory, I quickly generated the usual plots, along with a kml file that can be viewed in Google Earth.
The rocket reached 1881 meters apogee, or around 6173 feet, and the maximum acceleration was 19.5 g. It touched down nearly 1.3 miles down range from the launch rail, in sage-brush desert. I honestly don't think I would have found the rocket without at least the radio beacon. It was hugely gratifying that the GPS worked and let me walk right up to the rocket! I could not have asked for a better test of the new electronics!
Later in the day, Keith flew a successful test of serial number 52 at a launch in Wilsonville, Oregon.
We're very happy with these results! Weather permitting, I hope to get more test flights in next weekend at Hudson Ranch. Stay tuned!
Test Flying TeleMetrum v0.2
Bdale and I got a chance to test fly the new version (0.2) of our TeleMetrum flight computers. Bdale flew with the Albuquerque Rocket Society down in New Mexico while I flew near home with Oregon Rocketry during our February model launch.
I flew my Dynastar Grappler which I have modified to create a large payload bay out of a foot of the original body tube:
I cut a sled out of plywood and mounted the TeleMetrum on one side, and a small 110mAh battery on the back:
The field we use for model launches is surrounded by tall fir trees, so we tend to stick to reasonably small motors. This time, I loaded up an Aerotech 24mm E18 motor and trimmed the delay down to about 5 seconds as this rocket uses simple motor ejection. This flight didn’t exercise the new ejection circuitry. In any case, the flight was perfect, telemetry worked all the way down to the ground using just a 1/4 wave whip antenna on the receiver.
Here’s the data recorded in the on-board eeprom:
The maximum reported altitude was 186m, velocity was 49m/s and acceleration was 53m/s².
As expected, the GPS loses tracking during boost, but rapidly re-acquires near apogee and tracks the rocket all the way back to the ground. The flight track can be viewed in Google Earth.
Needless to say, both Bdale and I are extremely pleased with the performance of the new hardware.
Introducing TeleMetrum v0.2
Bdale and I (mostly Bdale, of course) finished the TeleMetrum v0.2 design work in December, and this weekend we got boards made and parts ordered and Bdale sat down with his trusty electric skillet and built 3 new boards. The new design has an integrated GPS receiver and patch antenna, and is otherwise fairly similar in design to v0.1.
TeleMetrum v0.2 Hardware
Here’s the front side of the board:
From the left, you’ll see a connector for an external power switch and the two ejection charge circuits, a battery connector for a single 3.7V lipo cell, the GPS patch antenna, a 4-pin debug connector, the piezo buzzer and the new 8-pin companion board connector. We weren’t happy with the connectors used on the v0.1 board and finally found these Tyco Micro-MaTch parts which take up a modest amount of board space (more than pico-blade connectors, less than regular pin blocks), have a locking option and crimp on to standard ribbon cable. They’re also bright red and surprisingly low in profile.
And here’s the back side:
Elements on this side include the new 100μF cap in the upper left corner which sits on the 3.3V supply to try and keep the CPU alive through minor power glitches. Below that is a new package containing a pair of FETs for the ejection circuits. We used discrete FETs in v0.1, but this device has better specs for our needs (lower on resistance, etc). The USB connector was pulled in-board far enough to keep it from hanging over the edge. Right of that is the new data logging chip, and right of that is a U.FL connector in case you want to use an external GPS antenna. We supply power to that connector as most external GPS antennas include their own LNA. And, of course, to the right of that is the Skytraq Venus 634 GPS receiver.
Below and to the right of the GPS receiver is the cc1111, to the left lies the accelerometer and then the barometric pressure sensor above the 5V boost regulator which powers the accelerometer. We haven’t found any high-G accelerometers that run on 3.3V yet. Finally the two tiny 5-pin chips are the USB LiPo charger and the 3.3V regulator. What you can’t see easily are a pile of 0402 passive components scattered across the board. Even close up, they’re hard to pick out by eye.
The only hardware ‘bug’ was in the reset logic — the new board was designed with a much larger capacitor on the reset line than the old board. The debug code would only hold the reset line low for a brief instant, sufficient for the old capacitor value but not the new one. Instead of fixing the code, Bdale decided to try a smaller capacitor value and found that it worked just fine. After that, the board came up just fine and the updated firmware was flashed into the CPU.
TeleMetrum v0.2 Software
The only significant software change was that the data logging part changed from a 25LC1024 1Mbit eeprom to an AT45DB161D 16Mbit DataFlash. This required writing a new driver, but fortunately much of the code could be copied from the 25LC1024 driver. Because the AT45DB161D comes from a family of similar-but-different parts ranging from 1Mbit to 64Mbits, I decided to make the code automatically adapt to the installed part, detecting which one was attached and adjusting the driver.
The story here is that the configuration data didn’t appear to be getting preserved across reboots — we use the last block of the data logging part to hold configuration data, including call sign, sensor calibration values and flight parameters. A bit of testing and we found that the code to read/write the device worked perfectly. It turns out that a premature optimization in detecting which kind of flash part was installed had a race condition when multiple threads were trying to access storage at the same time, resulting in the configuration data being left uninitialized. Oops!
The TeleMetrum firmware has a clever hack for selecting between ground mode (for fetching data from the device or altering the configuration) and flight mode (prepared to fly the rocket). It switches between these by detecting whether the board is upright (flight mode) or not (idle mode). However, the accelerometer must be calibrated to tell the difference. What never occurred to us was that if the calibration data was broken enough, the device might always come up in flight mode. In that mode, it isn’t listing to either USB or the radio link, so it’s impossible to fix the accelerometer calibration data.
A bit of brainstorming led to a fairly simple hack — check to see if one of the pins on the companion connector was shorted to ground at power on time, if so, force the computer to enter idle mode. Pin 1 of the companion connector is ground, and fortunately, pin 2 was the SPI clock pin, normally output-only, so we could safely use that in this mode as any companion device shouldn’t ever pull that low.
Future Events
As of this evening, three boards are built and mostly tested; the radios appear to work, GPS tracks satellites and the beeper makes plenty of noise. Still to check is whether the deployment circuits will fire an ematch (we’ve tested the design before, just not this specific implementation).
Next weekend, we’re off to linux.conf.au in Wellington, New Zealand where we’re scheduled to give a presentation on the hardware and software in TeleMetrum. We’ll have v0.2 boards to show off, so come and see them in person.
With v0.1, we used the same board design for both flight computer and ground station, TeleDongle. For TeleDongle, we just left most of the components off of the board and loaded alternate firmware. For v0.2, we’re planning on building a separate TeleDongle board; that design is finished but no boards are made yet.
Once we’re happy with the design, we’ve got big plans to get more boards made so we can let a few friends buy them for use them in their own rocket projects. That should happen in the next month or so. Once we’ve gotten enough testing done, and made sure that other people can actually operate them without hand-holding from us, we’ll make them available for sale to the general rocket-flying public.
Beyond that, we’ve got plans to build more stuff:
A stand-alone ground station, called TeleTerra, that would include an LCD readout and flight data recording so you wouldn’t need a laptop during the flight.
A companion board, called TelePyro, to control 8 additional pyro channels. These could be used for almost anything from air starts to staging or any other whacky plans.
Today, the panels of bare circuit boards, the paste stencil, and the last parts I need (the Venus GPS modules) to hand assemble first-article prototypes of TeleMetrum v0.2 all arrived!
The parts for the first three prototypes are staged and ready to load, so my next step is to go use my CNC mill to rip up one of the panels into individual boards, then make up a fixture for the stencil. Meanwhile, the solder paste is out of the shop fridge warming up...
For my friends in Colorado, this means I will not try to attend the NCR annual meeting this weekend. It's about a 6 hour round-trip drive from my house to Ault, and getting boards loaded and tested before I leave for New Zealand where Keith and I are scheduled to give a talk at LCA about our work takes priority!
Some quotes are in for professional SMT assembly of TeleMetrum v0.2, and I've had to reset my expectations. The shop I thought would be my first choice came in with a quote much higher than I expected. Another shop we've heard good things about gave us a much more reasonable quote, but can't get any made before LCA. So...
This morning, I ordered some bare circuit boards and a paste stencil from the places I used quite successfully for v0.1. With any luck, they'll be in my hands in time to load a few boards before leaving for LCA.
If all goes well, we'll put a set out for professional fab sometime later.
I just sent a data package representing TeleMetrum version 0.2 out for an assembly quote. Hope to have first article boards in hand before heading to linux.conf.au 2010 where Keith and I are scheduled to give a talk about the project.
Keith and I have been pretty quiet about TeleMetrum for a while... but that doesn't mean we've been idle!
In recent weeks, I've built up several more flight units and two more ground station boards, as noted in my production log. We're both trusting rockets solely to our boards and Keith's firmware at this point. In fact, we've accumulated a significant number of succesful flights, including a cool drag-race between 4" airframes at NCR Oktoberfest where we both put brand-new, nearly identical rockets fully at risk flying only TeleMetrum boards, and a flight by Keith the same weekend on a full-K Loki K350W moon-burner in which he set a new personal altitude record! I've also flown a board with 100-g accelerometer installed successfully in a flight that peaked at 52.8 g!
We're now hard at work on a "next version" of the hardware, incorporating everything we've learned so far. There are a number of significant changes planned:
Fully integrated, on-board GPS receiver and patch antenna, with support for off-board amplified antennas when airframe geometry or materials demand it.
A change in the design of the circuit for firing e-matches to ignite ejection charges that will improve mechanical reliability, plus explicit support for using a separate pyro battery if desired.
Inclusion of a "companion board interface" that we envision using for a pyro channel expansion board to support staging and air starts, among other things.
Dramatic increase in the capacity of the on-board data logging memory.
Changes in connector series to eliminate our dependency on expensive crimping tools for making cables.
To make all this fit, I'm stretching the board an extra 1/4 inch to a total outline of 1 by 2.75 inches. We're also moving all the connectors, the GPS patch antenna, and the beeper to the "back side" of the PC board. This is a win on several levels... it will allow us to have silk-screen labels for the connectors, will help protect the baro sensor from sunlight and the various surface mount parts from physical damage during rocket prep, and opens up more board surface area for component placement and routing on the "top side" of the board. In practice, this means that boards will be mounted on standoffs with all the active components facing "down" and the connectors facing "up."
Before we'll be ready to build some of these, we need to get in some more flights to test the various changes we're making. In particular, the change in ejection charge circuit, and the GPS receiver chip and antenna choices we're now favoring. Unfortunately, Keith and I are now both into the time of year where launch opportunities come less frequently, even before we consider the weather.
Meanwhile, Keith's firmware and ground station software are now doing nearly everything we've envisioned wanting from this project. It seems entirely likely that he'll be ready to declare "version 1.0" soon after we obtain and verify the functionality of our next version of the hardware...
In the meantime, our friends at Woot have posted a really funny video combining material from a couple launches this summer of my 10-inch Goblin, on one of which we flew some of their screaming flying monkey dolls... Enjoy!
In preparation for several upcoming high power rocket launches, I've spent some time over the last two weeks building up several more TeleMetrum boards. Five new ones, in fact, serial numbers 7 through 11. The first four are fully-loaded normal boards, the last one has a 100 gee accelerometer installed instead of the normal 50 gee part.
While I haven't yet tested 100% of the functionality on all five, I'm definitely getting better at loading and reflow soldering these boards. I found exactly one soldering defect, a bridge between two pins on the cc1111 noticed during initial visual inspection which was easily removed, and all five flashed and passed initial tests on the first try!
I also retrieved one of the OLPC XO machines from my son and loaded it up with Debian for the XO, then upgraded it to unstable so that I can use it as a ground station for receiving telemetry. Having a small machine with long battery life and a screen that is readable in direct sunlight should be a huge win!
Now that I care about having working AltOS bits on more than one machine, I took some time today and created a Debian package. In the process, as I stumbled over various issues, Keith was quick to jump in and help... as were fellow Debian developers on IRC. We now have a "lintian clean" package that's easily maintainable from our shared git repository, and yes, we even have man pages for all the utilities!
A special note for folks near Colorado. Weather permitting, this Sunday morning the 23rd of August, I'm planning to "drag race" my big Goblin airframe against Jason Chamberlin's similarly-sized Polecat Fat Man on long-burning Aerotech M650W motors at Chili Blaster. Even for those of us who fly high power model rockets every chance we get, a drag-race between 10-inch airframes on long-burning M motors is a special event. If you've never seen rockets like this fly, and/or would like to see a TeleMetrum board in action, this would be a great time to come hang out with us!
I managed to break the LCD on my HP r717 digital camera a while back, but couldn't find anything that excited me as a replacement, so have been doing without and borrowing my son's camera from time to time. That changed recently... my new camera is a Casio High Speed EXILIM model EX-FC100BK.
I've never been able to get the timing right to take photos of our rockets leaving the launch rails. I manage to get passable videos from time to time, and a lot of pictures of smoke trails... but WOW, the ability to take a burst of high-resolution still photos at a fast frame rate (some of which are even before the shutter release gets fully pressed!) completely and totally rocks my world!
I just put a few of the best frames I captured at Saturday's launch up on Flickr. Enjoy!
This news page is created by aggregating the rocket-related posts from blogs of these AltusMetrum community participants:
bdale's rocket blog: last checked Tue 09 Mar 2010 10:30:03 PM MST (17 posts)
keithp's rocket blog: last checked Tue 09 Mar 2010 10:30:02 PM MST (6 posts)
cworth's rocket blog: Not Found (0 posts)







