I made an enclosure for the tube furnace and hooked it up to an arduino and solid state relay. The main body of the furnace is 5″x5″x12″ and filled with alumina ceramic wool. Impressively, the exterior only reaches 100°-200°C at most even while the tube inside is over 1000°C! That should keep the furnace from being a severe fire or burn hazard. Now I just need to write a PID loop with a proper temperature ramp controller and I should be good to go!
Author: Nick
High Temp
To make semiconductors, you need the capability of reaching very high temperatures, usually around 1000 degrees Celsius! This is well beyond the range of most household devices, so my toaster oven isn’t going to cut it. Semiconductor labs usually use a special kind of furnace called a tube furnace. The tube furnace is simply a quartz glass tube surrounded by a heating element and insulation. I bought a quartz tube from McMaster-Carr for $20 and wound some 22g nichrome wire around it and insulated the whole thing with some alumina ceramic wool and hooked it up to a variac as a proof-of-concept. I was able to reach 1000°C with only about 300W of power, which was actually a lot lower than I expected. Now I just need to put this in a proper enclosure, write some code, and I should be good to go! (famous last words!)
Semiconductors
I used to work in a semiconductor lab back in college and I really enjoyed it. I was always told that it was nearly impossible to make working transistors in a home lab, much less an integrated circuit. However, recently I’ve been made aware of one or two other people on the internet who have succeeded in doing just that. I’ve always wanted to try myself, so why not? I cobbled together a bunch of supplies I had on hand and purchased some new stuff as well. My ultimate goal is to try and make an integrated circuit, which I will define as “two transistors on the same chip.” For now, I’ll start researching what I need to build or buy and keep you posted!
I released a video on how to make a rocket motor test stand that is resistant to motor explosions! Check it out!
Video Here: https://www.youtube.com/watch?v=C5j-w0-Lx2g
GY-87 HMC5883L Fix
Wow what a headache! I’m going to type this up here so that anyone with the same problem can hopefully find this post and fix it like I did. A quick recap first: I purchased a 9-axis breakout board for my rocket flight computer. The board comes with an MPU6050 IMU (accelerometer and gyroscope), a HMC5883L compass, and a BMP180 barometer. When it arrived, I noticed the compass was misbehaving. It was reachable on the I2C bus but was not outputting any heading data. I figured it’s internal MEMS device was busted and placed an order for a replacement.
The replacement GY-87 came and it too had a broken HMC5883L. This seemed sketchy to me and I did some digging. It turns out that the MPU6050 has a second I2C bus that is specifically for connecting to a compass, and in the case of the GY-87 breakout board, the HMC5883L is connected through the MPU6050 on it’s auxiliary I2C bus rather than simply being connected on the main I2C bus.
When the HMC5883L is connected on the AUX bus of the MPU6050, it will behave in one of two modes.
The confusing part of all of this is that even when in master mode, it seems to behave as a partial pass-through, allowing you to configure the HMC5883L but not read the magnetometer. This is also the default mode, so if you don’t realize this is the case you’ll get stuck believing that the magnetometer is busted, since it’ll be responsive to commands but have no useful heading data.
The magic fix for all this if you are using the standard MPU6050 Arduino library is to enable the pass-through mode using the following line of code during initialization:accelgyro.setI2CBypassEnabled(true);
Note that you still need to initialize both the MPU6050 AND the HMC5883L as if they were both on the master I2C bus even though the HMC is on the auxiliary bus.
Once you do this, everything is sunshine and rainbows and behaves exactly as expected.
I’ve added my initialization code for this breakout board in case you want to use it too:
#include "I2Cdev.h"
#include "MPU6050.h"
#include <Adafruit_Sensor.h>
#include <Adafruit_HMC5883_U.h>
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);
BMP180I2C bmp180(0x77);
MPU6050 accelgyro;
void setup() {
Wire.begin();
mag.begin();
bmp180.begin();
accelgyro.initialize();
accelgyro.setFullScaleGyroRange(MPU6050_GYRO_FS_2000);
accelgyro.setFullScaleAccelRange(MPU6050_ACCEL_FS_16);
accelgyro.setI2CBypassEnabled(true);
}
Link to GY-87 on Amazon if you want to buy one: https://www.amazon.com/gp/product/B098JN14XV/ref=ox_sc_saved_title_2?smid=A39S0U3UP1U7UG&psc=1
Clay Plug Debugging
I was trying to devise a method to pressure test the clay plugs, since they were failing during motor firing. I discovered something odd. The clay plug from a used motor (I’ll have to test on a freshly rammed one soon) was clearly permeable to air. I connected the other end to a bike pump and dripped a little water on the clay plug to show just how bad the problem is. I have no clue if this is normal yet, but I assume not. I plan to take an existing Estes motor and check the clay plug for the same permeability.
In addition to the problems with the permeability, when I removed the plug from the tube there was clearly no sign of the outward convex bulge that should be locking the clay plug into place in the tube. Normally the pressure of the ramming will bulge the clay outward against the tube, creating an interference fit that will prevent the plug from coming out under pressure. I don’t see any visible bulge, so either it’s a lot less than I thought, or the plug wasn’t rammed properly. Also, the clay doesn’t look particularly compact to my eyes. I think these are all problems that need to be solved before I make any more motors.
I suspect that I’m deficient on two fronts: first, clearly the composition of the clay is off. It looks far too grainy which might mean I should be using less grog in my mix. Second, it’s clear that I’m not fully compacting the clay during the ramming process, so I’ll probably try and test ramming force at home using my 1-Ton press to see if that improves things at all.
Propellant Deterioration
Something that is notable about sugar-based propellants is that they are hygroscopic, which means they absorb water from the air. This causes the propellant to degrade notably over time. This motor was launched a couple days after it was made, and as a result it barely went 50ft into the air.
Dummy Motors
I used all the tools I created to make a set of dummy motors- motors without any oxidizer but otherwise exactly to spec. This serves two purposes. First: it allowed me to make sure that I haven’t forgotten anything and that my tooling is complete and I’ll be able to make motors out in the desert when the time comes. Second: it allows me to have a motor that I can stick into rockets in order to get them correctly balanced so that they are stable, without having to deal with any flammability concerns. It’s really starting to hit me just how much larger these are then the motors I used in my youth. On the far left is an Estes A size motor (same as the size B and C) for scale. My motors are (from left to right) size C, D, D, E, E, and F respectively.
I made a simple launch platform by welding together a couple scraps of steel tubing and a small shaft coupler with set screws, into which a 1/4″ steel rod can be held. Ideally I would also add a means to pivot the rod so that it can be aimed into the wind, as well as a plate so the rocket exhaust doesn’t burn the ground (and potentially set stuff on fire). For now I’ll leave it as is and use something else as the blast plate or more likely I’ll just make sure there is nothing flammable nearby. It’s going to be in a desert after all.
I need a simple anvil to hammer against when I load rocket motors, so I grabbed the largest piece of steel scrap I had on hand and started facing it down so that it’s flat and the faces are parallel. Not exactly a complicated operation for most lathes, but my little 1HP lathe is definitely not cut out for this. For starters, it’s barely able to hold the 8″ disc in the 4-jaw chuck. I’m pretty certain that if this were half an inch larger, it would not be machinable in my shop. At any rate, perseverance paid off and I got it done. Probably would have been cheaper and easier to use a rectangular steel block and mill it flat, but I thought this would be more fun.