AE EP#53 a DS18B20 based Temperature Sensor Module

Hello, its been a while :) Fortunately the friendly people from icstation.com contacted me to have a look at this DS18B20 breakout board:

Use the code “claics” until the 20th Feb, 2014 to get a 10 % discount on your order!

Basically it is nothing more than that, a breakout board but it is very conveniet to have the filter-cap and pull-up resistor ready in place. The board has vias besides the DS18B20 which should allow it to be soldered to a plate. Also it comes with a handy hole to to screw it down. The package comes with a three-lead jumper wire and is childsplay to connect with arduino.

To get rolling I put this library in my “/usr/share/arduino/libraries/” (Ubuntu) found at playground.arduino.cc/Learning/OneWire. The lib already comes with a fitting example in its examples folder.
But for your copy & paste easy here a stripped-down version:

///based on http://playground.arduino.cc/Learning/OneWire

#include

OneWire ds(2); // initialize onewire to data/out connected on pin 2

int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
byte i;
byte present = 0;//is it there?
byte data[12];//temperature, max resolution
byte addr[8]; //the devices address

void setup(void) {
Serial.begin(9600); //initialize the serial

if ( !ds.search(addr)) {
Serial.print("No more addresses.\n");
ds.reset_search();
return;
}
Serial.print("R=");
for( i = 0; i < 8; i++) {
Serial.print(addr[i], HEX);//device found at
Serial.print(" ");
}

}

void loop(void) {

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}

ds.reset();
ds.select(addr);
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(addr);
ds.write(0xBE); // Read Scratchpad

Serial.print("P=");
Serial.print(present,HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print( OneWire::crc8( data, 8), HEX);
Serial.println();

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
}
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
Fract = Tc_100 % 100;

if (SignBit) // If its negative
{
Serial.print("-");
}
Serial.print(Whole);
Serial.print(".");
if (Fract < 10)
{
Serial.print("0");
}
Serial.print(Fract);

Serial.print("\n");

}

Just paste into the Arduino IDE and hit that upload button, if connected correctly, data should show up a second or so after you opened Tools/Serial Monitor. Thanks for watching :D and give them a shot!

AE EP#49 The Hardware of vieHAB-1

This is the promised Video about the vieHAB-1 Hardware. It has lots of problems, mainly everything was made into one system. In the end we had no SD logging because the atmega328 didn’t have enough memory. Our friends from STS-project already solved this with using a secondary processor with an SD card.

I will make a new system with seperated functions and better power supply. This time I will take every time it needs ti make it (this time we had a fixed date and wanted to get this going :) )

AE EP#48 The Launch of vieHAB-1

It was finally done! The whole setup reached a total height of 36000 m (118000 ft).
We set off at 00:15 from Vienna and reached Povozany (SK) at 02:15. After a bit of socializing with our slovakian friends from STS Project I set off to make the radio work and do some other bits in software.
Launch was at 06:45 Local.
Have fun with the flightvideo:

I’ll have some more next week on the hardware itself,
until then,
your AE

Space Rhythm 1 (Secret Circuit) / CC BY 3.0
Space Rhythm 2 (Secret Circuit) / CC BY 3.0

Vienna High Altitude Balloon entry #5 T-06:30:00

First off, sorry for my not keeping you up to date, finishing the payload just took precedence over posting.
We set off to Slovakia on sat 30.8.2013 at 00:00 to meet the awesome guys from stsproject.net 2 hours later. We arrived at 02:30 and I had to finish the payload since our radio burned some days earlier (our replacement did unfortunately not arrive in time, no hard feelings tho:). Dano resoldered their RFB22B on our break-out board nad I started to set it up to transmit at 300 bd at 438.020 MHz int RTTY. locally it worked well but I made a huge mistake…

Fist some pre flight pics:

My first received telemetry:
RTTY_RCV_local
The reset circuit is in place:
Reset_circuit
First assemled:
first_assembled
Put it together on-site:
on_site_assemled
the STS project was nice enough to lend us a backup tracker – their v2 version:
STSv2_tracker
to calculate lift and filling it is important to weight the complete setup:
wheit_scale
the guys filled the balloons:
filling
while I was playing waiting:
prepare for launch
after launch I got no seat in a SAR-car so I had to track them and the balloons at our launch-pad:
the waiting game
Because I am an ass, you will have to wait for pics of the launch and rescue. I’ll have the video complete asap but I had a 36 hour day doing this and my flat looks like fallout after the building. All I say is that I made a terrible mistake (STUPID BITS!!!!!!!) and without the help of STS project we would have failed 100% so its only ~66%..

thanks for tuning in!

Vienna High Altitude Balloon entry #4 Board Etched

So first we got the bare board, etched with NaPS and toner transfer:
board1

The whole thing is kinda like a mainboard, processor socket and expansion cards:
board2

Boards in place from left to right: Arduino, SPI-level shifter, RFM22B on breakout board and a SD-card holder:
board3

On the top added: a voltage divider for battery voltage, UBLOX GPS receiver, LM317 for 3,3V (RFM,SD):
board4

This I really love: from bradboard to etched without a hitch:
board5

There will be another chip flying with us: a tiny85 to reset the arduino every 5 minutes or so. It will reinit GPS and rfm and so on. Also it will turn off the photo and video cams to save power after landing.

so long….

Vienna High Altitude Balloon entry #3 RTTY Testing

I have rebuilt Anthony Stirks Interrupt Driven RTTY TX Demo to do it without interrupts :D
Right now I’m just happy that I made RTTY work, there is still some work to do, like setting transmission power according to flight state (pre-launch, launch and landed). Landed will be especially funky, because it will lower its output power in three stages, then a beeper beeps and leds will light up.

receiving 2

receiving

Still to do is a reset circuit, SD-Card saving and the v2 Motherboard.
Thank you OE1HWS for lending me your FT-817!

PS.: The xp on the netbook is there to play Rollercoaster Tycoon, still my second favourite game!

PPS.: The first being Transport Tycoon ;D