Browsed by
Author: chad

Eclectically enterprising autodidact possessed of a polyhistor penchant for effervescent efforts of concentrated creativity toward veritable ventures in volatile veracity. Also, a nice guy.
A Bit Distracted

A Bit Distracted

It’s funny how life seems to get in the way of hobbies. It’s a damn shame I can’t have a life of only hobbies.

In any case, my family and I moved cross-country and then I became a stay-at-home dad. Unfortunately, it seems I am doing more work now than when I worked full time!? It also requires more of my attention. Who knew a two year old was this much trouble… …err.. …I mean fun.

In any case, I’m still doing Crazyflie stuff. I just set up a Raspberry Pi B+ with the latest Crazyflie RasPi script, I just got a Walkera Devo7e and will be hacking it for Crazyflie support, and there are a couple projects on the Bitcraze blog I’d like to replicate so expect to see blog posts about those soon.

I’m a little backlogged but once I have total control of my routine again, I’ll be a little more active.

Now, let’s go see where my dear daughter put my Crazyflie after that last landing…

Reflashing the Bootloader

Reflashing the Bootloader

When I first set-up Eclipse on Mac to allow me to do some debugging on my Crazyflie 2.0, I built and flashed a debug version of the firmware for the first time. The “debug” target in Eclipse creates a build with the parameter “CLOAD=0.” This means that the debug firmware is flashed at the start of the Crazyflie 2.0’s STM32 flash memory. This where the radio bootloader is normally written so, if one existed before flashing debug firmware, it doesn’t exist after it. In any case, I spent a while scratching my head months later when, while trying to update my Crazyflie 2.0 firmware over-the-air (OTA), I found the Crazyradio couldn’t connect to the bootloader! Of course! There wasn’t one there any longer.

For a moment I panicked, thinking I’d smashed something important when I built my debug firmware, then I remembered an obscure thing I’d read on the wiki about DFU

Read More Read More

Set Up Eclipse for Debugging on Mac OS X

Set Up Eclipse for Debugging on Mac OS X

I recently got an ST-LINK/V2 JTAG debugger from Mouser.com so I can play around with hardware debugging on Crazyflie 2.0. To do this more easily, I figured I’d use the Eclipse IDE like the guys at Bitcraze do. Of course, I could use the <a href=”http://files.bitcraze.se/dl/Bitcraze_VM_0.6.ova” title=”Bitcraze 0.6 VM” rel=”nofollow” target=_blank”>Bitcraze 0.6 VM and all would be well and good… But, if you’ve followed this blog, you know I’d much rather do it all in Mac OS X. So, I set out to get things set-up on Yosemite (Mac OS X 10.10). What follows is what I did to get a working Eclipse installation. Most of this was taken from what I discovered in the Eclipse setup on the 0.6 VM that the Bitcraze bunch so kindly created for us…

Read More Read More

Qi Inductive Charger

Qi Inductive Charger

My last post mentioned the next few posts would be about add-ons. In that context, here’s a post about something that makes the Crazyflie 2.0 much easier to use.

One of the more useful items Bitcraze released with the Crazyflie 2.0 is an inductive charger Flykit* (Flykit is the formal name for the Crazyflie expansion boards). This little expansion is simply an inductive charging receiver coil with the requisite circuitry to allow it to inject 5V into the Crazyflie’s charging circuit. It uses the Qi standard which, owing to the proliferation of smartphones using inductive charging, has become nearly ubiquitous in the market. The good news is that the widespread use of the Qi standard makes cheap and effective chargers (transmitter coils) readily available. In fact, even one of the most simple chargers is perfectly capable of charging a Crazyflie 2.0 equipped with a Qi Flykit!

Read More Read More

Blade Guard

Blade Guard

The next few entries will detail some add-ons I use with my Crazyflies to make them safer, easier to use, and more enjoyable.

To that end, this entry is about blade guards. For the Crazyflie 1.0*, members of the Crazyflie community created 3D printable propeller guards that worked out well for those who have ready access to 3D printers. I cannot, unfortunately (yet), count myself among those people. So, for the entirety of the last six months that I’ve been hacking on the Crazyflie 1.0, I’ve flown it “bare” so to speak. In general I haven’t had too much trouble.

There were a couple wall crashes that resulted in very tiny chips on the propellers. There were some ceiling collisions that scratched the top surface of the blades. Oh, and there was that one time it ran into my toddlers head… It didn’t draw blood but it left a little, raised, red bump that made me worry about flying with anyone but me in the room. Fortunately, there were no broken items, painful injuries, or lost eyes!

Read More Read More

Compiling Crazyflie 2.0 Firmware on Mac OS X

Compiling Crazyflie 2.0 Firmware on Mac OS X

UPDATE 2015-Aug-01: Bitcraze has recently merged the Crazyflie Nano (1.0) and Crazyflie 2.0 firmware source code. As a result, it is even easier to build firmware for either model on Mac OS X. See my article on the merge for more information on building the firmware.

About six months ago I wrote a entry on compiling Crazyflie firmware with Mac OS X. Since that time, the Crazyflie 2.0 has come out and, as a result, compilation of firmware for the new model requires a new GCC-ARM development environment. This post explains what you need to do to compile firmware for the Crazyflie 2.0 on Mac OS X.

Read More Read More

Crazyflie 2.0 Unbox

Crazyflie 2.0 Unbox

It finally arrived! My Crazyfie 2.0. The one “Christmas present to myself” that I’ve been waiting three months to receive! I won’t be posting an assembly entry for this Crazyflie. Seriously. It was too easy. So, without further ado, here’s the unboxing ceremony (two days before Christmas)…

Read More Read More

New Arrival

New Arrival

I was growing impatient. Why didn’t I opt for a faster shipping service!? I just had to check the tracking once more… …and there it was: departed the sorting facility in my home town! A confirmation that the Crazyflie 2 is finally on it’s way to me., possibly in time for the holiday break, barring any mishap (oh please don’t let anything happen to it).

The past few days have been torture! Watching the forums — all those lucky souls who received their Crazyflies before me. Watching the wiki — all those new documentation pages and updates and fixes, not yet applicable to me. Watching GitHub — all those enhancement and bug fixes not yet usable by me. Watching the blog — a recent post, still so far away from me. The anticipation! I can’t stand it. Please arrive tomorrow… Please, please!!

I want to assemble, I want to develop, I want to experiment… I want to FLY! CRAZYFLIE! 2!!
USPS tracking info

NeoPixel Ring Mod – Part 4

NeoPixel Ring Mod – Part 4

My last entry on the NeoPixel ring modification detailed how I “permanently” mounted the ring and the post before that was about how I got the firmware working like I wanted it. Prior to that, my first entry explained what I wanted to do and elaborated on some testing I conducted prior to deciding on what ring to use. This entry wraps my NeoPixel Ring mod up by exposing how I hacked in some controller support.

The controller support was a little tougher than the rest of the modification because I didn’t have any examples to base my changes on. Furthermore, I had to learn the architecture of the Python client but fortunately it’s in Python which is both fun and pretty accessible!

What I’d hoped to do was make it possible to cycle through the various LED “effects” with a controller button (this is what the Bitcraze video demonstrated and it seemed like a good interface). I also wanted everything to be runtime discoverable so there were little or no “hardcoded” dependencies. I wanted the client to work the same whether or not the firmware running supported the NeoPixel ring mod.

I believe I was able to accomplish all of this.

Read More Read More

Broken, Then Fixed, On/Off Button…

Broken, Then Fixed, On/Off Button…

I’m man enough to admit it. I broke the on/off switch on my first Crazyflie. There, I said it. In my defense though, it didn’t seem to be that easy to push in the first place. It was sticky and didn’t move smoothly. I probably applied too much pressure and finally, the little plastic bit broke off. I denied it for a while. I was able to dismantle the button enough that I could simply use a straight pin to turn it on and off. Eventually, that bit broke off as well so I decided to clean it up and desoldered the rest of the button leaving only the two pads intact. I used my propeller fork for turning it on and off for a long time. It fit the width of the solder pads perfectly. It wasn’t as easy as I would have liked it to be but it worked. Well, mostly it worked. Sometimes I couldn’t get it to turn on before the cold-boot timed out when I was trying to refresh firmware.

Eventually I decided I wanted to replace the button.

Read More Read More