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.