Flying drones for fun is great, but they have so much more potential than most people think. Instead of using drones as toys, there are many practical uses. Adding autonomy to drones can allow for new possibilities, such as land surveying or package delivery. Tasks that used to be otherwise strenuous or boring for regular drone pilots can now be accomplished with a lot more ease. Last week, I attended a drone summer camp at Embry-Riddle Aeronautical University. Embry-Riddle is one of the best aeronautical universities in the U.S and even the world. They offer a variety of degrees focused in aviation, engineering, and cyber-security. During this camp, the members in my camp group built and flew autonomous quadcopters along with some DJI Phantoms/Inspires and RC airplanes. We also spent some time in the classroom with the UAS (Unmanned Aerial Systems) professor. UAS focuses on the systems around and inside unmanned aerial vehicles. For the autonomous quadcopters, we used the f450 frame along with 1000kv motors + 30a ESCs and a 2200mah battery. To add autonomy, we used the Pixhawk Flight Controller running an open-source software known as Ardupilot with a GPS/Compass. The flight controller was able to be programmed using a software called Mission Planner. In this program, you can create a flight plan with waypoints, change the altitude/speed of the drone, disarm/arm, and do many other things. Besides a few friends and I, most of the other people in our group had little to no experience with building drones. We decided to split up and help the others build their quads. I felt that this particular experience was very beneficial, as it improved and refined my building skills through teaching. After the building was complete, we tested the motors and made sure everything was working correctly. We went out to the RC field and programmed a flight plan to all of our drones. I was surprised to see that all the drones followed their routes without any problems and flew well. At this point in the camp, we still had a few more days left to fly, as our professors had underestimated the time it would take for us to build the drones. We spent the rest of the camp flying RC planes and DJI drones. I didn't have much experience with flying RC planes prior to going to this camp, but I was able to learn and improve my RC plane flying skills a lot. On the last day of camp, most people in our group flew DJI Phantom 4s at the same time in formation and patterns while my friend and I flew/controlled the camera on a DJI Inspire to get some video of the other drones flying. The Inspire requires two pilots: one to fly the drone, and one to operate the camera gimbal. Although the actual building and flying of the quadcopters in this summer camp was a bit too simple for my skill level, I still enjoyed it. I did learn some new things about autonomous quads, UAS, and flying RC airplanes. See photos and videos here.
Saturday, July 28, 2018
Tuesday, July 10, 2018
Bluetooth Battery Monitor Using WICED Board
My electric skateboard so far has been great. The performance and battery life is better than I originally expected. However, there is one issue that bothers me: checking the battery voltage quickly. Right now, I have to take out a multimeter, open the enclosure on the bottom of the board, and measure the voltage. To solve this problem, I thought of making a Bluetooth-based battery monitor. I recently got an internship at a company in Silicon Valley called Cypress Semiconductors. One of their specialties is in WiFi and Bluetooth chips for devices such as game consoles, phones, smart home appliances and much more. They make Raspberry Pi-like boards aimed to help developers that can be programmed using a custom SDK. The particular board that I used is part of their WICED line of devices, and is called the BCM94343W_AVN. This product line focuses on connectivity, mainly Wi-Fi and Bluetooth. My particular board includes both Bluetooth Low Energy and WiFi, and is normally used for IOT (Internet of Things) applications. As the first main project for my internship, I decided to use this board to make a Bluetooth voltage monitor for my skateboard. I envisioned somehow measuring the skateboard battery voltage and sending that data to app on my phone so I could easily monitor the voltage. First, I focused on measuring the voltage. After some research, I found a feature built into the board that was called ADC, which allows any power source up to 3.3V to be connected to the board via the GPIO pins and measured. I found some code for the ADC online that worked with an Arduino board, so I changed the code a bit to work with my board and tested it with a AA battery (max of 1.5V). The problem was that the battery in the skateboard has a much higher voltage, around 12.5V fully charged. So I did some research and found out that there was something that could solve my problem known as a voltage divider circuit. Basically, two resistors, one higher impedance than the other, are used to bring down the voltage of a source to a manageable level. Then, you do some calculations to find out how much the voltage was divided by the resistors and use that data in your code to find the actual voltage of the source. I used a voltage divider calculator online to do my calculations. My skateboard is made up of two 3s batteries, each having a max voltage of around 12.5V when fully charged, and I only wanted to measure one of the batteries. In the voltage divider calculator, I used 13V as my input voltage to be on the safe side, and 3.3V as my output voltage, as that is what the max ADC voltage of the board was. There are no specific values to the impedance of the resistors that you need to use in a voltage divider circuit, but I settled on an 18K and 4.7K resistor, as that is what I could find in the company workshop. Next, I wrote some code to factor in the voltage divider circuit and everything worked properly. Finally, I had to find a way to send this voltage to my phone. Fortunately for me, Cypress makes an app that is designed for testing these Bluetooth boards. They also provide starter code that is compatible with this app. Once I modified their starter code a bit by adding my voltage measurer code and doing some small fixes, I was able to receive the battery voltage on my phone through the Cypress-made app. I put the board into the enclosure on the skateboard and did some soldering and tidying up with all the wires. The board, which needs 5V 2A for power, is powered by the skateboard batteries through a LiPo to USB converter that I bought online. However, there are still a few issues. For some reason, I couldn't get the Cypress app to display the voltage in a decimal format, so for example, 12.5 volts shows up as 125. Secondly, the voltage doesn't update as you ride unless you restart the whole system. In the end, it probably would've been easier to use an Arduino, but this project helped me get familiar with the WICED system and SDK. Click this to see my the voltage measuring code.
Sunday, May 13, 2018
TechCrunch Sessions 2018: Robotics
If you haven't heard of it before, TechCrunch is a fairly popular news outlet and organization based in Silicon Valley that is mainly focused on technology. Every year, they hold an event devoted to robotics. CEOs of major robotics companies and industry experts speak on panels and show off their new technology. This was my first time attending a TechCrunch Robotics event, and it definitely won't be my last. As I was looking through the event's agenda, I became particularly excited when I saw that Boston Dynamics (the company that makes the kinda creepy robot dog thing: robot dog video) was going to be demoing their new robot, and that Skydio's (company that makes the also kinda creepy autonomous drone: autonomous drone video) CEO was going to be talking about the company's latest drone. The event was presentation-based, focused on a panel of speakers that usually consisted of CEOs of robotics companies or industry experts. There were also various booths outside the presentation theater where the companies could demo their products and advertise. There were many different subjects that were talked about, from artificial intelligence powered robots in agriculture to self-driving cars (event videos). Some of the discussions that I found pretty interesting were about self driving big rigs and then of course, Skydio's autonomous drone. Starting with the big rigs, a company called Embark wants to use self-driving technology only for the long and boring highway part of a trucking haul, and then let a human driver start and finish the job for a few miles. I think this is a brilliant idea, because the truckers need to be present to deliver the goods, but don't want the stress of driving for many hours on the highway. The CEO of Embark explained that the company won't actually be stealing jobs, because there is a shortage of truck drivers right now in the U.S. Next, Skydio's CEO talked about what went into the technology of the autonomous system used in the company's latest drone, the Skydio R1. The CEO of Skydio mentioned that he began flying RC model airplanes at a young age and became interested in the hobby. As an MIT student, he worked on a project that used a lidar system and several cameras to autonomously fly a model airplane around a parking garage. From there, he brought together a team to apply the same idea to a quadcopter. Over many years, the company developed AI software and a camera system that would allow the drone to not only avoid obstacles, but track a person and follow them at high speeds. The Skydio R1 that came out recently has 13 cameras that allow the drone to basically be "uncrashable" in conjunction with the incredible AI processing software. I found this talk inspiring, because I enjoy flying my custom-made drones that looks just like one of Skydio's early prototypes, and I could see myself being interested in this field of work in the future. There were plenty of other interesting discussions, but I would probably write a whole novel about all of them. I hope to attend this event next year, and can't wait to see everything that will be there. See some photos and videos that I took here. If you are interested in that autonomous drone, check out Casey Neistat's video about it here.
Sunday, April 29, 2018
Robogames 2018
This year, I competed in a combat robot competition called Robogames. If you are familiar with the show "BattleBots", Robogames is essentially the same thing. There are many different events, such as combat, hockey, autonomous or even things like robotic bar tending. I participated in the Junior League one pound combat category. In this event, your team has to build a robot less than a pound that will face others in a boxing-style combat arena with a dual-elimination tournament setup. I did this same event last year, and lost both my games. I pretty much built my robot the night before the competition and it didn't turn out too well. This year, I wanted to do a lot more planning and not procrastinate as much. I thought my design from last year, a horizontal spinning drum attached to the front of the robot, was decent, and I decided to stick with it. My friend and I formed a team and started researching. I saw a video by YouTuber Robert Cowan (link here) that seemed to match perfectly with the design I had in mind. I messaged Robert for the chassis and weapon files so that I could modify them for my particular components. I planned to 3D print the chassis and weapon, but would've liked to CNC the weapon out of steel or titanium if I was able to gain access to proper machinery. For electronics, I used the same parts from last year, with a quadcopter motor powering the weapon and Fingertech brushed motors and ESCs feeding power to the wheels. After modifying the chassis and weapon to fit the components, my friend and I 3D printed them in my engineering class at school. We printed duplicates of each so that we would have back-ups if anything broke during the competition. In Robert's design, he uses a plastic called Garolite G10 that is screwed onto the top and bottom of his chassis to cover and protect the internals. I went to my local Tap Plastics store and purchased some high-impact resistant acrylic plastic instead of Garolite G10, as it wasn't available. In school, we used the laser cutter in our engineering class to cut the acrylic to our specifications (again, we cut multiple plates so that we would have replacements for the competition). Finally, we assembled all the parts together. We used a skateboard bearing and a bolt to hold the drum into the chassis, and the motor was simply press-fit into the 3D printed weapon. After soldering and installing all the parts, we added some hot glue to strengthen the electrical connections. Next, we weighed the robot and found that we still had about 100g to spare. At that moment, it was the day before the competition, so we decided not to add any weight. We tested the robot and were pleasantly surprised at the strength of the 3D printed weapon and chassis. At the competition, we realized that we could've improved our design a bit. There were six screws that held the acrylic plates to the chassis, and were a pain to remove when we wanted to change the battery or fix something. Unfortunately, in the first fight, the weapon motor seemed to be stuck and not spin up very fast or at all. After the fight, I realized the battery we used, a 2S LiPo, could not sustain that constant spinning of the weapon for the full 3 minutes of fighting. This was the main issue for why our robot lost the first fight. Luckily, I had brought a larger 3S LiPo, and it barely fit the chassis. Also, it left about 20g of weight to spare. Thinking about it now, we should've used this battery from the very beginning, not just as a backup. I used the 2S LiPo batteries in the first match since I had only one 3S, and four 2S LiPo batteries, meaning I wouldn’t have to charge during the competiton. In the next fight (using the 3S), the robot worked properly, but we still lost. In this fight, the opponent had a robot shaped almost like a dustpan, with a very thin lower lip that was able to go underneath the spinning drum, essentially making it useless. This fight exposed another flaw of our design. However, all the other robots in this competition didn't have this dustpan design, and I think our robot would've competed better against any of the other bots. Next year, I plan to compete again in Robogames, but revise my design a lot more. I still do believe that the spinning drum is a great weapon, because it keeps the rotational forces balanced across the width of robot chassis, and it can flip/destroy other robots pretty easily. My revisions for next year's design would be to make the weapon out of metal, some how reduce the risk of failing against dustpan style robots, and make sure to use 3S batteries. See photos of the event
here.
here.
Thursday, April 12, 2018
FPV and How to Get Started
FPV. It stands for First Person View. In other words, a camera on the front of your drone streams video live to VR-like goggles that you wear. Instead of flying the drone by a line of sight, you fly the drone using this video feed. FPV lets you do more acrobatic maneuvers and basically fly the drone better (because you see what the drone sees). Although I have been flying drones for a while now, none of mine have used FPV. I wanted to explore it without spending much money in order to see what it is like. I had heard of the Tiny-Whoop concept before, and I was interested in it. The Tiny-Whoop style quad is basically a cheap micro quadcopter that you can buy for around $35 to $50 that you add a camera to. Also, you need to buy a pair of FPV goggles in order to complete the setup. My friend was selling his micro quad for $40, so I bought it. Also, you need a transmitter (remote control) that is compatible with the quadcopter. Another friend was selling a compatible remote control (Spektrum DX5e) for $20, so I purchased that as well. Next, I bought a small FPV camera and cheap goggles from Banggood.com. Once all the parts arrived, I soldered the camera power wires to 5V output on the quadcopter board in order to power it. Finally, I plugged the quad into my computer and opened Cleanflight, which is a configuration utility for quadcopters. I made sure the accelerometer was working and that the propellers were all spinning in the right directions. I also assigned the switches on my transmitter to do various actions, such as arm the quad or put it into self-level mode. Once the batteries and FPV goggles were charged, I fired everything up and tested it. I was surprised about how easy the whole FPV experience was. Besides Cleanflight there isn't much configuration, and the only slightly skilled task is the simple soldering for the camera. After flying this quad for a few weeks, I am in love with the whole concept, and plan to do more projects that incorporate FPV. Not only does it make you a better pilot, but it is also a lot of fun to try and avoid obstacles or do tough maneuvers around the house. This quad is very durable due to its replaceable plastic frame that encircles the propellers, and since it can be flow easily indoors, it is something to do when you cannot fly your bigger quads outside. See photos here.
Monday, April 9, 2018
Adding Aux Input to 2006 Toyota Corolla
As I am going to start driving soon, I'd like to be able to listen to music from my phone in the car. I'll be driving a 2006 Toyota Corolla, which has a CD drive and radio, but no Bluetooth, USB, or aux input. An older car with a cassette tape drive would've actually been better, because there are cassette to aux adapters that can be bought for fairly cheap. I tried to use a device which connects to a specific radio station and routes the aux output from your phone to that station. While this device worked and met its claims, the audio quality wasn't great, and there were some instances where there would be a lot of radio static noise. I wasn't satisfied with this. I did some research online and found a cheap device which plugs into an empty slot of the entertainment system and acts as a another input by identifying itself as another CD. I purchased this product from Amazon for around $20, and watched some tutorials online on how to install it. The installation process is fairly simple, just removing the plastics panels in order to gain access to the entertainment unit. Next, I plugged the device into the empty slot at the back of the system and routed the aux cable out near the center console. Finally, I tested if the whole thing worked, and it did. The quality is better, but the main benefit is the stable playback. This is because the audio isn't being transmitted over radio. In the future, I plan to add Bluetooth by attaching a cheap aux-Bluetooth adapter to the aux cable.
Monday, March 26, 2018
GPS Lockbox
I recently completed a project for my computer science project in school. The project was an end of the year type thing, and it was to make anything you wanted using code. Most other people made apps or games, but I wanted to do something with hardware. My partner and I came up with the idea to make a box that only unlocks itself when it is within a set radius of a location. I already had a Raspberry Pi, so I planned to use that. To open the box, we used a servo motor from an RC plane. I ended up purchasing a GPS module for the Raspberry Pi and a small LCD screen to print out location data. Getting the GPS to interface with the RPi was pretty hard. I watched a lot of Youtube videos and did a lot of research before finally being able to receive some data. However, this data just looked like random strings of different characters. I did some more research and found that GPS uses special tags in front of different data to identify what type it is. For example, the string "GPRMS$" will be in front of the date and time data. I found the tag for latitude and longitude data and wrote some code in Python to only print out the latitude and longitude. Next, I had to figure out how to make sure the device was within the radius of a set lat/long. I found a mathematical formula online called the Haversine formula that could be implemented in my code. It takes in destination and current location coordinates and spits out the distance between the two, taking into account the earth's curvature. After doing some tuning and testing of the coordinates, the code worked. I figured out how to control the servo motor with the Raspberry Pi using PWM (Pulse With Modulation) and added the servo control part to my existing GPS code. I cleaned up the final code a bit so that the data being outputted to the LCD screen was more reader-friendly and usable. Finally, I put all the hardware components into a plastic container I found lying around and created a simple locking mechanism with some old Lego pieces and hot glue (this box is really easy to get into even when it was locked, but it was meant to be a proof of concept). The RPi was powered by a portable charger and the LCD from a 9V battery. This made the whole setup portable, so you could walk towards the location and watch the current lat/long. change. Overall, the whole project was a success. I learned about GPS and got better at programming in Python during this experience. See pictures and code here.
![]() |
| Entire Assembly |
| Raspberry Pi Code |
![]() |
| Locked Position |
![]() |
| Unlocked Position |
![]() |
| Servo connected to GPIO Pins |
![]() |
| Command Line UX |
![]() |
| GPS module via GPIO |
![]() |
| Pi and GPS module |
Subscribe to:
Posts (Atom)



















