Clean Room Adventures

I had the opportunity to check out the Georgia Tech clean room and perform some steps in the semiconductor fabrication process. It was very interesting to see how chips are made in the real world. Of course the process here wasn’t near as complicated as modern processor fabrication, but the concepts and fundamentals are still very much in use today!

Clean Room Photo
Photo from the clean room at Georgia Tech.

Helicopter Control Systems – ECE 6552

For the Georgia Institute of Technology and its Nonlinear Systems class, my group performed analysis on a model for a small coaxial RC helicopter. The objectives of our study were to:

  • Construct a model that accurately represented the dynamics of our system.
  • Stabilize the system by finding and utilizing a Lyapunov function and feedback linearization.
  • Create a simplified linear control system derived from the nonlinear dynamics of the model; then implement this control system on a real, commercially available RC helicopter.
The original RC helicopter.
Fig. 1. The original RC helicopter.

A standard RC helicopter with a burnt out controller was chosen as a starting point. A microcontroller (ARM Cortex M-0) was chosen to be the brain of the system. A LSM9DS0 IMU was chosen to be the acceleration and rotational sensor. The reference commands are to be transmitted wirelessly to the system by an XBee-PRO® 900HP transmitter.

The main rotors are powered by two motors which are to spin counter to each other. This is the central idea to the operation of coaxial helicopters. As a rotor rotates a torque is induced on the body of the helicopter which would cause the body to begin rotating. Since the rotors are spinning in opposite directions, their torque cancels out. By varying the difference in speed of the rotors, a small amount of torque can be allowed to cause desired rotation of the helicopter’s body.

The starting point of model development was based upon the work by D. Schafroth et al, titled “Modeling, system identification and robust control of a coaxial micro helicopter”. From there we developed the model, shown in Fig 1., to describe our system.

Fig. 2. The state variables and systems of equations describing the coaxial helicopter.

Here x,y,z and ϕ,θ,ψ are the position and the angular positions of the center of mass of the helicopter with respect to the origin. u, v, w and p,q,r are the linear and angular velocities in the x,y, and z directions. Ωdw and Ωup are the rotor speeds. In our model we assume the motor inputs to be equal.

The objective of the controller is to stabilize the helicopter in hover to a desired z value. During hover the system has freedom of angular velocity and acceleration about the z axis, or yaw.

The final step was to prepare our helicopter to perform our real world experiment. We converted our mathematical control system into a discrete version to run in our helicopter’s controller. The biggest problem we ran into was the weight of our new controller. The helicopter was only able to maintain flight for a few moments before succumbing to the weight and drifting downward. However for a few moments we where able to achieve a stable hover, and our control system performed quite well.

Fig. 3. The finished RC helicopter with a custom controller.

With more time and a larger budget, there are many things we could have done to improve the performance of our experiment. A more powerful helicopter with a longer lasting battery would have eliminated the weight issue and enabled us to perform longer tests. In the end we successfully confirmed our mathematical model with real world experimentation.

Presentation Materials

Click here to download our PowerPoint presentation.

Forestry Worker Safety Project

In conjunction with the Georgia Institute of Technology, as a final end of program (graduation) project, my team designed and prototyped a worker safety device for forestry workers. It incorporates a lot of cool devices and modules like a powerful GPS and Radio as well allows in socket programming of the microcontroller. See more at the link below!

VPS Hosting vs. Shared Hosting

For a while now I have hosted my website and websites of the past using some shared hosting provider. I have suffered common issues that have forced many to make the move to dedicated hosting. These issues include slow load times, WordPress page generation issues, and lack of control of the hosting platform itself. However dedicated hosting isn’t exactly cheap and you still don’t have full control over your hosting platform.

Recently after experimenting with virtualization technologies at home on my private homelab, I was curious to see if commercial private virtualization offerings have dropped in price enough to consider renting a VPS (Virtual Private Server) and dropping my shared hosting plan.

For those who haven’t heard, a VPS provider provides you with a private virtualization service. They basically host a virtual machine that acts like a real server sitting in their data center. You are provided administrator access to the server and can set it up to do whatever you wish. Popular uses are web hosting, video gaming servers, private VPN service, experimentation, and the list goes on to include anything would want to do with a server.

After some research I came up with a few popular providers that ranged in price but where all surprisingly low priced. In the end I narrowed it down to,, and They all stored their data on speedy SSDs and had a huge range of offerings varying from slower low RAM and CPU offerings to the high powered offerings containing up to 64 GB of RAM and 20 CPUs at the time of this write-up. I’ll leave the comparison shopping up to you if you are interested in getting your own VPS.

In the end I decided to go with DigitalOcean’s $5 a month plan. It seems to be plenty fast for web hosting. RamNode did have one cheaper offering at $3.50 a month, but at only 256 MB of ram, I was concerned about the viability of hosting a WordPress site there. For $5 a month I get just enough but nothing more, and it has worked beautifully; not to mention that DigitalOcean’s admin interface is extremely simple to use and cleanly designed making getting setup a breeze. They offer a range of Linux OSs and several Ubuntu server based images with things like a LAMP (Linux, Apache, MySQL, PHP) setup preconfigured to save you time.

My load times have dropped by an order of magnitude on my blog and easily by double or quadruple on my HTML pages. The freedom of full control over my hosting server has also been a refreshing change of pace. No longer do I have to pester the hosting service if something isn’t working. Although if something does go wrong, don’t expect anyone but yourself to be the one fixing it. DigitalOcean provides the hardware but you setup the VPS on your own.

I would head over heels recommend a VPS based hosting solution to anyone with the confidence to setup a Linux based web hosting machine on their own. While it’s not quite as easy for the average user as shared hosting, if you have the ability it doesn’t make sense to stay with shared hosting in my opinion.

Thanks for reading and happy VPS…ing!

A shameless plug: If you do decide DigitalOcean is your VPS provider of choice, don’t be afraid to click my referral link ( when you sign up. You will immediately get $10 credited to your account and of course it helps me out.

Crazy Blooms

I know that this post is not consistent with the topic of my blog; however with gardening to be one of my relaxing hobbies, I am inclined to share it here. Gardening has been something I do in my spare time for the past 2-3 years of my life. Nothing extreme but I would usually grow whatever could fit on my cramped apartment porch.

Now while this post isn’t directly related to my usual technology centric posts, I am actually in the process of designing and building a programmable LED plant grow system! The details of which will of course appear here when it’s time. Here are some little tidbits of my upcoming project…

  • Between 120-200 w power output.
  • Microcontroller day/night programmable.
  • 40-70 3 Watt Leds!

I am currently still waiting on parts to come in but I plan to start the build within the next month so keep posted.

I currently have lemon and orange trees indoors during the cold summer here in Georgia. These trees are fairly young with the lemon tree being three years old and the orange tree being only two. But at such a young age, they wouldn’t be able to survive any kind of real deep freeze without serious damage. I did, however, leave them outside a few too many chilly nights before bringing them indoors. To my surprise, I think they have decided among themselves that is now spring and time to flower! I am excited to see what size crop they will yield.