Project: Icarus - a Temperature Sensor Model Rocket
by Austin_Aerospace_Education in Workshop > 3D Printing
1460 Views, 11 Favorites, 0 Comments
Project: Icarus - a Temperature Sensor Model Rocket
Project: Icarus is a proof of concept model rocketry research project that brings several individual projects together into a single model rocketry research launch vehicle. This specific project includes an avionics payload, temperature sensors along the body, and a video camera. The sensors record the heat buildup inside the body tube as the solid rocket motor burns and fires the ejection charge. The sensors are placed in three different locations along the body tube to provide data on the temperature between the motor mount and the body tube, the temperature above the motor mount but below the flameproof recovery wadding, and finally the area where the parachute is housed, just above the wadding. My hope is that the avionics bay and the video housing components will be used as a starting point for middle and high school students in engineering and research projects.
One of the problems with model rocketry research today is the perception that you need to use high power rockets (above "G" rated motors). You can find many videos that show high power rockets with sophisticated electronics being launched in the desert to tens of thousands of feet and speeds exceeding Mach 1. The builders of these rockets use high tech materials such as carbon fiber, and they may show how they use a milling machine to create aluminum parts for the rocket. However, the typical student doesn't have the money or the expansive launch area or the high power certifications that are needed to fly these larger rockets. They likely do not have access to high tech materials or computer controlled milling machines. Many middle and high school students are typically restricted to lower powered motors ('E' power and smaller) and small flying fields – such as school athletic fields. The creation of Project: Icarus helps demonstrate that you can still do real rocket research that incorporates electronics and video while staying on a modest budget. It uses common model rocket materials (paper and balsa), low cost electronics (Adruinos), and 3D printing using common filaments. It is important that these types of projects are relatively inexpensive and accessible to as many students as possible, yet still provide an educational/learning experience.
It took some time to determine how to approach the project and meet these requirements. The initial planning stages focused on the use of an Estes BT-60 body tube as our "standard size" payload bay. This is large enough for our electronics, yet small enough for reliable flights on the smaller fields. There are a number of current and former model rocket kits and designs that utilize the BT-60 body tube. This is also conducive to using black powder motors up to 'E' impulse. While composite motors can be used (if desired and affordable), it is not necessary.
Next was the need to design an avionics bay that would serve as the foundation for any type of electronic payload. This resulted in the adoption of the Arduino Nano, a MicroSD card module, a rechargeable LiPo battery and a RGB LED. The mounting system would be 3D printed, and by copying the base of the mount it could then be used to create additional modules. The additional modules (perhaps an altimeter, air sensor, etc.) would then be linked to the main avionics.
With the basic requirements defined, it was time to design the mounts that would house the various components. Tinkercad was used to design the avionics bay and the aerodynamic housing for the Estes AstroCam (for in flight video). It was also used to design the payload transition for the conduit that houses the sensors as well as the conduit supports. The circuit design area of Tinkercad was used to design the electronics used in the avionics bay as well as the temperature sensors. The use of Tinkercad allows the various designs to be accessible to students (and others) while providing a free design platform to expand the project through the design of their own payload attachments.
The completed project combines skills in model rocketry, CAD (through Tinkercad), 3D printing, electronics and computer programming through the use of the Arduino micro-controller (and the various electronic components and sensors used int he project). That's not bad for something that can be flown in a school yard.
Supplies
Launch Vehicle
In addition to the parts listed to recreate the kit
- BT-5 tubing (for conduit)
- BT-50 tubing (to replace original motor mount with an extended motor mount)
- BT-50 screw-on motor retainer (in place of the engine hook)
- BT-60 tubing (for payload bay - replaces the clear payload bay)
- Screw eye (for attaching recovery system to Payload Adapter)
- Wood Glue
- 30-minute Epoxy
- CA Glue (super glue)
Finishing
- Wood filler
- White Primer Spray Paint
- White Spray Paint
- Black Spray Paint
- Black Vinyl for Decals
- Silver Vinyl for Payload Bay
- Orange Vinyl to Mark Sensor Locations
3D Prints
- 1.75mm Orange Filament (PLA) for Avionics Bay and Conduit Supports
- 1.75mm Silver Filament (PLA) for Payload Adapter and AstroCam Housing
- 2M nylon screws and nuts (two each)
- Plast-I-Weld adhesive
Avionics
- Arduino Nano
- MicroSD Card Module
- 7.4V 2S 200mAh 20C LiPO Battery
- 22 AWG JST Plug Connector 2 Pin Male Female Plug Connector
- RGB LED
- Three 220-ohm Resistors
- 6-pin DuPont Connector
- 3-pin DuPont Connector (1 male and 1 female)
- 2-pin DuPont Connectors (1 male and 1 female)
- 24-gauge stranded wire in the following colors:
- red
- black
- yellow
- green
- blue
- white
Launch Vehicle Sensors
- Three TMP36 Temperature Sensors
The Launch Vehicle
For this project I decided to remake the 1980 Estes “Maxi-Icarus” payload model rocket. This is a single stage rocket, faily easy to build and a solid flyer. Although it is no longer in production the plans can be found at JimZ’s web site (https://www.spacemodeling.org/jimz/estes/est1331.pdf). In addition to the instruction sheet, the pdf file contains the fin patterns, decal patterns, body tube marking guide and shock cord mount, and a complete parts listing.
OpenRocket Design
Before construction began the rocket was recreated using OpenRocket (https://openrocket.info). OpenRocket is a free, open source model rocket design and simulation program that is available for Windows, Linux and Mac. There are some limitations (for instance we had to use a 'booster' to simulate the conduit on the side of the rocket), but it does a good job of calculating where the Center of Pressure is located and flight simulations (among other things). By using OpenRocket first, we could determine if conducting the project was feasible.
Construction Notes
The construction of the rocket mostly follows the original model instructions with the following updates/changes:
- Upgraded Motor Mount
The original 24mm motor mount was upgraded to allow the use of a wider diversity of 24mm motors, including the Estes E12-4. The motor mount tube was extended to 4-inches in length. The engine block was glued 3.5-inches from the bottom of the body tube (this allows the E12 motor to extend 1/4-inch beyond the end of the motor tube).
Because of the increased length of the motor mount, three centering rings are used instead of the original two. The first ring is located at the top of the motor mount. The middle ring is located 2-inches from the top of the motor mount. The bottom ring is located 3 1/2-inches from the top of the motor mount, or 1/2-inch from the bottom of the mount.
The metal engine hook used on the original model is discarded in our upgraded version. Instead a 24mm plastic screw-on motor retainer is used. After the mount after it has been glued into the body tube the motor retainer is epoxied onto the bottom of motor mount.
With this new arrangement, the upgraded Maxi-Icarus can use a wider range of motors. Through the use of adapters it can use a wider range of 24mm motors.
- Upgraded Shock Cord
The original model used the common rubber band shock cord. For our upgraded model the rubber band was replaced with a 1/8-inch elastic band. The length was then increased to twice the length of the rocket.
- Payload Bay Tubing
The original model had a 5-inch long clear payload tube. This was replaced with a BT-60 cardboard tube to allow the attachment of the video camera housing and cover the avionics bay. The payload adapter is 1.5-inches in length. To keep the length of the payload bay as close as possible to the original the 5-inch length, the new payload tube was reduced in length to 4-inches. While this did result in an increase of 1/2-inch to the overall length of the payload bay, it was necessary to allow for the length of the avionics bay.
- Adjusted Launch Lug Position
The original model had the launch lugs located midway between two of the fins. Due to the use of the conduit the launch lugs are moved flush against the fin instead of down the center of the body tube. This allows room for the temperature sensor wiring harness and conduit cover.
- Modified Nose Cone
The nose cone used on the model is plastic and has an attachment point for the parachute and shock cord. Since our model attaches the parachute and shock cord to the payload adapter this part of the nose cone is not needed. By cutting off the bottom of the nose cone shoulder we open up the inside of the cone. The shoulder is still present so there is no loss in the attachment of the nose cone to the payload tube. However, we now how more room inside for the wires to move around in, instead of being crushed under the base of the nose cone.
Finishing Notes
The wood fins were filled with thinned wood filler. Once it dries it is sanded smooth. The same thinned wood filler is used to filled the spirals on the body tube.
The vehicle was painted white while nose cone was painted black. The payload bay was covered in silver vinyl. The roll pattern trim is from the original decal pattern. It was created using black vinyl. A special "Project Icarus" logo was designed and cut out of black vinyl. The graphic file for the logo is attached.
The Launch Vehicle Temperature Sensors
Overview
There are three temperature sensors attached to the side of the launch vehicle body tube. The sensors are located as follows (from the top of the launch vehicle body tube, working down):
- Parachute Sensor
- Located 75mm from the top of the body tube
- Measures temperature between the recovery wadding and the parachute.
- Wadding Sensor
- Located 235mm from the top of the body tube
- Measures temperature between the solid rocket motor and the recovery wadding.
- Motor Sensor
- Located 425mm from the top of the body tube
- Measures temperature at the solid rocket motor, between the motor mount outer tube wall and the body tube inner wall.
Wiring Harness
The wiring harness for the sensors was constructed before the sensors were permanently attached to the body tube. To determine how long each section should be, the temperature sensors were temporarily placed on the body tube using tape to secure in place. The sensors are placed to obtain three distinct area temperature readings:
- The area outside the motor mount tube during the burning of the propellant
- The area between the ejection charge of the motor and the bottom of the recovery wadding
- The area between the top of the wadding and the bottom of the payload bay. This is the area that houses the parachute and the shock cord
With the sensors in place, the locations of the conduit supports could be determined. The supports perform two duties:
- They provide an attachment and support for the conduit cover
- They provide guidance and support for the wires as they travel up the side of the rocket
The power (red) and ground (black) wires traverse the entire length of the body tube. These wires travel through the conduit supports using the outside openings on the bottom row. The blue wire (parachute sensor) is run through the middle opening on the bottom row. The yellow wire (wadding sensor) and green wire (motor sensor) are run through the top two openings (see wiring diagram for additional details on routing wires).
All five wires terminate at the top of the rocket into female DuPont connectors. An extended 2-part conduit support is created using a 3D printer. The two parts are glued to the DuPont connectors. The two-hole version is at the top, while the three-hole version is on the bottom. Make sure that the two-hole connector is centered above the three-hole connector.
As you create the wiring harness for the sensors, make sure that the conduit supports are placed on the wires before soldering anything in place. Also, make sure that you cover any exposed wiring with heat shrink tubing to prevent the possibility of a short circuit.
When the wiring harness is complete, lay it against the body tube. Mark the location of the center of each sensor on the body tube. Drill a 1/8-inch hole at each center point. This will allow the sensor to experience the temperature inside the tube. The sensors are attached to the body tube with the flat part of the sensor against the body tube. They are initially attached using CA adhesive. Once the CA has cured, the sensors are coated with 30 minute epoxy. This secures the sensors in place and helps seal the edges to prevent the escape of any exhaust gases. The conduit supports are also attached to the body tube with CA adhesive.
The conduit cover is a BT-5 body tube that is cut in half lengthwise. On our original vehicle, the conduit cover was wraped with silver vinyl instead of painting the tube. The locations of the sensors are marked with orange vinyl stripes. The bottom conduit support is a solid 3D printed support, printed with silver filament and secured to the launch vehicle with CA. The BT-5 tube should be even with both the top and bottom of the launch vehicle.
The Avionics Bay
Overview
The avionics bay is designed to hold an Arduino Nano, a MicroSD card read/writer module, and a 7.4-volt LiPo rechargeable battery. As a base unit, on its own it doesn't do anything. It needs to have additional modules added to it. In this project we decided to use temperature sensors down the body of the rocket to record the temperatures inside the body tube. With the sensors in place, the additional coding is added to the base unit to calculate temperatures and store the data on the MicroSD card. The LiPo battery provides power to the sensors as well as the Nano and MicroSD card module.
When creating a different project, a new module would be designed to house additional sensors or modules. You may want to add an altimeter, so the altitude calculations coding would be added to the base code. The Nano would run the code, the LiPo battery would power the new modules, and the altitude data would be written to the MicroSD card.
A new 3D printed module would be created to house the new sensors. This new module would be designed in Tinkercad using the additional base ring in the drawing as the foundation for the new module.
3D Print
The basic avionics bay was designed on Tinkercad. The housing is designed to fit inside an Estes BT-60 body tube.
I used Cura and added eight custom support tubes at the top and bottom of the housing, two each on either side of the mounting hole. This help bridge the gap in the ring. The bay was printed with the forward end (this end has the slots for the MicroSD card and the opening for the Arduino USB socket) facing down on the print bed.
The slots for the two boards and the battery holder are meant to hold the components in place using a friction fit. However, depending on your printer and your exact components you may find that they are a bit too tight or too loose. Use a file to open the slots if too tight, or use a bit of glue to secure things in place if they are too loose.
The avionics bay used in this project was printed on an Ender 3 V2 printer. I used 1.75mm orange PLA filament from Hatchbox and the bay was printed at a 0.2mm quality setting with a 15% infill. Total printing time was about 4 hours.
Tinkercad Avionics Bay Files: https://www.tinkercad.com/things/7pel9mfXqzs
Electronics
A drawing of the circuit was created in Tinkercad. As noted above the basic avionics consist of a Nano and a MicroSD card module to store data. It is powered by a 7.4-volt rechargeable LiPo battery. A RGB LED is used to display the status of the system when a laptop or other computer cannot be connected to the system.
I would recommend that you first create the circuit on a breadboard. This will give you a better idea of how the avionics system works. It is also much easier to place the components together using a breadboard. Once you move to making the circuit permanent, you will find that there is not a lot of room to work. Things get crowded inside the avionics bay. Understanding the system before reaching this stage will help you better plan and work in this significantly smaller area.
The Nano is located at the top of the bay and the USB connector is designed to fit inside the square opening. The MicroSD card slides into the middle, with the slot aligned to the opening of the card receptacle. The hole in the middle of the slot allows you to access the MicroSD card, as the receptacle on the board is recessed.
Data collected from the sensors is stored on a MicroSD card. This card is located in the middle of the bay. The wiring is soldered to the Nano and ends with a 6-slot DuPont connector. Once the Nano and the MicroSD board are in place in the bay, the DuPont connector is coupled to the card.
Power is provided by a 7.4-volt 200 mAh rechargeable LiPo battery and is located at the bottom of the bay. The battery has two cables extending from the front bulkhead. The first one is a 3-wire plug that is used to recharge the battery. The 2-wire plug is used to supply power to the Arduino Nano. The 2-wire receptacle coming from the Nano also exits the front of the bulkhead. When the two are connected, it turns on the system.
All wiring in this project is 24-gauge stranded wire. The wiring is soldered to the underside of the Nano board prior to installing it in the avionics bay. Be sure to leave enough wire to place the components into the bay without binding.
The battery is equipped with a 2-pin female JST plug connector. A 2-pin male JST plug connector was soldered to the VIN and ground connection on the Nano. Plugging the two ends together turns on the Nano.
The MicroSD card module has six male pins that align with a 6-pin female DuPont connector. The wires are soldered to the correct locations on the Nano (D10, D11, D12 and D13, as well as +5V and Ground) and terminated with female connectors in the DuPont connector.
A RGB LED is used to provide status messages on the system through the use of various colors and flashing patterns versus a non-flashing light. A 220-ohm resistor is used on each of the color pins, while a ground wire is soldered to the cathode pin. The wire from each resistor was routed directly to the appropriate Nano connection (pins D3, D5 and D6). To get the correct length of each wire, I placed both the Nano and LED into the avionics bay, with the wires loosely in their correct locations. Once in the bay, the wires were bent over to secure them in place. Both the LED and the Nano were removed carefully from the bay, and the wires soldered in place. The excess wire is cut off.
The final set of wires is for the temperature sensors. They are connected at A0 (parachute), A1 (wadding) and A2 motor). These wires need to be long enough to run from the Nano through the Payload Adapter and terminate at the start of the conduit. I found that the best method to determine the proper length of the wires was to make them long enough to exit the payload and extend far enough beyond it that the 3-pin and 2-pin DuPont connectors could be attached (Once attached, they are pushed back into the payload adapter until the ends of the DuPont connectors are even with the end of the adapter).
Lastly, a small wire was used to connect the 3.3V to the AREF pin on the Nano. Once this is soldered in place, all of your connections are finished. With the soldering completed, take time to run a test to make sure everything is still working as intended. Your sensors should report similar readings.
Note: To prevent the possibility of the bare metal ends of the sensor wires touching and shorting out, a small piece of paper was slid between the top and bottom rows to act as an insulator.
Tinkercad Circuit Drawing and Arduino Files: https://www.tinkercad.com/things/dRlSi563Dez
A Note on the Tinkercad Circuit Diagram
The Tinkercad circuit design section contains a number of items that you can use in your designs. However, it does not contain a MicroSD card module. To compensate for this, we used a small breadboard and identified each connection on the module using the Notes tool.
We did the same thing with the battery, as the LiPo battery used in the project is not available in Tinkercad. Instead we substituted a 9-volt battery and using the Notes tool, identified the battery as a 7.4-volt LiPo battery.
Because of these substitutions, the simulation section of the design will not work.
The Payload Adapter
The payload adapter is connected to the avionics bay using two 2M nylon screws and nuts. The adapter provides a pathway for the sensor wiring from the avionics bay to the conduit connection. The top of the conduit fairing has been incorporated into the adapter design. The adapter has an opening to hold the DuPont connectors in line with the conduit. A three slot connector is located along the base of the opening, while a 2-slot connector is centered above. The inside of the adapter is hollow to allow for easy movement of the wiring.
The payload adapter and the conduit supports were designed in Tinkercad. The attachment ring of the adapter is copied from the attachment ring of the avionics bay. This ring is included as a separate drawing in Tinkercad to allow you to create your own payload modules and connect them to the avionics bay.
Like the avionics bay, the adapter, the conduit supports, conduit end cap and conduit connection were all printed on an Ender 3 V2 printer. I used 1.75mm silver PLA filament from Hatchbox for the adapter and end cap. The conduit supports (a total of four are needed) as well as the conduit connection used the orange 1.75mm PLA filament. All were printed at a 0.2mm quality setting with a 15% infill. Total printing time for the adapter was about 4 hours as well.
The adapter was printed without any supports. This resulted in some loose filament on the inside of the adapter. This area was brushed with Plast-I-Weld plastic fusing adhesive (https://flex-i-file.com/products/7112-plast-i-weld). It works by slightly melting both sides of the plastic and merging them together, forming a strong bond.
Tinkercad Payload Adapter and Conduit Files: https://www.tinkercad.com/things/hx9JfLnzzFe
Video Camera Housing
The Universal AstroCam is a commercially available video camera sold by Estes Industries. (https://estesrockets.com/product/002208-universal-astrocam-hd-rocket-camera-and-holder/). The camera comes with a 'clip-on' mount that is taped to the rocket. While you can use the clip that comes with the camera, I wanted an attachment that would better protect the camera. The result was the Video Camera Housing.
The camera housing was designed in Tinkercad and is made to hold the camera firmly in place during launch. Two holes in the top of the housing allow you to access the camera's function button, while the second hole allows you to see the camera's status lamp. A door is slid in from the side at the bottom to secure the camera inside the housing. The housing used in this project was printed on an Ender 3 V2 printer. I used 1.75mm silver PLA filament from Hatchbox and it was printed at a 0.2mm quality setting with a 15% infill. Total printing time was about 2 hours.
The payload bay is covered with silver vinyl, so to glue the housing to the payload bay a portion of it had to be removed to expose the paper tube underneath. To mark the amount of material to be removed, set the housing on the tube in the desired position. Using a pencil, trace an outline of the housing on the vinyl. Using a sharp modeling knife, lightly cut the vinyl about 1/8-inch inside the the pencil outline. Do not press hard and cut the paper tube underneath the vinyl. Remove the vinyl under the housing and discard it.
To secure the housing to the payload bay I used 30-minute epoxy. This slow cure epoxy will provide you with plenty of time to position the housing properly on the payload tube. Spread a thin layer of epoxy on the bottom of the housing and place on the payload tube. Allow the epoxy to cure before moving.
Tinkercad AstroCam Housing Files: https://www.tinkercad.com/things/5XbiHjYzAvv
Arduino Coding
When I write code I tend to use a lot of subroutines. I have found it makes the code more modular, which for me is easier to debug. It also makes it easier to maintain and makes changes in the future. If I want to add a new function or a new sensor, I just write a new subroutine and then call it from the main program loop using a single line of code. You will see I use this type of coding style throughout the temperature sensor program. The Arduino IDE allows you to place these subroutines into separate tabs which also helps with organizing and debugging your code.
Downloading and Installing the Code
If you use the code attached to this Instructable, all of the files must be in the same folder. Create a folder and name it "Temp_Sensor_Test_Single_Package_V1.0" and place each file in that folder. Open the file "Temp_Sensor_Test_Single_Package_V1.0.ino" and the Arduino IDE will open each file as a separate tab in the program.
The circuit diagram and the Arduino testing code is included in the Tinkercad circuit section (https://www.tinkercad.com/things/dRlSi563Dez). In this case, the code is all on one page, as Tinkercad doesn't allow for tabs (as far as I can determine, this option doesn't exist). This will also give you a good idea of how the two different coding styles look.
Initial Startup - Program Information
The very first tab is labeled "Temp_Sensor_Test_Package_V1.0". This is the start of the program. At the very top of the page is a program description box that shows the name of the program, the version number, a brief description, the initial creation date and the date of the latest update, my name as author and the copyright notice. This is included in all of the programs I write.
The next section contains any code examples that we have used during the development of the software. If the example is on the web, a link is included. If an example from the Arduino IDE is included, the menu trail is listed. This allows me to credit those who donated the code to help folks like me learn how to use various components (and write better software). It also shows me where to look if I run into an issue with a section of code.
Next we list the pin configurations and the board being used. This listing includes every pin used on the board and what it is used for.
Everything listed thus far in the program is a comment. There is no actual code written here. The program will run perfectly fine without it. However, if I come back to it six months, a year, a couple of years later, these types of comments/notes can be very useful in tracking down issues with the software.
Our next section starts to list some actual code. This section contains any libraries used by the software. This project only needs two libraries, and they are both used by the MicroSD card module.
Continuing on, we come to our Declarations section. In this section we declare any variables we plan on using. We also assign easy to read names to the pins being used on the Nano. By using a descriptive pin name, it makes the code easier to read and debug. The declarations are grouped according to where they are used and/or by the module/sensor.
Program Setup
We now enter the first function in the program, void setup(). This is a required function in all Arduino programs. Here we initialize pins, start communications with the serial port and setup the MicroSD card module. The setup of the MicroSD card module is done by calling the subroutine "setupMicroSDCard();" When the program sees this line, it jumps to that subroutine and executes the code there. When it is done, it returns back to the calling line and continues on.
Main Program Loop
While the void setup() function is only executed once, the void loop() section is run continuously. Once it has completed executing the code in the function, it loops back to the top of the function and does it all over again. In this section, the main loop gets a time stamp, then sensor readings from the parachute sensor, the wadding sensor and the motor sensor. It writes that data to the MicroSD card. In testing mode it pauses for one second, then jumps back to the top of the function and repeats the process.
It should be noted that the three sensor readings and the writing of the data to the MicroSD card are all subroutines. This keeps our program clean and easy to read and understand.
RGB LED Lamp tab
This tab contains a number of subroutines that can be called to display a color and action of the RGB LED lamp. By using an RGB lamp, we can adjust the color to convey the status of the avionics bay and the sensors. We can also use one of the subroutines to blink the lamp. This can be helpful on the flying field where you may not have a laptop that you can plug into the avionics bay and see the error messages on the Serial Monitor.
The program contains the code for three basic colors (red, blue and green). It also contains the code for a steady lamp or a flashing lamp. Because it is an RGB lamp, you can add code to display any color you desire to convey a particular message. You can also add or modify the flashing lamp code as well.
Sensor tabs
There are three sensor tabs (motor, parachute, wadding) and all three perform the same function. They each read the voltage from their assigned sensor and convert that to a temperature in Celsius. That data is store in two variables (for the parachute temperature sensor - voltageChute and temperatureChute), which will later be written to the MicroSD card. On the testing version of the software, the sensor readouts are displayed on the Serial Monitor.
Serial Monitor Splash Screen tab
This tab is only included in the test version of the software. It displays a brief message about the program (name, version number, etc) on the Serial Monitor. This section is not included in the flight version.
Setup MicroSD Card tab
This subroutine is called from the setup function and it checks to see if the MicroSD card is present and if it can be initialized. If the module completes the tests, the RGB lamp will display a steady green. In the test version the success is displayed on the Serial Monitor too. If the card cannot be initialized the RGB lamp flashes red for 50 cycles and shuts off. Instructions on clearing the fault are displayed on the Serial Monitor.
Once the MicroSD card passes the test, the software creates a new file on the SD card. It then writes the header information to the card and closes the card.
Write Data to SD Card tab
The last tab is the subroutine that writes the sensor data to the MicroSD card. It is written in plain text and uses the "Coma Separated Values" or CSV format. This places a coma after each sensor value. This type of file can be read by nearly all spreadsheet and database programs. Once the data is written the file is closed until the next set of data is ready to be written to the card.
Code Conclusion
The code for this project is not that difficult to execute. It is fairly straight forward. The generous use of comments should help you understand exactly what each section of code is doing.
Assembling the Avionics Bay
With all of the components now created, it is time to start assembly. We begin with the avionics bay.
Avionics Bay Assembly
- Start by sliding in the Arduino Nano. Go slowly. The power cable that will connect to the battery is located on the left side of the bay and is fed through the rectangular opening. The LED bulb inserts into the round hole on the right, with the wiring going into the open area under the Nano slot.
- The sensors wires should be exiting the avionics bay through the rear opening. The DuPont connector for the MicroSD card also exits from the rear of the bay.
- Continue to push the Nano forward until it seats at the top of the avionics bay bulkhead.The USB connection fits in the small rectangular opening, while the lip of the LED should fit flush against the forward bulkhead.
- Next, insert the MicroSD card module into the middle slot. Slowly push the card forward, making sure that it doesn't snag or catch any of the wires attached to the Nano. The module should fit flush with the forward bulkhead. The MicroSD card slot should line up with the slot and circular opening on the forward bulkhead.
- Separate the wires attached to the DuPont connector from the wires going to the sensors. Gently curl the DuPont connector down and attach it to the pins on the MicroSD card module. Make sure that the pins and wires are attached properly (5V to 5V connector, Ground to Ground connector, etc).
- Finally, we begin to slide in the LiPo battery. The two sets of wires should be on the right side of the bay (the same side as the LED lamp.
- Slide the battery forward while guiding the white 3-pin rechargeable connector through the lower rectangular opening.
- Once the white rechargeable connector is through the opening, feed the red 2-pin power supply connector through the opening.
- With both sets of wires now past the forward bulkhead, push the battery forward as far as possible. It will not fit flush against the bulkhead due to the location of the wires.
- With all the components in place, it is time to test the assembly. Attach the sensor wires to the appropriate connections on the body tube. Connect the Nano to the computer using a USB cable. Run the program and confirm that everything is operating as expected.
- Upon successful completion of the test, perform the same test using battery power only. Confirm that everything is functioning properly by reviewing the data on the MicroSD card.
Assembling the Payload Adapter
The sensors wires travel through the payload adapter so that they can connect to the conduit containing the temperature sensors. Once the wires have been routed, the Avionics Bay is mated to the Adapter.
Payload Adapter Assembly
- There are six wires that need to be fed through the payload adapter. Begin by using tape to secure the wires into a bundle.
- Feed the wires through the top of the adapter and into the conduit opening. Continue to push the wires through until the top of the payload adapter is flush with the bottom of the avionics bay.
- Using two 2M screws, connect and secure the avionics bay to the payload adapter.
- To help with attaching the two items together I used a printed vise found on Thingiverse with a modified handle.
- The Thingiverse stl files can be found at https://www.thingiverse.com/thing:4563901
- The extended handle file can be found at Thangs at https://social.thangs.com/m/127184
- Remove the tape from the sensor wires. Sort the wires according to their location on the body tube.
- Insert the three bottom wires into the 3-slot DuPont connector. Insert the two top wires into the 2-slot DuPont connector.
- Test the system once again by inserting the sensor wires into the conduit connection. Correct any issues that may have occurred.
- Following successful testing, begin to feed the wires back into the payload adapter. Make sure the wires are in the proper order and the the three-slot connector is on the bottom with the 2-slot connector above.
- Carefully push the DuPont connectors into the payload adapter. The end of each connector should be even with the end of the conduit adapter. The pins should be exposed. This is a tight fit.
- Insert the payload adapter into the body tube. Align the pins with the conduit. Push the payload adapter down into the body tube until it is flush with the top of the body tube.
- Test the final assembly.
- Place the payload bay body tube over the entire assembly. Connect the battery and test the system.
Final Steps
Completing the Model
With everything attached and working properly, the conduit can be glued in place. I used CA to secure the conduit to the conduit supports. A bead of white glue was run along the edge to seal the edges.
If necessary, secure the avionics components using adhesive. Let everything sit at least 24-hours to cure. You can now attach the parachute and the shock cord to the screw eye in the payload adapter. This completes the construction of the launch vehicle.
In addition to testing the the electronics, you should also test the separation of the payload section from the body tube. The two should separate easily and should not bind. If you find it it too tight, you may need to sand down the section of the payload adapter that fits into the body tube.
Final Thoughts
The final version of the model can be flown with or without the video camera. First test flights may wish to exclude the camera until you have a good idea of how the model flies. We can see that OpenRocket has calculated a stability factor 5.59 calibers, which is considered overly stable. While that sounds like a positive, it can cause the model to "weathercock" or fly into the wind. On a windy day the rocket would likely arch over and fly parallel to the ground (at the time of this posting we just recently completed the model and haven't had a good windless day to perform our first flight).
It is highly suggested that you weigh the finished model (including the motor). Use this information to override the calculated weights in OpenRocket. Then run a flight simulation to see the expected performance and adjust motor use accordingly. It also displays the optimal delay time for the ejection charge to help you with motor selection. Our finished rocket is projected to reach an altitude of about 90 meters (295 feet) on a D12-3 motor, and 195 meters (about 640 feet) on an E12-6.
Updates and Additional Information: The Rocketry Research Journal
We will be creating a "Flight" version of the software for this project. The Flight version differs from the Test version in that none of the code for using the Serial Monitor is included. That will be released at a later date.
For more information on model rocketry, Arduinos, 3D printing, and more, please visit our blog and web site "The Rocketry Research Journal" at https://rocketryjournal.wordpress.com. You can download Tech Reports, model plans, rocketry software and more. All of it is free and opensource.
If You Enjoy Rocketry, Consider Joining the NAR
If you enjoy model rocketry and projects such as Project: Icarus, then consider joining the National Association of Rocketry (NAR). The NAR is all about having fun and learning more with and about model rockets. It is the oldest and largest sport rocketry organization in the world. Since 1957, over 80,000 serious sport rocket modelers have joined the NAR to take advantage of the fun and excitement of organized rocketry.
The NAR is your gateway to rocket launches, clubs, contests, and more. Members receive the bi-monthly magazine "Sport Rocketry" and the digital NAR Member Guidebook—a 290 page how-to book on all aspects of rocketry. Members are granted access to the “Member Resources” website which includes NAR technical reports, high-power certification, and more. Finally each member of the NAR is cover by $5 million rocket flight liability insurance.
For more information, visit their web site at https://www.nar.org/