Over the past six months, I’ve gotten to know my 3D Robotics X8 multicopter very well. I thought I’d share some of my experiences and observations with the unique multicopter.
Last year, I started following along with the multicopter scene on some forums like DIY Drones, RC Groups, Quadcopters, FPV, and UAV/FPV. I was interested in the Arducopter platform because it seemed to allow a deeper dive into multirotors than buying something like a DJI Phantom. The Phantoms work great from what I understand, but I was more interested in tuning, upgrading, and doing autonomous missions with my UAV. I wanted a platform that would grow with me.
The X8′s defining feature is that it’s set up like a traditional quadcopter, but it features two motors on each arm. One might call it an octocopter, but it’s really more like a quadcopter with redundancy. Apparently, it can stay in flight even if you lose a motor. It is definitely extremely powerful. It’s vertical lift is amazing. Because of it’s power, it can easily carry gear, which makes it a perfect platform for expansion.
I ordered my X8 in January of this year. I ordered it just slightly before 3D Robotics announced the 2014 model, so mine is the 2013 model. The 2014 model is not incredibly different. It has an improved body, Pixhawk autopilot (2013 has APM 2.6), GPS mast, and better batteries included. The only thing I really missed out on is the Pixhawk autopilot. I will probably end up, upgrading to it someday since it’s significantly faster hardware than the APM 2.6.
The X8 took a bit longer than I wanted to arrive, but when it did, I was very pleased. It was packaged nicely and extremely easy to put together. One arm was folded up for transport. I had to cut the factory zip ties in order to get the arm into position because the ESCs were tucked too tightly against the frame and I was afraid of breaking something immediately. I replaced the zip ties with some super cool orange zip ties. My first mod.
It took about a full evening of looking through the parts and getting acclimated to everything to get the X8 all set up. There was no soldering, just screwing. One of the trickiest parts was the little rings that are included with the props. The thinner rings seemed too loose on the motor shaft and the thicker rings seem too tight. I ended up determining the thinner rings were the correct ones for the props.
The X8 is a bit bigger than you would imagine. Once you attach the props, it feels a bit intimidating. The X8 is marketed as ‘ready-to-fly’, I think that is basically a true statement for the hardware. Setting up this multicopter was very easy overall.
This was a bit trickier. There is a lot to learn before your first flight. I tested out many of the software options that are available: APM Planner, QGroundControl, DroidPlanner 2, and more. I wanted to start with my Mac laptop as my ground station and I choose APM Planner as my software. From my testing, it was the least likely to crash. It is also actively being developed and has really great features like real-time graphing and logging.
3D Robotics recommends you basically don’t mess with the software before you fly. For the most part I agree with that, but here are the main things you need to learn about your ground station before you fly:
1. Know how to install firmware on the X8
The X8 comes with the firmware installed, but it is constantly being developed and you will need to know how to do this in order to upgrade the firmware in the future. Here is an easy tutorial.
2. Connect to autopilot via USB
This is the hardwire connection you will use to do the basic calibrations. Easy to follow guide on the Ardupilot site. Here’s the biggest trick, when connecting to your ground station via USB use 115200 baud and when connecting over a radio use 57600 baud.
The X8 comes calibrated, but you still need to know how to calibrate the multicopter, because undoubtedly at some point you are going to crash and it’ll more than likely need to be recalibrated.
Frame Type. Choose your frame type.
Compass. This is how you calibrate the compass.
Accelerometer. Here is a good video that shows the process. I had to do this a few times to get it perfect. Sometimes after I would crash, this would seemingly get way off. The copter will fly terribly if this is not calibrated well.
Radio. There is also the option to calibrate your radio. Your transmitter will come pre-calibrated. I would highly recommend not doing this unless you notice something wrong. You are likely to screw this up or not set it up as nicely as 3DR has for you.
Flight Modes. Here is the best one and one you will want to investigate before your first flight, flight modes. This will change what your flap toggle on your transmitter selects as your current flight mode. I believe the default is ‘Stabilize, Loiter, Land’, but there are many other modes to choose from. Learn about them here.
Other notable modes are RTL (return to launch), Alt Hold (keeps you at the same altitude), and Follow Me. You will have plenty of time to explore these, but as a quick intro: Stabilize is the one you will mostly be flying in. Loiter does what you would imagine, but you can also fly in Loiter. It’s behaves like a super easy mode and won’t let you really screw up. RTL is a usually lifesaver if you get to excited, nervous, or out of control. You can also set up RTL to automatically trigger when your battery hits a certain voltage. This is extremely useful.
Once you get used to all this stuff, there is plenty more to learn about. APM Planner has incredible graphing/logging capabilities. You can analyze your flight data and learn a ton about how you are flying and what your copter is doing. And then of course, there are the autonomous capabilities of the X8 and the completely autonomous missions you can plan with waypoints and events.
You will continue to learn about the software as you progress. Don’t be intimidated by it, but also don’t take it for granted. It’s always better to understand what you are doing, rather than be surprised by unpredictable results.
Learning to Fly
Here is a recap of my first flight. I went out to a soccer field early on a Saturday morning. I set up all my equipment at a picnic table. I set the X8 up about 25 feet in front of me. Connected APM Planner to the radio. Armed the X8. Put it in Stabilize mode. Took off very slowly. Hovered for about 25 seconds. Then brought it down very slowly. It was the simplest flight ever but it was exhilarating.
The next several flights were baby steps. I controlled each individual control one by one. One flight was pitch, one flight was yaw. One flight was roll. Altitude was the hardest thing to control initially because I was always too slow to react, and consequentially I would always overcorrect. So the copter would always be going up and down and up and down.
I learned to fly the wrong way. I started with a big awesome multicopter. Everything I read online said, ‘start with a little one you don’t care about,’ but I didn’t listen.
I wasn’t learning the actual flight dynamics of the craft because I was being too cautious. I was taking things slowly and I felt like was progressing too slowly. I didn’t want to crash this beautiful flying robot. I would get nervous around obstacles like trees because I didn’t feel I could predict the results of my actions.
After a month or two of flying I invested in a micro quad. Everything everyone said is correct. The flight dynamics on a tiny quad are remarkably similar to a bigger multicopter. I practiced a lot. I learned to anticipate the unique dynamics of the multiroter. The anticipation allowed a sense of control and less erratic movements. Suddenly when I would fly the X8 I felt far more in control. I was also having far more fun.
I highly recommend starting with a small quad for anyone new to flying. Get a little one, crash it a lot. Take risks. It will make your experience with the X8 so much better.
My first upgrade was just strapping a GoPro to the X8. This was obviously awesome. It’s great to get footage from above. You will get a bit of jello from the GoPro being attached directly to the frame, but there are plenty of ways to solve that.
My second upgrade was to increase the length of the legs. 3D Robotics has some extended legs available, but not on their website. I actually don’t recommend extending the legs. I removed the leg extensions almost immediately because when landing on hard surfaces, I found I was far more likely to tip. That and the fact that the GoPro is turning out to be incredibly capable and I don’t intend on flying with a larger camera.
Next I added a GPS mast because it was super affordable and comes standard on the 2014 model. The idea here is to move the GPS and compass away from the vehicle to reduce magnetic interference.
This is where it really gets interesting. My next upgrade was to put FPV (live remote first person perspective video) on the X8. I had been flying for 4 or 5 months and I was ready to take the experience to the next level. This was one of my dream goals for the X8, to experience the flying in this particular way.
FPV is pretty overwhelming to get into. Learning to fly FPV is one thing, and I will have to write a different post about that experience. Technically though, there are a lot of options and a lot of technology to understand. I didn’t want to make mistakes and from what I could tell, the only way to find out if certain components work with other components is to test them. That seemed undesirable since I didn’t want to waste money on things that wouldn’t work together. I ended up going with 3D Robotics FPV kit because I knew I wouldn’t have much trouble getting OSD (on screen display of telemetry data) working.
Here’s my review: awesome. The setup was super easy. I got OSD working immediately. I did a bunch of flights and started recording the footage with a little SD video recorder. It actually records the footage fairly well. I have to run a VLC converter on my Mac because the footage comes out as PAL in a Microsoft video format called ASF. The footage is low res, but overall it’s really neat and I like being able to watch the telemetry in real time with the video playback.
My next step for the FPV was to simplify the system and hook up the GoPro as the primary camera both recording and transmitting the video. I am currently using a GoPro frame mount directly attached to the X8 frame with this setup. One tiny mod I made was to tilt the FPV cloverleaf antenna down in the rear of the craft. This seems to keep all the antennas as far away from each other as possible. I highly recommend this setup since the FPV transmitted video is also an improvement from the security camera video.
It is at this particular point that you might realize there are a lot of batteries going up in the air constantly. There is a solution. My good friend Jeff Shafar from Hippo Bear Media was kind enough to get me an amazing HiTec 4 port multi-battery charger for my birthday. This enabled charging of multiple batteries simultaneously and greatly reduced the amount of time spent on doing so.
Some things I am looking forward to in the future are using an iPad as my ground control with the Fighting Walrus antenna. They’ve been working on some really good software for the iPad that I’ve tested. The idea of going to the field with just the iPad, RC transmitter, and X8 is super awesome.
I would also love to get a Tarot gimbal setup working. Gimbals smooth out video footage by staying level to the ground, even when the copter is tilted off axis. One minor thing keeping me from doing this is that the Tarot requires Windows to configure the gimbal.
Eventually, I would love to have some kind of goggle setup for the FPV. Right now, I’m viewing the FPV from a small monitor. Goggles give you a full immersive experience from the perspective of the craft. I haven’t done enough research to make any sort of recommendation, but Fat Shark and SkyZone seem to be the most popular brands at the moment. I’ve even seen people hook up an Oculus Rift to control the multicopter with head tilts.
I would also love to go much further with autonomous missions. I truly haven’t even begun to explore the possibilities, but that’s only because I generally have so much fun manually flying.
I haven’t had a lot of problems with the X8, but I have made a few mistakes. The most critical was when I mistaking plugged a battery into the charger incorrectly. I ended up overcharging the battery. I didn’t notice and flew the battery. It swelled up mid-flight. It was pretty terrifying. I drained the battery. Figuring out how to dispose of it properly was not exactly clear. I couldn’t find anyone to take it. So I made sure it was discharged completely, put it in a LiPo bag and disposed of it in the normal garbage. Everything I’ve read said this was the proper way to do it, but it still didn’t feel right. A completely discharged LiPo battery is apparently inert.
I’ve broken some props here and there from nasty landings. The worst accidental I had was when I had set up my battery warning and RTL to be too aggressive low. The X8 was in the middle of RTL when it fell out of the air. Minor damage overall, but it taught me to be really cautious about the battery voltage, because it can become a dangerous situation fast.
Lately I seem to have an intermittent cutout on one of the arms. The props lose power for a brief moment and the copter dips, but then it immediately regains control. I assume I might have a short of some sort, but I haven’t figured it out yet.
Overall, the X8 has given me exactly what I wanted out of the experience. It’s not the easiest thing in the world to maintain. It’s definitely not a toy. It’s a serious craft and it’s full of possibility. I still feel like I’m at the beginning of the adventure with it. I’m glad I started with a RTF multicopter, because I felt like I had some training wheels as to what the experience should be like. It was easier to learn step-by-step when things break or you want to try new features, than try to learn everything you need to know at once.
I started a Facebook group for people who are interested in the 3D Robotics X8. It’s a casual group for enthusiasts, since it’s somewhat hard to find and share information about the X8 and it’s unique characteristics. If you have an X8 or you are planning on getting one, you should get it on the discussion.
I haven’t wrote about this yet, but I’ve spent the past half year or so learning about and getting involved in multicopters. I have a full size UAV (a 3D Robotics X8) which I have been building into an airborne videography machine, but I wanted to practice my flying more often and the big quad requires a lot of preparation and outdoor space.
I recently bought a Turnigy Micro-X Quadcopter Kit from Hobby King to practice flying at home. The flight dynamics on a tiny quad are really similar to the big ones, so I could actually improve my flying without having to deal with weather and other complexities. I wanted to be able to use the same transmitter that I use with the X8 with the micro so I wasn’t wasting money on that part of the setup. The Micro-X kit seemed like the perfect choice. It comes with two batteries, the body is the board, and it runs on MultiWii which is hackable and relatively similar to ArduCopter which is what the X8 runs.
The box came on Wednesday. I had practiced soldering for the first time on Tuesday night in preparation. I’ve never dealt with building hardware very much and it makes me nervous when I can’t just ‘undo’ something.
The kit was straightforward and bare bones. The body/board, 4 motors, 2 batteries, 8 props, usb charger, usb bridge to program the quad, 2 rubberbands to hold the batteries, and a piece of carbon to help lock the legs in place.
I was overwhelmed at how small it was. The kit came with no instructions at all, so it was pure logic and internet research. I was quite scared I was going to screw something up. The legs are meant to be cut off, but the nubs should remain in place for the motors to sit on. I picked that up from this video. The carbon rod is cut to fill in the holes that hold the legs in place. I used thin CA glue on the leg joints and medium CA glue on the motors.
This was the first time I was soldering something I really cared about, so this was the most nerve-wracking part. The wires were too thin for my wire cutters, so I heated up the end of the wires with a lighter to pull the rubber back (protip from Joey Hagedorn). Seemed like it worked. I read in the RC Groups forum the wiring is reversed on the image from the Hobby King site, so this was the image I followed for my connections.
My first solder point pushed the wire out of the hole and I filled it with solder. Panic. Luckily I had bought a solder sucker and resolved it quickly. I heated the solder from one side of the board and sucked from the other. (Another Joey soldering protip.) The rest of the solder points went pretty well. Here is some evidence of my success and mistakes:
All the props easily slid into place on motors except one. I’m not sure if it’s a manufacturing defect but the orange props for the front right wouldn’t slide all the way down. I eventually ended up using all black ones just to get it to work for the time being.
I plugged in the battery and a green LED was flashing rapidly. I attempted to bind the quad with my Spektrum DX7s. For whatever reason, it took many attempts for this to work. I have no idea why it did eventually bind, because I didn’t do anything different.
The quad automatically goes into a bind mode when it can’t find a transmitter. Start up your DX7s holding the bind button and at some point it will catch. I also set up a profile just for the Micro-X on the DX7s. To do this you hold both the back and clear buttons and you get to a high level menu which allows you to set up multiple profiles.
When I first spun up the motors, I noticed the back right motor was not idling the same as the others. I tried to get it airborne and it immediately crashed. Turns out it needed to be calibrated. Helpful video. Basically you get the quad on a level surface, connect it to MultiWii and click CALIB_ACC.
Here is what it looks like in MultiWii Config when you successfully connect to the quad:
I had to do two things to the DX7s to make it controllable. First, both the roll and yaw were reversed, so I flipped them in the transmitter. Second, I turned the throttle up at 125% instead of 100% to make it less twitchy. Here’s a video of my first outdoor flight:
It is flying pretty good, but it has been rotating slightly in the air. I’ve been trying to adjust the values in MultiWii to fix that. It’s gotten better but it’s not perfect yet. It flies outdoors better than expected. It’s really fun. If you are interested in quads and are feeling patient, I would definitely recommend this kit.
There is a great forum for this quad on RC Groups where you can find most everything else you need. One thing I wasn’t sure of was how to charge the batteries. The black wire goes to the minus symbol on the USB charger. The light turns off when it’s done charging.
I am going to continue to tune this little quad and maybe eventually add FPV if it seems like it’s the right move.
Last time we talked, I was hyper-optimistic and just starting to write my first iOS app. Now it’s time for a bit of a follow-up.
Writing an app is no joke. If you are used to web development, you are going to be repeatedly shocked at the complexities and idiosyncrasies of software development.
That being said, it is possible, and I stand by my previous advice. Developer documentation is your friend. Someone has already asked your question on Stack Overflow. Seriously look hard before you even try to ask a question on your own. The answers are out there. If you can’t figure something out, stop, and maybe tomorrow you will. I woke up a few times in the middle of the night with ‘A-ha!’ moments.
Now lemme show you what I made:
It’s called MOON and I created it for a very personal reason. I love the moon as a casual observer. I’m not a fisherman, a farmer, or a true mystique. I just like knowing what the moon is up to. Consequentially, I’ve used many other moon phase calendars and they all suffer from two universal problems.
1. They provide too much information
2. They are generally pretty ugly
The killer feature that was necessary for me is the notifications. The app sends you disconcerting and vague notifications 48 hours before important moon events, just to warn you of any forthcoming moon related unpleasantness.
So far, I really enjoy Objective-C. Core animation absolutely rules. It’s hard to go back to jQuery after seeing what it can do. Xcode is a really compassionate companion compared to Sublime Text.
The most major difference between software development and web development is the ability to push code. I’m quite used to being able to update to a site at any moments notice. Having to wait 7 days to push an update to an app feels like an eternity. After two updates already, I’m starting to get used to it.
I’m super happy with the final product. If you happen to be a moon lover, I encourage you give it a try. It can be downloaded from the App Store here.
This weekend, I started building my first iOS app. This was such a monumental moment for me because the past few years have been a challenging voyage to make this experience possible.
I wasn’t a developer 3 years ago, I was a photographer. I always preferred the post-production side of photography and most of my work was actually retouching. I had a full-time job where I was retouching, which I was blessed with because it is actually kind of rare in the industry. The monotony of retouching all day long allowed me to realize I couldn’t do it for the rest of my life. I needed something to sink my teeth into. I needed something that challenged me on a daily basis.
I have always had a passion for software and interfaces and I was already spending most of my social time critically discussing design decisions of whatever app was hot at the time. I decided I would become a developer.
I knew how to put a theme on WordPress and some basic CSS, but that was about it. I had no idea where to start.
I want to make this next part very clear. I went from knowing very little about programming to being pretty-functional in three years by doing this one simple thing:
I didn’t say no.
No matter what the challenge was. I just didn’t say no. “Migrate this database.” Ok. I would just figure it out. “I want this site in Django.” Ok. I’ll learn Django. There were so many mind-blowingly hard moments. I just literally believed I could figure anything out. And I did.
You can too. It sucks, but you can do it. Just Google it. Check out Stack Overflow. Read documentation. Never say no.
You might do a kind of bad job at it the first time. Don’t worry, someone is going to tell you why it sucks, and next time you will do it better.
Just keep going. Trust me, it’s worth it. If you want to be a developer it’s possible. Just commit to it all the way, always say yes, and before you know it, everything will keep getting easier and easier. Patterns will start to emerge. You will read things and understand the concepts better than before.
No matter what anyone says, there is no correct order to learning. Just follow your intuition, stay positive, and try to take something useful from every experience.
Talk to you in a couple years. Go get to work.
(Originally posted on Medium)
I created my first WordPress theme. I call it Song.
Song is a WordPress theme for writers who want a simple and sophisticated theme. I tried to focus on readability and speed. So much in fact, that I am calling it the ‘fastest WordPress theme ever.’ I actually believe that statement. I’m getting 120ms load times at the right time of day.
I wrote a bunch more about it over here. Check it out.
This week Panic announced Status Board. I was excited by the idea of Status Board because I have always been a fan of Dashboard for OS X. I think having the board physically available and not hidden makes it much more useful. Glancing over at my iPad is more convenient and more engaging than switching to a hidden space on my laptop.
Recently, I created a website called whyamicrazytoday.com. It’s basically a way for me to check the current moon phase. Unfortunately, because it’s a website, I never check it. So I created ‘Why am I crazy today?’ for Status Board.
To install the moon calendar on your Status Board, click the button below from your iPad.
I hope you enjoy, and for personal reference, new moons make me much crazier than full moons.
As I set this new site up, I was interested in exploring options for video hosting. When I had originally set up the placeholder videos, I used Vimeo embeds. I love Vimeo and have used it on other sites, but I wanted this site to be faster. The Vimeo embed loads significantly after the page load. I thought I could remedy that by using a poster image in it’s place, while it loads. This worked, but was messier than I’d like and I couldn’t pre-load the video in the background without it auto-playing.
I looked into locally hosted HTML5 video players. There are a lot of them. None of them really matched all my desires. This chart is quick reference to all their features. I was most interested in VideoJS. The only problem was the Flash fallback was not responsive and didn’t work with my design. I hacked it to be responsive, but since I have a box-shadow element on a div surrounding the player, it had to be pixel perfect at all sizes or else it would leave a gap before the shadow.
I eventually settled on SublimeVideo as a temporary solution. Once I had my video really exported well, the load time was unstoppable. The HTML5 poster frame loads immediately, and the video auto-loads in the background as the visitor is reading the page.
I only had to hack it a little bit to get my container box-shadow to work well. It’s not perfect, but I know what I want now and I’m keeping my eye out now for the perfect HTML5 video player.
I received my Mailbox app invite today. My immediate impression upon using the app was that I needed a desktop version. I can understand some people might manage most of their email from their phone, but I spend most of my time on a computer.
I found the Mailbox way of dealing with email sorting to be an exciting option over the traditional folder-based system. Unfortunately, I would have liked access to my previous folders through the app, since I could not file those legacy emails in the Mailbox way.
I also am not a big fan of conversation view. I turn it off in my other email clients, and there is no way to do so through Mailbox app. This is problematic, because when I get an email related to an older conversation, it drags the rest of those messages into my inbox on other devices.
That being said, I am very excited about the future of email, and I think Orchestra did a great job in rethinking the process. I will wait for the next update or two to see if I will actually use this as my main email client.
I recently decided to re-design my website. As part of the process I decided to investigate leaving my current web host and move to a more contemporary hosting solution. Since this site is build on WordPress, I found Heroku and other cloud based solutions to be somewhat problematic for my PHP needs.
I eventually settled on WP Engine as my new host, not only because it robustly supports WordPress and PHP, but also because it is so much faster than my previous hosting. The overall experience so far has been great. It’s quite expensive for a single site, but it feels like rock solid WordPress hosting with a ton of built in tools for backup, staging, and caching.
Since I can remember I have struggled in my relationship with notifications. I have never liked being distracted from my task at hand, but I also feel the need to be in touch at all times.
On many OS today, the accepted default is to be distracted.
I found ‘Notification Center’ in OSX and iOS to be redundant when it was introduced. I’m usually paying attention, so I was generally confronted with a list of things I had already seen when opening the list view.
Currently, I am running with ‘Notification Center’ turned off on my desktop and minimal notifications running on my phone.
This is not perfectly ideal either. I can only imagine the day will come where we will have to confront notifications more seriously. Are they email? Is there a universal notification service? How do you keep them from being redundant?
I’m excited about that day.