LAUNCH FAILED. WILL TRY ANOTHER DAY (13/2/10)
Hi all, Apologies for the disappoint with the lack a flight today! Thank you all for getting involved. Unfortunately the weather conditions while good on arrival at the site progressively got worse - at one point we had sleet, the winds picked up just as we started to fill the balloon and following our protocol for calculating free lift it appeared as if we had got the right amount, in hindsight this may have been due to the pull of the wind. We then prepared for launch and as soon as we let go to our horror realised that the balloon didn't have enough lift to carry the payload, instead it dragged and bounced the payload, we chased after it and caught it after about 1mile and a number of obstacles, to avoid it escaping and going further we quickly burst the balloon. The payload has survived pretty well and it even had a GPS lock! a testament to the lassen IQ module obviously - apart from some scratches and quite a bit of mud, a fresh set of batteries, some more ballast and we can fly it again. You never stop learning in high altitude ballooning - this is my 12th payload and I've assisted in a lot of launches and yet things still go wrong. However there have been some success to the day - I'm certainly happy the payload is still working, if it can survive a bit of bouncing then it should do well in the air, secondly the flight path wasn't ideal - we were going to fly over a number of tricky places, late changes to the forecast unfortunately. But most importantly we managed to rally a large team of listeners both in the UK and in France (and also Germany and perhaps slightly unrealistically the USA as well) - sure there weren't any signals to decode but it shows that people are willing to take part and those who are new to this I hope you stick around and help out in the future - once the balloon is in the air it gets very exciting, there are going to be lots of flights this year both in the UK, in France and also potentially trans-atlantic which will definitely require some help! So whats the plan? The aim is to launch as soon as possible, real life commitments slightly cloud the schedule and so does the weather of course. The other question is where will the payload go - remember this isn't a normal up/down flight - there is the possibility (hopefully) of floating which will extend the range a long way, with lots of listeners in France hopefully it'll go there! Therefore potential times maybe the upcoming weekend or the weekend/week/weekend of 27/2/10 - i'll be fixing the payload and running lots of flight predicitions and simulations in the mean time. If you want to get involved or just keep track of future launches either get in contact with me and I'll try and email you next time or sign up to the UKHAS mailing list (http://groups.google.com/group/ukhas) its open to anyone (even those not in the UK!). Also visit our IRC chat channel #highaltitude on irc.freenode.net , its a busy place with discussions both on and off topic and its the best place to keep up to date with the progress of various projects. A slightly newer place to keep in touch is via twitter, I'll definitely keep that updated with plans and progress: http://www.twitter.com/jamescoxon/ Thank you again for all the work and support - next time we'll actually get it into the air... James M6JCX http://www.pegasushabproject.org.uk
BallastHalo 3 was a partial success - we managed to get another balloon to float though it was far higher then planned and took a lot longer to settle down and actually float. This is pretty much down to too late a launch coupled with too fast an ascent rate. The other issue is that we didn't actually test the ballast tanks though we did test the ballast sensor which is far to inaccurate and added a lot of complication to the payload. So the plan for BallastHalo 4 is to build and update BallastHalo 3 and create a payload that'll actually test the tanks. BallastHalo 4 will be simpler, cheaper and construction will be quicker - aiming to launch by the end of January!
//Ascent rate calculation void calc_ascentrate() { int diff_sec, diff_alt; if(ARtime == 0) { ARtime = ((hour * 3600) + (minute * 60) + second); } else { currenttime = ((hour * 3600) + (minute * 60) + second); if(currenttime > ARtime) { diff_sec = currenttime - ARtime; diff_alt = ialt - last_alt; printf("Diff sec = %d, Diff alt = %d ", diff_sec, diff_alt); if (diff_sec > 30) { ascentrate = (float) diff_alt / diff_sec; printf("Ascentrate: %0.2f ", ascentrate); ARtime = currenttime; last_alt = ialt; } } if(currenttime < ARtime) { ARtime = currenttime; last_alt = ialt; } printf("Time: %d\n", currenttime); } }
void floatdetecton() { //Calculate if we have achieved float, monitor ascentrate if between +1 and -1 start float time if it strays out of +1 or -1 for more then 5 cycles - float has stopped currenttime = ((hour * 3600) + (minute * 60) + second); //Detect float if (ascentrate < 1 && ascentrate > -1 && ialt > 15000) { printf("Floating... "); //Now that we are at float we need to keep track of how long if (currenttime >= Floatstart) { //Start Timer or Continue Timer if(float_time == 0) { Floatstart = currenttime; atfloat = 10; float_time = 1 ; printf("Start float timer %d\n", atfloat); } else { atfloat = 10; float_time = currenttime - Floatstart; total_float_time = float_time + Float_rollover_time; printf("Float Time: %d, %d\n", total_float_time, atfloat); } } else if (currenttime < Floatstart) { atfloat = 10; //We must have rolled over 24hrs Float_rollover_time = float_time; printf("Rollover: %d\n", Float_rollover_time); Floatstart = currenttime; } } // If out of float - detect else { if (atfloat > 0) { //reduce float counter by 1 atfloat = atfloat - 1; //in case this is just a blip continue float counter until we run out float_time = currenttime - Floatstart; total_float_time = float_time + Float_rollover_time; printf("Float Time: %d, %d\n", total_float_time, atfloat); } else { float_time = 0; } printf("No Float: %d ", atfloat); } }
// gets temperature data from onewire sensor network, need to supply byte address, it'll check to see what type of sensor and convert appropriately int getTempdata(byte sensorAddress[8]) { int HighByte, LowByte, TReading, SignBit, Tc_100, Whole; byte data[12], i, present = 0; ds.reset(); ds.select(sensorAddress); ds.write(0x44,1); // start conversion, with parasite power on at the end delay(1000); // maybe 750ms is enough, maybe not // we might do a ds.depower() here, but the reset will take care of it. present = ds.reset(); ds.select(sensorAddress); ds.write(0xBE); // Read Scratchpad for ( i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } LowByte = data[0]; HighByte = data[1]; TReading = (HighByte << 8) + LowByte; SignBit = TReading & 0x8000; // test most sig bit if (SignBit) // negative { TReading = (TReading ^ 0xffff) + 1; // 2's comp } if (sensorAddress[0] == 0x10) { Tc_100 = TReading * 50; // multiply by (100 * 0.0625) or 6.25 } else { Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25 } Whole = Tc_100 / 100; // separate off the whole and fractional portions if (SignBit) // If its negative { Whole = Whole * -1; } return Whole; }
Due to having components lying around I started by making the backup beacon, I used a spare ATmega168 flashed with the arduino bootloader and a Radiometrix NTX2. I was originally considering using a Circuit Design CDP-TX-04S-R which is a 10mW transmitter but they are around £30 so instead went with the superior and cheaper NTX2 which is £13. As the frequency of the transmitter is dependent on the voltage on the TX pin I connected it directly to the AVR - to avoid clashing with the main downlink which uses the identical transmitter but feeds in a lower voltge. Finally I added an LED and resistor to indicate that the system was working.
Things to do:
3.3v -- Photocell -- Analog0 -- R -- Gnd
GND -- R -- Pin11 -- Photogate -- 3.3v