Posts

Showing posts from 2015

Data Sheet GP-735 GPS

https://cdn.sparkfun.com/datasheets/GPS/GP-735T-150203.pdf Note, this GPS is no longer used.

Sound Experiment

Links for LM386 audio amplifier and microphone used for sound experiment. https://lowvoltage.wordpress.com/2011/04/23/lm386-audio-amplifier/ https://lowvoltage.wordpress.com/2011/05/15/lm386-mic-amp/
Image
Schematic for sound experiment on circuit protoboard. Click on it for better view.
Image
The 66 channel LS20031 GPS is working. Pin connections: GPS                              Beaglebone Pin 1 - 3.3 V                 Pin_9-3 Pin 2 - RX                    Pin_9-21    UART2-TXD Pin 3 - TX                    Pin_9-22    UART2-RXD Pin 4 - Ground             Pin_9-1 GPS Connection Tutorial BeagleBone Header Pins Next step is to solder to circuit protoboard:

Connecting BeagleBone to your Bergen-Wifi account

Now that you have your vnc server working on your BeagleBone Black you can connect to the school's wifi.  First you run: wicd-curses and scroll down to Bergen-Wifi and press 'C'. After the connection is made quit and start the vnc server on the BBB as root (as explained in yesterday's post).  Then launch your vnc client on your host computer and type in: 192.168.7.2:5900 Once the gui of the BBB comes up, point the browser to bergen.edu and follow the instructions to enter your credentials and register your device (your BBB).  You must reboot inorder for the wifi to kick in. Also, it is no longer necessary to enter your credentials.  The Bergen-Wifi will remember your device.  However, you still need to run "wicd-curses" to connect. See the June 13, 2015 post on how to get the wicd daemon to connect automatically upon boot up. http://bergenballoon.blogspot.com/2015/07/13-june-15.html There is one bug in this connection though, I could not get ping

VNC Server

I was able to set up a VNC server on the beaglebone black.  I followed the instructions for it here: http://inspire.logicsupply.com/p/vnc-connection.html x11vnc must be run as root.

Wifi control of GoPro Camera

The camera that is to face up towards the balloon, power on and start recording at a certain height, is experiencing some odd behaviour when it shutdowns through the wifi.  Basically what happens is that it powers up and starts recording, however, when it sends a signal to stop recording, it power downs the camera, and the video on the SD card is deleted.  In one test, it totally fried the SD card.  I would recommend that we buy a 32 GB SD card approved by GoPro for the Hero3+, and continue testing.  There may be something wrong with the api to control the GoPro through WIFI programmatically.

Various Notes

Powering the payload: Use two batteries on next launch. One for the horizontal GoPro and one for BeagleBone Black Best to use a battery eliminator for GoPro. http://www.amazon.com/Switronix-DVGP3USB-Battery-Eliminator-10-Feet/dp/B00JXNX6BU http://cam-do.com/GoProBatteryEliminator.html Also, use GoPro approved SD cards 16GB to 32 GB http://gopro.com/support/articles/software-update-release http://shop.gopro.com/accessories/sandisk-extreme-32gb-microsdhc/ASDMC-332.html#/start=1 Payload Box: Build and design Balso wood box for payload Have slots for cameras Have battery bay Solid mount for electronics GPS Receiver: E-506 SiRFIV GPS  Flip Tx and RX on proto board Solder pin5 to Pin1 (Check out data sheet for original GPS and E-506 Check to see if GPS device can be soldered onto board. The satellit signals should go through styrofoam and latex Runs at 1.6 GHz https://www.sparkfun.com/products/12751

Electronic Schematic Drawings

Image
These schematics are for our electronic and sensors:

Power Supply to GoPro

A solution suggested by Professor Joe Sivo is to use a dummy battery, known as a battery eliminator, and replace it with the GoPro's battery. http://www.amazon.com/Switronix-DVGP3USB-Battery-Eliminator-10-Feet/dp/B00JXNX6BU Here is an article that explains that trying to run camera while charging causes overheat and shutdown: http://cam-do.com/ GoProBatteryEliminator.html Very important quote from this site: "The battery eliminator snaps into the battery slot of all GoProHero 3 and 3+ models and latches like the GoPro lid for a secure fit. Using a battery eliminator eliminates two sources of heat. The charging circuit in the camera and the battery itself, which gets warm while charging. Less heat makes the camera more reliable. Overheating can cause unexpected shut-down of the camera. A battery eliminator also bypasses the problems that some users have had with the GoPro charging logic causing the camera to freeze and require a reset." Also, we can look into a BacP

Launch Picture and Video

Image
Launch Video

29 July 15 (Launch Day)

We are go for launch! You can follow our progress to the launch site via spot (in our links page) once the balloon is launched you can follow it either via Spot or APRS. Wish us luck!

27 July 15

Image
We constructed the metal are which will extend out of the payload box and hold a picture of the Stem team so we can take a picture of it at 100,000 feet.  We also constructed the second level of the payload box.  We will put the APRS, both Spot gps devices, and the first GoPro Hero 3 camera on the first level.  The BeagleBone Black and the sensor board will go on the second level along with the second GoPro camera facing upward to take a picture of the balloon burst. We will rely on WiFi to turn the second camera on at 100,000 and start recording. We also constructed and sealed the regulator devic which will be used to inflate the balloon. To do: Make the wholes for the cameras in the styrofoam payload box. Finish writing the software to turn on the second GoPro and have it start recording. Test the pvc tube to be used to inflate the balloon.

20 July 15

Last week we began the shaping of the payload, we now have the shelf needed for the two levels we wanted to implement and we can fit all of our items into the payload box. We are also moving along smoothly now with our helium order, it was processed and the company has promised us immediate delivery so we may just be able to pull off the launch for our target date of the 29th! We are also now able to connect to the GoPro from the beagle via a WiFi adapter that Peter brought in and programmed and script for. We ordered and just received a new adapter for the team. Finally we ordered a separated charger that is capable of charging 2 GoPro batteries at once, is compatible with both wall outlets and car outlets, and comes with 2 spare batteries.

15 June 15

Installed WiFi adapter driver on BeagleBone Black set for launch. Installed goprohero Python library. Tested commands. To connect to GoPro camera, make sure adapter is plugged into BBB USB port and GoPro wifi is on before powering up.  (BBB must be powered by an external 5V power source). After boot up, ssh into beaglebone as root. Type 'wicd-curses', scroll down to StemGoPro. Type capital 'C'. After 10 to 20 seconds you should see a message that it connected.

14 June 15

Image
Today we cut out two pieces of Styrofoam from our test/scrap box to see how well the polyurethane sealant we have will bond to the polystyrene Styrofoam. Results were favorable as shown below: The polyurethane foam sealant we are using is Handi Foam 40 Series and is actually stronger than the Styrofoam that it bonded too, so we will most likely be using a combination of it and another type of adhesive we have ordered from 3M which is their spray adhesive specifically branded for use with Styrofoam. This will be arriving on Thursday so we will begin testing it then. We are also working on the layout of instruments and items within the balloon. After the first attempt it was immediately obvious how tight we are going to be on space. We are actually thinking of building 2 levels into the box whereby we will have several components in the bottom with a shelf of Styrofoam on top of them resting on 2 tabs secured onto the side walls with the rest of the payload on top. This is what

13 June 15

I configured a Beaglebone Black to recognize the compact wifi adapter.  It recognized the wifi in room S-315 "Bergen-Wifi," however I can't log on with my Bergen username and password.  I followed instructons to set up the wifi dongle and get it working on the BBB at:  http://inspire.logicsupply.com/2014/07/beaglebone-wifi-installation.html#comment-form_5208021017570179065 . Attach ethernet cable to BBB.  WiFi dongle should not be attached. Also BBB must be plugged into an external 5V power supply. You should have at least Debian 3.8.13 BONE70 From R C Nelson. # uname -a (to check for Debian version) Then run the following commands: mkdir -p /etc/Wireless/RT2870STA/ cd /etc/Wireless/RT2870STA/ wget https://raw.githubusercontent.com/rcn-ee/mt7601u/master/src/RT2870STA.dat echo "mt7601Usta" > /etc/modules-load.d/mt7601.conf Remove ethernet cable and attach WiFi dongle and reboot. After reboot run the following command in BBB terminal # wicd-

9 July 2015

Yesterday we verified the thermistor readings using Professor Griffo's calibrated thermocouple which was certified accurate to within 3/4 of a degree Fahrenheit. All thermistors at both room temperature and submerged within a cup of ice read within the +/- error of the thermocouple verifying that we are reading accurate temperatures with our sensors over a range of environments. Today we will begin construction of the box, we have a scrap Styrofoam box to experiment with to see what the best (read strongest and lightest for our purposes) way of joining the foam to itself and our components. Then we will construct standoffs for the protoboard as well and attach the beagle via standoffs to the protoboard and secure the whole assembly to the Styrofoam. We will also need to construct a camera mount within the box which we will do with the foam, and find a way to mount the picture onto an arm and secure it to the box. Go Pro Update: Installed and tested the goprohero  Python module

7 July 15

Image
This past week we received the balloon parachute and did some rough testing inside of Bergen by dropping the balloon with a 1.5Kg simulated payload (a textbook). The height of the drop was measured and the drop was timed. We were able to calculate the descent velocity to be ~3.8m/s. This will be sufficient for the payload to survive hitting the ground, but not too slow that we will end with what is reffered to as a "floater": a balloon that takes too long to descend and will end up either in Canada or the Ocean due to the jetstream. You can use the Oxford Calculator  to see this by entering a sufficiently low descent rate (0.1m/s really demonstrates this principle). We have also activated the spot gps trackers and will keep a link in the links page that will allow anyone to track our balloon progress, we have set one up as a test here , however we are unsure how long the page will be valid. Video Capture Inorder to record the moment the balloon pops, we created a program

Update: Restoring Bricked Beagle Bone Black

Flashed bricked Beaglebone Black with Debian distribution for Beaglebone Black Rev C. The process involved downloading the latest version from this site .  Unarchiver was used to unzip the file, then Pi Fille r was used to write the image to a micro sd card.  The micro SD card is then inserted into the BBB slot with the power off. The "User Boot" is pressed down and then power is applied. When all 4 flash lights are lit, the boot button can be released. More info can be found at:  https://learn.adafruit.com/beaglebone-black-installing-operating-systems/overview

2 July 15

Yesterday massed and compiled a list of all of the masses for the parts of the balloon as follows Beagle Board 39.77g GoPro 136.71g Spot GPS 117.22g (x2) ProtoBoard 90.81g Battery 220.94g Foam Container 194.70g APRS Radio 396.89g ---------- ---------- Total: 1,314.26g

30 June 15

We have begun doing research on the calculations on how we plan to fill this balloon. We need to know a few things, such as how many cubic feet we need to put into the balloon. How much lift that will generate/how much is needed. What the diameter will be at several different altitudes, and when the burst diameter will be reached. We also want to be able to predict the flight path of the balloon. A couple of resources we have accumulated for this include: Flight Predictor Burst Predictor Prelim Equations More Equations Our initial goals are: Ascent Rate: 5m/s Burst Altitude: 35,000 Meters Descent Rate: 3-5m/s Payload weight: 6lbs (mass: 2.7kg) Balloon type: 3000 gram (Oops, that's a little big) Also we received the SD cards for the GoPro today, 2x 64Gb Samsung Evo SD Cards . We have been testing the settings on the gopro and think we are going to settle for something like the 10MP Time Lapse with an interval somewhere along 1-5 seconds.

29 June 2015

It's been a while since our last post. Last week we only had one day where the whole team was in, and they were split up on separate tasks. We had a whole bunch of people get sick, now though we are back up to full strength. We had a couple of important parts arrive, all relevant links will be at the bottom of this paragraph. The battery that we will be using to power everything has arrived. The APRS tracking device has also arrived, this will send gps data as well as a couple of other datapoints back to us live via the APRS network that we can monitor from aprs.fi . The unit also came with a half wave dipole antenna The spot gps' that will be used as backup gps tracking have also arrived, however these by government regulation automatically deactivate above 35,000 feet altitude. Battery APRS Spot GPS We have been testing both the beagle sensor array and the APRS unit while away from the STEM lab. We were able to make the python script that does our datalogging run at sta

17 June 15

Yesterday we were able to get the gps read code and all of the other programs together into one called main.py. It samples the gps and outputs the date and timestamp as well as the relevant position information. It also samples all of the experiments and puts all of the data into 2 files. One is for the calculated data and one is for the raw ADC values in case we want to use them later on. They are stored in CSV files which we will use excel to analyze later on. Edit: This post was saved instead of posted by accident, it was drafted on the 17th of June, contrary to the post date.

18 June 15

Yesterday we completed the code for the I2C driven magnetometer. Counting all sensors we are now able to measure the following parameters: 3 Axes of Acceleration (g's) 3 Axes of Magnetic Field Strength (Gauss) Internal Temperature (Kelvin) External Temperature (Kelvin) Barometric Pressure (Kilo Pascals) GPS Position Data. Only sensor left to get up and running is the sound sensor We ended up having to solder together a second ribbon cable, only 2 connectors of which are used to link the gps serial lines. 2 more will be used for the sound sensor. Last evening I took the gps home and allowed it to run for quite some time under the sky. I was reading a book and periodically checked on it, but the first time I noticed it had gps lock was after ~45 minutes. After that the lock was intermittent since where I had set it up was under some large trees. Once it was moved into a clear area it had no problem maintaining lock. A bug was discovered in the code and fixed. The gprmc var

16 June 15

Yesterday we were able to get a serial link (9600 baud) between the GP-635T Gps Reciever and the Beaglebone. We were able to receive the nmea sentences  ( GLL,  RMC,  VTG,  GGA,  GSA,  GSV) and decode the data out of them using the packages pyserial and pynmea. However we struggled to get a gps lock, although in the gps data it indicated that it had between 8 and 15 satelittes "in view" at any given time. Although they were in view the signals may not have been strong enough to calculate a fix. Regardless we are going to try again and get the gps to lock now that we have a data stream coming from it today.

15 June 15

Last Thursday we were able to complete the connection between the beagle and the protoboard. We also were able to test it and verify that all sensors were working properly. We had to re-calibrate them to compensate for the additional resistance in the ribbon wire and the beagle cape connector. After we were able to finish that we soldered together an external thermistor onto a 4-wire ribbon cable and soldered it down to the beagle cape connector. The whole assembly is just a 1k ohm resistor in series with a thermistor, with both ends soldered to the red and black wires respectively. The center of the two, where we read the voltage was soldered to the green wire and connected to the analog to digital converter. This was also able to read temperatures accurately which we tested by using a cup of ice water.

Finalized connection and Calibration

Image
This morning we drew up a diagram of the connections that should be made on the beaglebone connector in  GIMP . This was based on the pin assignments in our blog post from the 9th of June and the  Map of the Beagle Cape Expansion Headers . After the diagram was made we got to soldering and ended up with our completed connector: Then for the Moment of truth, to connect the ribbon cable to the sensor protoboard and test to see if it works... It Does! Now we can calibrate the accelerometer in its final form. What we did to calibrate it is hold the board in the full negative and full positive directions for each axis and record the maximum and minimum voltages shown below: X max: 1.914 X min: 1.276 Y max: 1.939 Y min: 1.289 Z max: 1.994 Z min: 1.350 The average of each maximum and minimum was taken. This represents the zero offset X offset: 1.595 Y offset: 1.614 Z offset: 1.672 Then the difference between each offset and the minimum was taken, since this is a measured d

11 June 15

Yesterday we began building the board that is going to connect to the beagle. We soldered all the header pins required to plug it into the whole P9 connector on the beagle. We then took the board down to the machine shop and had the small part of the board that we will be using for the connector cut out of the 4"x5" protoboard. At the end of the day we were able to also soldler on the ribbon connector to the board. Today we would like to solder the pins from the ribbon connector to the header pins. This will enable us to test all of our sensors with only one connection cable. Peter has been tasked with getting the computer vision team up to speed so we have not been able to debug a lot of code but once we have the ribbon connector completed we will be able to continue work on the code without having to worry about hardware faults.

10 June 2015

Image
Yesterday we officially assigned which sensor will be going to what port on the beagle. We are trying to move away from the prototyping stage and begin merging the programs into our final script that we will be using during the flight. We were also able to get the ribbon connector mounted, and soldered to all of the data and power wires. We also took another blank protoboard and soldered on enough pins to cover the whole P9 connection header, we are going to cut out this small piece of pcb plus 4 rows. We will then solder onto it a ribbon connector, and connect the correct pins from the ribbon to the headers. In theory this will allow us to only have to plug the header board into the beagle, and a ribbon cable between the boards to hook all of the sensors up.

9 June 15

Yesterday we researched how to send and receiver information over I2C in our language of choice, Python. We installed the SMBus and the Adafruit I2C libraries for Python on the Beaglebone Black.  We started work on the Python program which will run the magnetometer. A little bit about the Magnetometer from the datasheet: It has 3 independent axes which represent x,y and z It is accessed over I2C It has 12 bits of precision Read address is at 0x3D, Write address is 0x3C It can be set to read from +/- 0.88 Gauss up to +/- 8.1 Gauss We have chosen to operate in the +/- 1.3 Gauss mode because we don't expect to see more than 0.65 Gauss (the strength of the earth's magnetic field) but we want to be able to read larger values in case we encounter some sort of anomaly. You can find our source code here .  The program is called magetometer.py. This morning we received the ribbon cables, and connectors we are planning to use to hook up the sensor board to the Beaglebone, so we

An I2C Aside

Image
I2C ( pronounced I squared C ) as it is commonly written is a communication protocol designed to allow small, low level (read: very close to the hardware, not easy to read the code) devices to communicate with each other. I first encountered it while competing in the First Tech Challenge Robotics competiton. Anyone who has every played with Lego Mindstorms will recognize the sensors and phone cables ( Source ) These sensors communicate with brain brick over I2C. In the world of small electronics there are a lot of useful devices that use I2C to communicate, for instance our magnetometer. I thought it would be useful to write up my understanding of the protocol here for future teams use as well as anyone else trying to use it. I2C runs on 2 wires, SCL or the clock line, and SDA or the data line. The clock line is what times the slave devices and enables them to stay in sync. This is set and run by the master device(s). The data line is the actual zeros and ones going to and coming

8 June 15

Image
We created the thermistor circuit on June 4 and wrote the code to read it.  It it composed of a 1,000 ohm (1kohm) resistor connected to a 1.8V rail, in series with the thermistor connected to the ground rail. Voltage is measured by the beagle between the resistor and the thermistor, telling us the voltage drop across the thermistor. Using this, the value of the known 1K resistor, and the supply voltage of 1.8V we can calculate this instantaneous resistance of the thermistor using the formula: R = 1K / ((1/ADC) - 1) (Formula modified from Adafruit  note: same page a last post linked to ) Using the resistance and the formula listed in our previous post, we were able to calculate the temperature that the thermistor should be sensing. Note: Since our thermistor has a negative temperature coefficient (listed in the datasheet ) we expected to see  the resistance of the thermistor decreases as the temperature increases, which is in fact exactly what happened experimentally. Our code can

4 June 15

Image
Yesterday we went to Sandvik for a tour of the facilities in Fairlawn. They also brought along their NHRA Top Fuel Dragster and its team and driver. We were given demonstrations on the CNC tools and high precision drilling as well as techniques used for high speed milling. On Tuesday we have a minor incidence with a beagleboard. We overloaded one of the input pins and that somehow has Bricked the board. Unfortunately some of our new programs were on the board, however most of our important code was saved to Github. We were trying to read serial GPS data from the sensor so only that code was lost. Today we received our thermistors so today we will be learning about thermistors and how to use their values to obtain temperature. Our goal is to have a program that will be able to read temperature from the thermistor resistance by the end of the day. Thermistor Data: Resistance 1,000 Ohm Tolerance ±10.0% Accuracy 25 °C [77 °F] Beta 3348 Operating Temperature -60 °C to 300 °C [-76 °F

2 June 15

Yesterday we were able to get the ground and voltage rails soldered onto the protoboard. We then hooked the barometer and the accelerometer to a common ground and 3.3V source from these rails. We are now able to test and read values from the protoboard. However the signal wires from the middle of the voltage dividers are still floating. The next thing we need to requires us to have the connectors we ordered from sparkfun. We will be soldering the ground, 3.3v rails and all of the sensor outputs to a ribbon connector. This will be what connects the beagle to the protoboard. Today Eric brought in a GPS module from home for us to attempt to read data from it, we ordered one of this model (GP-635T) from sparkfun yesterday.

1 June 15

During our last meeting we were able to get the Accelerometer and the Barometer soldered onto the protoboard, along with the Resistors that we will be using as voltage dividers. The sensors are being calibrated by placing the board into a position where only 1 axis should be measuring any acceleration from gravity. The voltage of that axis will be taken, and then the device flipped 180 degrees so the specific axis is now in the opposite direction of gravity. This will result in the voltages that represent 1g and -1g. The middle point will be used and the Zero Offset and the difference between the Zero Offset and 1g will be used as sensitivity. Peter is also debugging the program and is attempting to add an algorithm that will calculate velocity using the acceleration obtained from the acceleration sensor. We are also order some more parts in order to connect the protoboard to the beagle. We are ordering ribbon cables and connectors. Pin headers which we will use to create a connector t

28 May 15

 Last evening Elshama, Peter, Elizabeth and Eric went to a meeting over at the Bergen Academies Maker Space for their High Altitude balloon project. We were able to discuss with their team about using Amateur Radio and APRS tracking to GPS track the balloon. We also observed their sensor package and the arduino code that runs it. They also gave us an source for the parachute since our original source Has gone out of Business. Today we are starting construction on the Protoboard which will house all of the sensors. We are going to get the voltage dividers and the breakout board soldered onto the board.

27 May 15

 Today the values for the ZeroOffset and the sensitivity were calculated as in the detailed notes attached. These values were tested and were found to be accurate with a little but of fine tuning required. They were hard coded into our program and will be used to calculate the acceleration that the balloon is experiencing. We may use some vector math later on to also calculate the orientation of the balloon

26 May 15

We brought on a few new members, we now have Elizabeth Ramirez, Prasha Das, Christian Lee, Jonathan Avila and Joan Madera in addition to our previous members on the team. We discussed with them what our objectives are and what we are currently working on, the acceleration sensor. The beagle was able to read for the first time acurrate voltages from the ADXL335 3-Axis Accelerometer. 2 500kohm resistors will be needed to act as the voltage divider from the sensor to the beagle. Tomorrow our goal is to get all 3 axes wired on a breadboard and complete the code to change the voltage read into a meaningful g value.